Class: Gitoe::Repo::Rugged_backend

Inherits:
Object
  • Object
show all
Includes:
Rugged
Defined in:
lib/gitoe/repo/rugged.rb

Direct Known Subclasses

RestfulRugged

Instance Method Summary collapse

Constructor Details

#initialize(path) ⇒ Rugged_backend

Returns a new instance of Rugged_backend.



20
21
22
# File 'lib/gitoe/repo/rugged.rb', line 20

def initialize path
  @rugged = Repository.new path
end

Instance Method Details

#commit(sha1) ⇒ Object



28
29
30
31
32
33
34
35
36
37
# File 'lib/gitoe/repo/rugged.rb', line 28

def commit sha1
  # $gitoe_log[ "query #{sha1}" ]
  obj = @rugged.lookup(sha1)
  case obj
  when Commit
    commit_to_hash obj
  else
    raise "#{obj} is not commit"
  end
end

#pathObject



24
25
26
# File 'lib/gitoe/repo/rugged.rb', line 24

def path
  @rugged.path
end

#ref(name) ⇒ Object



47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/gitoe/repo/rugged.rb', line 47

def ref(name)
  resolved = Reference.lookup(@rugged, name)
  basic = {
      :name   => resolved.name     ,
      :target => resolved.target   ,
      :type   => resolved.type     ,
      :log    => reflog( resolved ),
    }
  case name
  when %r{^refs/remotes/}, %r{^refs/heads/}, 'HEAD'
    extra = {}
  when %r{^refs/tags/}
    extra = deref_tag(resolved)
  else
    raise "error parsing ref <ref>"
  end
  basic.merge(extra).freeze
end

#refsObject



39
40
41
42
43
44
45
# File 'lib/gitoe/repo/rugged.rb', line 39

def refs
  Hash[
    ref_names.map do |ref_name|
      [ ref_name, ref(ref_name) ]
    end
  ]
end