D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
proc
/
self
/
root
/
opt
/
alt
/
ruby24
/
lib64
/
ruby
/
2.4.0
/
rubygems
/
util
/
Filename :
licenses.rb
back
Copy
# frozen_string_literal: true require 'rubygems/text' class Gem::Licenses extend Gem::Text NONSTANDARD = 'Nonstandard'.freeze # Software Package Data Exchange (SPDX) standard open-source software # license identifiers IDENTIFIERS = %w( 0BSD AAL ADSL AFL-1.1 AFL-1.2 AFL-2.0 AFL-2.1 AFL-3.0 AGPL-1.0 AGPL-3.0 AMDPLPA AML AMPAS ANTLR-PD APAFML APL-1.0 APSL-1.0 APSL-1.1 APSL-1.2 APSL-2.0 Abstyles Adobe-2006 Adobe-Glyph Afmparse Aladdin Apache-1.0 Apache-1.1 Apache-2.0 Artistic-1.0 Artistic-1.0-Perl Artistic-1.0-cl8 Artistic-2.0 BSD-2-Clause BSD-2-Clause-FreeBSD BSD-2-Clause-NetBSD BSD-3-Clause BSD-3-Clause-Attribution BSD-3-Clause-Clear BSD-3-Clause-LBNL BSD-4-Clause BSD-4-Clause-UC BSD-Protection BSL-1.0 Bahyph Barr Beerware BitTorrent-1.0 BitTorrent-1.1 Borceux CATOSL-1.1 CC-BY-1.0 CC-BY-2.0 CC-BY-2.5 CC-BY-3.0 CC-BY-4.0 CC-BY-NC-1.0 CC-BY-NC-2.0 CC-BY-NC-2.5 CC-BY-NC-3.0 CC-BY-NC-4.0 CC-BY-NC-ND-1.0 CC-BY-NC-ND-2.0 CC-BY-NC-ND-2.5 CC-BY-NC-ND-3.0 CC-BY-NC-ND-4.0 CC-BY-NC-SA-1.0 CC-BY-NC-SA-2.0 CC-BY-NC-SA-2.5 CC-BY-NC-SA-3.0 CC-BY-NC-SA-4.0 CC-BY-ND-1.0 CC-BY-ND-2.0 CC-BY-ND-2.5 CC-BY-ND-3.0 CC-BY-ND-4.0 CC-BY-SA-1.0 CC-BY-SA-2.0 CC-BY-SA-2.5 CC-BY-SA-3.0 CC-BY-SA-4.0 CC0-1.0 CDDL-1.0 CDDL-1.1 CECILL-1.0 CECILL-1.1 CECILL-2.0 CECILL-2.1 CECILL-B CECILL-C CNRI-Jython CNRI-Python CNRI-Python-GPL-Compatible CPAL-1.0 CPL-1.0 CPOL-1.02 CUA-OPL-1.0 Caldera ClArtistic Condor-1.1 Crossword CrystalStacker Cube D-FSL-1.0 DOC DSDP Dotseqn ECL-1.0 ECL-2.0 EFL-1.0 EFL-2.0 EPL-1.0 EUDatagrid EUPL-1.0 EUPL-1.1 Entessa ErlPL-1.1 Eurosym FSFUL FSFULLR FTL Fair Frameworx-1.0 FreeImage GFDL-1.1 GFDL-1.2 GFDL-1.3 GL2PS GPL-1.0 GPL-2.0 GPL-3.0 Giftware Glide Glulxe HPND HaskellReport IBM-pibs ICU IJG IPA IPL-1.0 ISC ImageMagick Imlib2 Intel Intel-ACPI Interbase-1.0 JSON JasPer-2.0 LGPL-2.0 LGPL-2.1 LGPL-3.0 LGPLLR LPL-1.0 LPL-1.02 LPPL-1.0 LPPL-1.1 LPPL-1.2 LPPL-1.3a LPPL-1.3c Latex2e Leptonica Libpng MIT MIT-CMU MIT-advertising MIT-enna MIT-feh MITNFA MPL-1.0 MPL-1.1 MPL-2.0 MPL-2.0-no-copyleft-exception MS-PL MS-RL MTLL MakeIndex MirOS Motosoto Multics Mup NASA-1.3 NBPL-1.0 NCSA NGPL NLPL NOSL NPL-1.0 NPL-1.1 NPOSL-3.0 NRL NTP Naumen NetCDF Newsletr Nokia Noweb Nunit OCLC-2.0 ODbL-1.0 OFL-1.0 OFL-1.1 OGTSL OLDAP-1.1 OLDAP-1.2 OLDAP-1.3 OLDAP-1.4 OLDAP-2.0 OLDAP-2.0.1 OLDAP-2.1 OLDAP-2.2 OLDAP-2.2.1 OLDAP-2.2.2 OLDAP-2.3 OLDAP-2.4 OLDAP-2.5 OLDAP-2.6 OLDAP-2.7 OLDAP-2.8 OML OPL-1.0 OSL-1.0 OSL-1.1 OSL-2.0 OSL-2.1 OSL-3.0 OpenSSL PDDL-1.0 PHP-3.0 PHP-3.01 Plexus PostgreSQL Python-2.0 QPL-1.0 Qhull RHeCos-1.1 RPL-1.1 RPL-1.5 RPSL-1.0 RSA-MD RSCPL Rdisc Ruby SAX-PD SCEA SGI-B-1.0 SGI-B-1.1 SGI-B-2.0 SISSL SISSL-1.2 SMLNJ SNIA SPL-1.0 SWL Saxpath Sendmail SimPL-2.0 Sleepycat Spencer-86 Spencer-94 Spencer-99 SugarCRM-1.1.3 TCL TMate TORQUE-1.1 TOSL UPL-1.0 Unicode-TOU Unlicense VOSTROM VSL-1.0 Vim W3C W3C-19980720 WTFPL Watcom-1.0 Wsuipa X11 XFree86-1.1 XSkat Xerox Xnet YPL-1.0 YPL-1.1 ZPL-1.1 ZPL-2.0 ZPL-2.1 Zed Zend-2.0 Zimbra-1.3 Zimbra-1.4 Zlib bzip2-1.0.5 bzip2-1.0.6 diffmark dvipdfm eGenix gSOAP-1.3b gnuplot iMatix libtiff mpich2 psfrag psutils xinetd xpp zlib-acknowledgement ).freeze REGEXP = %r{ \A ( #{Regexp.union(IDENTIFIERS)} \+? (\s WITH \s .+)? | #{NONSTANDARD} ) \Z }ox.freeze def self.match?(license) !REGEXP.match(license).nil? end def self.suggestions(license) by_distance = IDENTIFIERS.group_by do |identifier| levenshtein_distance(identifier, license) end lowest = by_distance.keys.min return unless lowest < license.size by_distance[lowest] end end