class Licensee::GitProject
Constants
- MAX_LICENSE_SIZE
Attributes
repository[R]
revision[R]
Public Class Methods
new(repo, revision: nil, **args)
click to toggle source
Calls superclass method
Licensee::Project.new
# File lib/licensee/projects/git_project.rb, line 10 def initialize(repo, revision: nil, **args) @repository = if repo.is_a? Rugged::Repository repo else Rugged::Repository.new(repo) end @revision = revision super(**args) rescue Rugged::OSError, Rugged::RepositoryError raise InvalidRepository end
Public Instance Methods
close()
click to toggle source
# File lib/licensee/projects/git_project.rb, line 23 def close @repository.close end
Private Instance Methods
commit()
click to toggle source
# File lib/licensee/projects/git_project.rb, line 29 def commit @commit ||= if revision repository.lookup(revision) else repository.last_commit end end
find_file() { |entry) > 0| ... }
click to toggle source
# File lib/licensee/projects/git_project.rb, line 44 def find_file files = commit.tree.map do |entry| next unless entry[:type] == :blob if (score = yield entry[:name]) > 0 { name: entry[:name], oid: entry[:oid], score: score } end end.compact return if files.empty? files.sort! { |a, b| b[:score] <=> a[:score] } f = files.first [load_blob_data(f[:oid]), f[:name]] end
load_blob_data(oid)
click to toggle source
# File lib/licensee/projects/git_project.rb, line 39 def load_blob_data(oid) data, = Rugged::Blob.to_buffer(repository, oid, MAX_LICENSE_SIZE) data end