123456789_123456789_123456789_123456789_123456789_

Class: Gem::Licenses

Relationships & Source Files
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
self, Text
Inherits: Object
Defined in: lib/rubygems/util/licenses.rb

Constant Summary

  • IDENTIFIERS =

    Software Package Data Exchange (SPDX) standard open-source software license identifiers

    # File 'lib/rubygems/util/licenses.rb', line 11
    %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
  • NONSTANDARD =
    # File 'lib/rubygems/util/licenses.rb', line 7
    'Nonstandard'.freeze
  • REGEXP =
    # File 'lib/rubygems/util/licenses.rb', line 320
    %r{
      \A
      (
        #{Regexp.union(IDENTIFIERS)}
        \+?
        (\s WITH \s .+)?
        | #{NONSTANDARD}
      )
      \Z
    }ox.freeze

Class Method Summary

Text - Extended

clean_text

Remove any non-printable characters and make the text suitable for printing.

format_text

Wraps text to wrap characters and optionally indents by indent characters.

levenshtein_distance

This code is based directly on the Text gem implementation Returns a value representing the “cost” of transforming str1 into str2.

truncate_text

Class Method Details

.match?(license) ⇒ Boolean

[ GitHub ]

  
# File 'lib/rubygems/util/licenses.rb', line 331

def self.match?(license)
  !REGEXP.match(license).nil?
end

.suggestions(license)

[ GitHub ]

  
# File 'lib/rubygems/util/licenses.rb', line 335

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