Class: Dolt::RepositoryLookup

Inherits:
Object
  • Object
show all
Defined in:
lib/libdolt/repository_lookup.rb

Instance Method Summary collapse

Constructor Details

#initialize(repo_resolver, archiver = nil) ⇒ RepositoryLookup

Returns a new instance of RepositoryLookup.



25
26
27
28
# File 'lib/libdolt/repository_lookup.rb', line 25

def initialize(repo_resolver, archiver = nil)
  @repo_resolver = repo_resolver
  @archiver = archiver
end

Instance Method Details

#archive(repo, ref, format) ⇒ Object



86
87
88
89
# File 'lib/libdolt/repository_lookup.rb', line 86

def archive(repo, ref, format)
  repository = resolve_repository(repo)
  @archiver.archive(repository, ref, format)
end

#blame(repo, ref, path) ⇒ Object



55
56
57
58
59
60
61
# File 'lib/libdolt/repository_lookup.rb', line 55

def blame(repo, ref, path)
  repository = resolve_repository(repo)
  tpl_data(repository, ref, path, {
      :blame => repository.blame(ref, path),
      :filemode => filemode(repository, ref, path)
    })
end

#blob(repo, ref, path) ⇒ Object



30
31
32
33
34
35
36
# File 'lib/libdolt/repository_lookup.rb', line 30

def blob(repo, ref, path)
  repository = resolve_repository(repo)
  tpl_data(repository, ref, path, {
      :blob => repository.rev_parse("#{ref}:#{path}"),
      :filemode => filemode(repository, ref, path)
    })
end

#history(repo, ref, path, count) ⇒ Object



63
64
65
66
67
68
# File 'lib/libdolt/repository_lookup.rb', line 63

def history(repo, ref, path, count)
  repository = resolve_repository(repo)
  tpl_data(repository, ref, path, {
      :commits => repository.log(ref, path, count)
    })
end

#refs(repo) ⇒ Object



70
71
72
73
74
75
76
77
# File 'lib/libdolt/repository_lookup.rb', line 70

def refs(repo)
  repository = resolve_repository(repo)
  names = repository.refs.map(&:name)
  {
    :tags => expand_refs(repository, names, :tags),
    :heads => expand_refs(repository, names, :heads)
  }.merge(repository.to_hash)
end

#repositoriesObject



91
92
93
# File 'lib/libdolt/repository_lookup.rb', line 91

def repositories
  repo_resolver.all
end

#resolve_repository(repo) ⇒ Object



95
96
97
# File 'lib/libdolt/repository_lookup.rb', line 95

def resolve_repository(repo)
  ResolvedRepository.new(repo, repo_resolver.resolve(repo))
end

#rev_parse_oid(repo, ref) ⇒ Object



99
100
101
# File 'lib/libdolt/repository_lookup.rb', line 99

def rev_parse_oid(repo, ref)
  resolve_repository(repo).rev_parse_oid(ref)
end

#tree(repo, ref, path) ⇒ Object



38
39
40
41
42
43
# File 'lib/libdolt/repository_lookup.rb', line 38

def tree(repo, ref, path)
  repository = resolve_repository(repo)
  tpl_data(repository, ref, path, {
      :tree => repository.tree(ref, path)
    }).merge(:readme => readme(repo, ref, path))
end

#tree_entry(repo, ref, path) ⇒ Object



45
46
47
48
49
50
51
52
53
# File 'lib/libdolt/repository_lookup.rb', line 45

def tree_entry(repo, ref, path)
  repository = resolve_repository(repo)
  result = repository.tree_entry(ref, path)
  key = result.class.to_s.match(/Blob/) ? :blob : :tree
  hash = tpl_data(repository, ref, path, { key => result, :type => key })
  hash[:readme] = readme(repo, ref, path) if key == :tree
  hash[:filemode] = filemode(repository, ref, path) if key == :blob
  hash
end

#tree_history(repo, ref, path, count) ⇒ Object



79
80
81
82
83
84
# File 'lib/libdolt/repository_lookup.rb', line 79

def tree_history(repo, ref, path, count)
  repository = resolve_repository(repo)
  tpl_data(repository, ref, path, {
      :tree => repository.tree_history(ref, path, count)
    })
end