licensee/lib/licensee.rb

59 lines
1.7 KiB
Ruby

require_relative 'licensee/version'
require 'forwardable'
require 'pathname'
require 'yaml'
module Licensee
autoload :ContentHelper, 'licensee/content_helper'
autoload :HashHelper, 'licensee/hash_helper'
autoload :License, 'licensee/license'
autoload :LicenseField, 'licensee/license_field'
autoload :LicenseMeta, 'licensee/license_meta'
autoload :LicenseRules, 'licensee/license_rules'
autoload :Rule, 'licensee/rule'
autoload :Matchers, 'licensee/matchers'
autoload :Projects, 'licensee/projects'
autoload :ProjectFiles, 'licensee/project_files'
# Over which percent is a match considered a match by default
CONFIDENCE_THRESHOLD = 98
# 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)
if path =~ %r{\Ahttps://github.com}
Licensee::Projects::GitHubProject.new(path, args)
else
Licensee::Projects::GitProject.new(path, args)
end
rescue Licensee::Projects::GitProject::InvalidRepository
Licensee::Projects::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.05
def inverse_confidence_threshold
@inverse_confidence_threshold ||=
(1 - Licensee.confidence_threshold / 100.0).round(2)
end
end
end