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
94
95
96
97
98
99
100
|
# File 'lib/little_boxes/box.rb', line 94
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.
79
80
81
|
# File 'lib/little_boxes/box.rb', line 79
def entries
@entries
end
|
#parent ⇒ Object
Returns the value of attribute parent.
79
80
81
|
# File 'lib/little_boxes/box.rb', line 79
def parent
@parent
end
|
Class Method Details
.included(klass) ⇒ Object
81
82
83
|
# File 'lib/little_boxes/box.rb', line 81
def self.included(klass)
klass.extend ClassMethods
end
|
Instance Method Details
#[](name) ⇒ Object
85
86
87
88
|
# File 'lib/little_boxes/box.rb', line 85
def [] name
entry = @entries[name] ||= (@parent && @parent.entries[name])
entry ? entry.value : (parent && parent[name])
end
|
#inspect ⇒ Object
90
91
92
|
# File 'lib/little_boxes/box.rb', line 90
def inspect
"#<#{self.class.name} #{entries.keys.map(&:inspect).join(", ")}>"
end
|
#respond_to_missing?(name, include_private = false) ⇒ Boolean
102
103
104
|
# File 'lib/little_boxes/box.rb', line 102
def respond_to_missing?(name, include_private = false)
@parent.respond_to?(name, include_private)
end
|