Class: WEEL::ManipulateHash
- Inherits:
-
Object
- Object
- WEEL::ManipulateHash
- Defined in:
- lib/weel.rb
Overview
}}}
Instance Attribute Summary collapse
-
#__weel_changed ⇒ Object
readonly
{{{.
-
#__weel_touched ⇒ Object
readonly
{{{.
Instance Method Summary collapse
- #clear ⇒ Object
- #delete(value) ⇒ Object
-
#initialize(values, touched, changed) ⇒ ManipulateHash
constructor
A new instance of ManipulateHash.
- #method_missing(name, *args) ⇒ Object
Constructor Details
#initialize(values, touched, changed) ⇒ ManipulateHash
Returns a new instance of ManipulateHash.
141 142 143 144 145 |
# File 'lib/weel.rb', line 141 def initialize(values,touched,changed) @__weel_values = values @__weel_touched = touched @__weel_changed = changed end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, *args) ⇒ Object
159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 |
# File 'lib/weel.rb', line 159 def method_missing(name,*args) if args.empty? && @__weel_values.key?(name) @__weel_touched << name @__weel_values[name] elsif name.to_s[-1..-1] == "=" && args.length == 1 temp = name.to_s[0..-2] @__weel_changed << temp.to_sym @__weel_values[temp.to_sym] = args[0] elsif name.to_s == "[]=" && args.length == 2 @__weel_changed << args[0] @__weel_values[args[0]] = args[1] elsif name.to_s == "[]" && args.length == 1 @__weel_touched << args[0] @__weel_values[args[0]] else nil end end |
Instance Attribute Details
#__weel_changed ⇒ Object (readonly)
{{{
139 140 141 |
# File 'lib/weel.rb', line 139 def __weel_changed @__weel_changed end |
#__weel_touched ⇒ Object (readonly)
{{{
139 140 141 |
# File 'lib/weel.rb', line 139 def __weel_touched @__weel_touched end |
Instance Method Details
#clear ⇒ Object
154 155 156 157 |
# File 'lib/weel.rb', line 154 def clear @__weel_changed += @__weel_values.keys @__weel_values.clear end |
#delete(value) ⇒ Object
147 148 149 150 151 152 |
# File 'lib/weel.rb', line 147 def delete(value) if @__weel_values.key?(value) @__weel_changed << value @__weel_values.delete(value) end end |