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



83
84
85
86
# File 'lib/libdolt/repository_lookup.rb', line 83

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

#blame(repo, ref, path) ⇒ Object



53
54
55
56
57
58
# File 'lib/libdolt/repository_lookup.rb', line 53

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

#blob(repo, ref, path) ⇒ Object



30
31
32
33
34
35
# 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}")
    })
end

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



60
61
62
63
64
65
# File 'lib/libdolt/repository_lookup.rb', line 60

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



67
68
69
70
71
72
73
74
# File 'lib/libdolt/repository_lookup.rb', line 67

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

#repositories ⇒ Object



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

def repositories
  repo_resolver.all
end

#resolve_repository(repo) ⇒ Object



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

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

#rev_parse_oid(repo, ref) ⇒ Object



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

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

#tree(repo, ref, path) ⇒ Object



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

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



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

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
end

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



76
77
78
79
80
81
# File 'lib/libdolt/repository_lookup.rb', line 76

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