Module: LittleBoxes::Box
- Defined in:
- lib/little_boxes/box.rb
Defined Under Namespace
Modules: ClassMethods
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, *args, &block) ⇒ Object
96
97
98
99
100
101
102
|
# File 'lib/little_boxes/box.rb', line 96
def method_missing(name, *args, &block)
if respond_to?(name)
self[name.to_sym]
else
super
end
end
|
Instance Attribute Details
#entries ⇒ Object
Returns the value of attribute entries.
81
82
83
|
# File 'lib/little_boxes/box.rb', line 81
def entries
@entries
end
|
#parent ⇒ Object
Returns the value of attribute parent.
81
82
83
|
# File 'lib/little_boxes/box.rb', line 81
def parent
@parent
end
|
Class Method Details
.included(klass) ⇒ Object
83
84
85
|
# File 'lib/little_boxes/box.rb', line 83
def self.included(klass)
klass.extend ClassMethods
end
|
Instance Method Details
#[](name) ⇒ Object
87
88
89
90
|
# File 'lib/little_boxes/box.rb', line 87
def [] name
entry = @entries[name] ||= (@parent && @parent.entries[name])
entry ? entry.value : (parent && parent[name])
end
|
#inspect ⇒ Object
92
93
94
|
# File 'lib/little_boxes/box.rb', line 92
def inspect
"#<#{self.class.name} #{entries.keys.map(&:inspect).join(", ")}>"
end
|
#respond_to_missing?(name, include_private = false) ⇒ Boolean
104
105
106
|
# File 'lib/little_boxes/box.rb', line 104
def respond_to_missing?(name, include_private = false)
@parent.respond_to?(name, include_private)
end
|