Class: WEEL::ReadOnlyHash
- Inherits:
-
Object
- Object
- WEEL::ReadOnlyHash
- Defined in:
- lib/weel.rb
Overview
}}}
Instance Method Summary collapse
-
#initialize(values, sim = false) ⇒ ReadOnlyHash
constructor
{{{.
- #method_missing(name, *args) ⇒ Object
- #to_json(*args) ⇒ Object
Constructor Details
#initialize(values, sim = false) ⇒ ReadOnlyHash
{{{
275 276 277 278 279 280 281 282 283 284 285 286 287 288 |
# File 'lib/weel.rb', line 275 def initialize(values,sim=false) @__weel_values = values.transform_values do |v| if Object.const_defined?(:XML) && XML.const_defined?(:Smart) && v.is_a?(XML::Smart::Dom) v.root.to_doc else begin Marshal.load(Marshal.dump(v)) rescue v.to_s rescue nil end end end @__weel_sim = sim end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, *args) ⇒ Object
294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 |
# File 'lib/weel.rb', line 294 def method_missing(name,*args) if @__weel_sim "➤#{name}" else if args.empty? && @__weel_values.key?(name) @__weel_values[name] elsif args.empty? && @__weel_values.key?(name.to_s) @__weel_values[name.to_s] elsif name.to_s[-1..-1] == "=" && args.length == 1 temp = name.to_s[0..-2] @__weel_values[temp.to_sym] = args[0] elsif name.to_s == "[]=" && args.length == 2 @__weel_values[args[0]] = args[1] elsif name.to_s == "[]" && args.length == 1 @__weel_values[args[0]] else nil end end end |
Instance Method Details
#to_json(*args) ⇒ Object
290 291 292 |
# File 'lib/weel.rb', line 290 def to_json(*args) @__weel_values.to_json(*args) end |