Class: ExtendHash
- Inherits:
-
Hash
show all
- Defined in:
- lib/tagen/core/extend_hash.rb
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Hash
#delete, #original_delete
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, *args) ⇒ Object
37
38
39
40
41
42
43
44
45
|
# File 'lib/tagen/core/extend_hash.rb', line 37
def method_missing(name, *args)
if name =~ /=$/
store(name[0...-1].to_sym, args[0])
elsif has_key?(name)
fetch(name)
else
raise NoMethodError, "-- :#{name}, #{args.inspect}"
end
end
|
Class Method Details
3
4
5
6
7
8
9
10
11
12
13
|
# File 'lib/tagen/core/extend_hash.rb', line 3
def [](hash)
case hash
when ExtendHash
hash
when Hash
eh = self.new
eh.replace deep_convert(hash)
else
raise ArgumentError, "must be a Hash or ExtendHash"
end
end
|
Instance Method Details
32
33
34
35
|
# File 'lib/tagen/core/extend_hash.rb', line 32
def [](key)
key = key.to_sym if String === key
super(key)
end
|
#[]=(key, value) ⇒ Object
27
28
29
30
|
# File 'lib/tagen/core/extend_hash.rb', line 27
def []=(key, value)
key = key.to_sym if String === key
super(key, value)
end
|