Sha256: 160f1a0b80047821895cc6d0b9c151190bfa8c6ce4f49c2622768ac142a75b10
Contents?: true
Size: 1.34 KB
Versions: 3
Compression:
Stored size: 1.34 KB
Contents
class Licensee class Project attr_reader :repository # Array of file names to look for potential license files, in order # Filenames should be lower case as candidates are downcased before comparison LICENSE_FILENAMES = %w[ license license.txt license.md unlicense copying ] # Initializes a new project # # path_or_repo path to git repo or Rugged::Repository instance # revsion - revision ref, if any def initialize(path_or_repo, revision = nil) if path_or_repo.kind_of? Rugged::Repository @repository = path_or_repo else @repository = Rugged::Repository.new(path_or_repo) end @revision = revision end # Detects the license file, if any # Returns a Licensee::LicenseFile instance def license_file return @license_file if defined? @license_file commit = @revision ? @repository.lookup(@revision) : @repository.last_commit license_blob = commit.tree.each_blob { |blob| break blob if LICENSE_FILENAMES.include? blob[:name].downcase } @license_file = if license_blob LicenseFile.new(@repository.lookup(license_blob[:oid])) end end # Returns the matching Licensee::License instance if a license can be detected def license @license ||= license_file.match if license_file end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
licensee-4.2.4 | lib/licensee/project.rb |
licensee-4.2.3 | lib/licensee/project.rb |
licensee-4.2.2 | lib/licensee/project.rb |