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



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

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

#blame(repo, ref, path) ⇒ Object



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

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
37
38
39
40
41
42
# File 'lib/libdolt/repository_lookup.rb', line 30

def blob(repo, ref, path)
  repository = resolve_repository(repo)
  blob = repository.rev_parse(ref)

  if !blob.is_a?(Rugged::Blob)
    blob = repository.rev_parse("#{ref}:#{path}")
  end

  tpl_data(repository, ref, path, {
      :blob => blob,
      :filemode => filemode(repository, ref, path)
    })
end

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



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

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



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

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



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

def repositories
  repo_resolver.all
end

#resolve_repository(repo) ⇒ Object



101
102
103
# File 'lib/libdolt/repository_lookup.rb', line 101

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

#rev_parse_oid(repo, ref) ⇒ Object



105
106
107
# File 'lib/libdolt/repository_lookup.rb', line 105

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

#tree(repo, ref, path) ⇒ Object



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

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



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

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



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

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