Class: Gitrb::Reference
- Inherits:
- 
      Object
      
        - Object
- Gitrb::Reference
 
- Defined in:
- lib/gitrb/reference.rb
Overview
Reference to GitObject to support lazy-loading of git-objects
Instance Method Summary collapse
- 
  
    
      #initialize(properties = {})  ⇒ Reference 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    A new instance of Reference. 
- #method_missing(name, *args, &block) ⇒ Object
- #resolved? ⇒ Boolean
Constructor Details
#initialize(properties = {}) ⇒ Reference
Returns a new instance of Reference.
| 7 8 9 10 | # File 'lib/gitrb/reference.rb', line 7 def initialize(properties = {}) @properties = properties @object = nil end | 
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, *args, &block) ⇒ Object
| 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | # File 'lib/gitrb/reference.rb', line 12 def method_missing(name, *args, &block) if @object if @object.respond_to? name instance_eval %{def self.#{name}(*args, &block); @object.send("#{name}", *args, &block); end} end @object.send(name, *args, &block) elsif name == :type && (mode = @properties['mode'] || @properties[:mode]) (mode & 040000 == 040000) ? :tree : :blob elsif @properties.include?(name) @properties[name] elsif @properties.include?(name.to_s) @properties[name.to_s] else @object = repository.get(id) method_missing(name, *args, &block) end end | 
Instance Method Details
#resolved? ⇒ Boolean
| 30 31 32 | # File 'lib/gitrb/reference.rb', line 30 def resolved? @object != nil end |