Module: Receiver::ActsAsHash::InstanceMethods
- Defined in:
- lib/gorillib/receiver/acts_as_hash.rb
Instance Method Summary collapse
-
#[](key) ⇒ Object
Hashlike#[].
-
#[]=(key, val) ⇒ Object
Hashlike#[]= Hashlike#store.
-
#delete(key, &block) ⇒ Object
Hashlike#delete.
-
#keys ⇒ Array
Hashlike#keys.
- #members ⇒ Object
-
#to_hash ⇒ Hash
Returns a hash with each key set to its associated value.
Instance Method Details
#[](key) ⇒ Object
Hashlike#[]
Element Reference – Retrieves the value stored for key
.
In a normal hash, a default value can be set; none is provided here.
Delegates to self.send(key)
53 54 55 56 |
# File 'lib/gorillib/receiver/acts_as_hash.rb', line 53 def [](key) key = convert_key(key) self.send(key) end |
#[]=(key, val) ⇒ Object
Hashlike#[]= Hashlike#store
Element Assignment – Associates the value given by val
with the key given by key
.
key should not have its value changed while it is in use as a key. In a normal hash, a String passed as a key will be duplicated and frozen. No such guarantee is provided here
Delegates to self.send(“key=”, val)
83 84 85 86 |
# File 'lib/gorillib/receiver/acts_as_hash.rb', line 83 def []=(key, val) key = convert_key(key) self.send("#{key}=", val) end |
#hsh.delete(key) ⇒ Object, Nil #hsh.delete(key) {|Object| ... } ⇒ Object, Nil
Hashlike#delete
Deletes and returns the value from hsh
whose key is equal to key
. If the optional code block is given and the key is not found, pass in the key and return the result of block
.
In a normal hash, a default value can be set; none is provided here.
113 114 115 116 117 118 119 120 121 122 123 124 |
# File 'lib/gorillib/receiver/acts_as_hash.rb', line 113 def delete(key, &block) key = convert_key(key) if has_key?(key) val = self[key] self.send(:remove_instance_variable, "@#{key}") val elsif block_given? block.call(key) else nil end end |
#keys ⇒ Array
Hashlike#keys
Returns a new array populated with the keys from this hashlike.
138 139 140 |
# File 'lib/gorillib/receiver/acts_as_hash.rb', line 138 def keys members & instance_variables.map{|s| convert_key(s[1..-1]) } end |
#members ⇒ Object
142 143 144 |
# File 'lib/gorillib/receiver/acts_as_hash.rb', line 142 def members self.class.members end |
#to_hash ⇒ Hash
Returns a hash with each key set to its associated value.
156 157 158 159 160 161 162 |
# File 'lib/gorillib/receiver/acts_as_hash.rb', line 156 def to_hash {}.tap do |hsh| each_pair do |key, val| hsh[key] = val.respond_to?(:to_hash) ? val.to_hash : val end end end |