licensee/lib/licensee.rb

63 lines
1.8 KiB
Ruby

require_relative 'licensee/version'
require_relative 'licensee/content_helper'
require_relative 'licensee/license'
require_relative 'licensee/rule'
# Projects
require_relative 'licensee/project'
require_relative 'licensee/projects/git_project'
require_relative 'licensee/projects/fs_project'
# Project files
require_relative 'licensee/project_file'
require_relative 'licensee/project_files/license_file'
require_relative 'licensee/project_files/package_info'
require_relative 'licensee/project_files/readme'
# Matchers
require_relative 'licensee/matchers/exact_matcher'
require_relative 'licensee/matchers/copyright_matcher'
require_relative 'licensee/matchers/dice_matcher'
require_relative 'licensee/matchers/package_matcher'
require_relative 'licensee/matchers/gemspec_matcher'
require_relative 'licensee/matchers/npm_bower_matcher'
require_relative 'licensee/matchers/cran_matcher'
module Licensee
# Over which percent is a match considered a match by default
CONFIDENCE_THRESHOLD = 95
# Base domain from which to build license URLs
DOMAIN = 'http://choosealicense.com'.freeze
class << self
attr_writer :confidence_threshold
# Returns an array of Licensee::License instances
def licenses(options = {})
Licensee::License.all(options)
end
# Returns the license for a given path
def license(path)
Licensee.project(path).license
end
def project(path, **args)
Licensee::GitProject.new(path, args)
rescue Licensee::GitProject::InvalidRepository
Licensee::FSProject.new(path, args)
end
def confidence_threshold
@confidence_threshold ||= CONFIDENCE_THRESHOLD
end
# Inverse of the confidence threshold, represented as a float
# By default this will be 0.1
def inverse_confidence_threshold
@inverse ||= (1 - Licensee.confidence_threshold / 100.0).round(2)
end
end
end