Class: WEEL::ManipulateHash
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.
131 132 133 134 135 |
# File 'lib/weel.rb', line 131 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
149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 |
# File 'lib/weel.rb', line 149 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)
{{{
129 130 131 |
# File 'lib/weel.rb', line 129 def __weel_changed @__weel_changed end |
#__weel_touched ⇒ Object (readonly)
{{{
129 130 131 |
# File 'lib/weel.rb', line 129 def __weel_touched @__weel_touched end |
Instance Method Details
#clear ⇒ Object
144 145 146 147 |
# File 'lib/weel.rb', line 144 def clear @__weel_changed += @__weel_values.keys @__weel_values.clear end |
#delete(value) ⇒ Object
137 138 139 140 141 142 |
# File 'lib/weel.rb', line 137 def delete(value) if @__weel_values.key?(value) @__weel_changed << value @__weel_values.delete(value) end end |