Class: Grit::Ref

Inherits:
Object
  • Object
show all
Defined in:
lib/grit/ref.rb

Direct Known Subclasses

Head, Remote, Tag

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, commit) ⇒ Ref

Instantiate a new Head name is the name of the head commit is the Commit that the head points to

Returns Grit::Head (baked)



62
63
64
65
# File 'lib/grit/ref.rb', line 62

def initialize(name, commit)
  @name = name
  @commit = commit
end

Instance Attribute Details

#commitObject (readonly)

Returns the value of attribute commit.



55
56
57
# File 'lib/grit/ref.rb', line 55

def commit
  @commit
end

#nameObject (readonly)

Returns the value of attribute name.



54
55
56
# File 'lib/grit/ref.rb', line 54

def name
  @name
end

Class Method Details

.find_all(repo, options = {}) ⇒ Object

Find all Refs repo is the Repo options is a Hash of options

Returns Grit::Ref (baked)



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/grit/ref.rb', line 12

def find_all(repo, options = {})
  refs = []
  already = {}
  Dir.chdir(repo.path) do
    files = Dir.glob(prefix + '/**/*')
    files.each do |ref|
      next if !File.file?(ref)
      id = File.read(ref).chomp
      name = ref.sub("#{prefix}/", '')
      commit = Commit.create(repo, :id => id)
      if !already[name]
        refs << self.new(name, commit)
        already[name] = true
      end
    end

    if File.file?('packed-refs')
      File.readlines('packed-refs').each do |line|
        if m = /^(\w{40}) (.*?)$/.match(line)
          next if !Regexp.new('^' + prefix).match(m[2])
          name = m[2].sub("#{prefix}/", '')
          commit = Commit.create(repo, :id => m[1])
          if !already[name]
            refs << self.new(name, commit)
            already[name] = true
          end
        end
      end
    end
  end

  refs
end

Instance Method Details

#inspectObject

Pretty object inspection



68
69
70
# File 'lib/grit/ref.rb', line 68

def inspect
  %Q{#<#{self.class.name} "#{@name}">}
end