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