Class: WEEL::ManipulateHash
Overview
}}}
Instance Attribute Summary collapse
-
#__weel_changed ⇒ Object
readonly
{{{.
-
#__weel_touched ⇒ Object
readonly
{{{.
Instance Method Summary collapse
- #delete(value) ⇒ Object
-
#initialize(values, touched, changed) ⇒ ManipulateHash
constructor
A new instance of ManipulateHash.
- #method_missing(name, *args) ⇒ Object
Methods included from HashExt
Constructor Details
#initialize(values, touched, changed) ⇒ ManipulateHash
Returns a new instance of ManipulateHash.
243 244 245 246 247 |
# File 'lib/weel.rb', line 243 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
256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 |
# File 'lib/weel.rb', line 256 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)
{{{
239 240 241 |
# File 'lib/weel.rb', line 239 def __weel_changed @__weel_changed end |
#__weel_touched ⇒ Object (readonly)
{{{
239 240 241 |
# File 'lib/weel.rb', line 239 def __weel_touched @__weel_touched end |
Instance Method Details
#delete(value) ⇒ Object
249 250 251 252 253 254 |
# File 'lib/weel.rb', line 249 def delete(value) if @__weel_values.key?(value) @__weel_changed << value @__weel_values.delete(value) end end |