Sha256: da0471d3d43418cce7fc9dde8f3245d2ec2552b605e553f10ba60a1ce7bfc28c

Contents?: true

Size: 1.95 KB

Versions: 3

Compression:

Stored size: 1.95 KB

Contents

require 'uri'
require 'yaml'
require 'rugged'
require 'levenshtein'

require_relative "licensee/version"
require_relative "licensee/license"
require_relative "licensee/project"
require_relative "licensee/project_file"
require_relative "licensee/filesystem_repository"
require_relative "licensee/matcher"
require_relative "licensee/matchers/exact_matcher"
require_relative "licensee/matchers/copyright_matcher"
require_relative "licensee/matchers/git_matcher"
require_relative "licensee/matchers/levenshtein_matcher"
require_relative "licensee/matchers/package_matcher"
require_relative "licensee/matchers/gemspec_matcher"
require_relative "licensee/matchers/npm_bower_matcher"

class Licensee

  # Over which percent is a match considered a match by default
  CONFIDENCE_THRESHOLD = 90

  # Base domain from which to build license URLs
  DOMAIN = "http://choosealicense.com"

  class << self

    attr_writer :confidence_threshold, :package_manager_files

    # Returns an array of Licensee::License instances
    def licenses(options={})
      Licensee::License.all(options)
    end

    # Returns the license for a given git repo
    def license(path)
      Licensee::Project.new(path).license
    end

    # Diffs the project license and the known license
    def diff(path)
      Licensee::Project.new(path).license_file.diff
    end

    # Array of matchers to use, in order of preference
    # The order should be decending order of anticipated speed to match
    def matchers
      matchers = [
        Licensee::CopyrightMatcher,
        Licensee::ExactMatcher,
        Licensee::GitMatcher,
        Licensee::LevenshteinMatcher,
        Licensee::GemspecMatcher,
        Licensee::NpmBowerMatcher
      ]
      matchers.reject! { |m| m.package_manager? } unless package_manager_files?
      matchers
    end

    def confidence_threshold
      @confidence_threshold ||= CONFIDENCE_THRESHOLD
    end

    def package_manager_files?
      @package_manager_files ||= false
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
licensee-5.0.0b4 lib/licensee.rb
licensee-5.0.0b3 lib/licensee.rb
licensee-5.0.0b2 lib/licensee.rb