Class: SymbolHash
Overview
A subclass of Hash where all keys are converted into Symbols, and optionally, all String values are converted into Symbols.
Class Method Summary collapse
Instance Method Summary collapse
-
#[](key) ⇒ Object
Accessed a symbolized key.
-
#[]=(key, value) ⇒ Object
Assigns a value to a symbolized key.
-
#delete(key) ⇒ void
Deleted a key and value associated with it.
-
#initialize(symbolize_value = true) ⇒ SymbolHash
constructor
Creates a new SymbolHash object.
-
#key?(key) ⇒ Boolean
(also: #has_key?)
Tests if a symbolized key exists.
-
#merge(hash) ⇒ SymbolHash
Merges the contents of another hash into a new SymbolHash object.
-
#update(hash) ⇒ SymbolHash
(also: #merge!)
Updates the object with the contents of another Hash object.
Constructor Details
#initialize(symbolize_value = true) ⇒ SymbolHash
Creates a new SymbolHash object
9 10 11 |
# File 'lib/yard/core_ext/symbol_hash.rb', line 9 def initialize(symbolize_value = true) @symbolize_value = symbolize_value end |
Class Method Details
.[](hash) ⇒ SymbolHash .[](*list) ⇒ SymbolHash
28 29 30 31 32 33 34 35 36 |
# File 'lib/yard/core_ext/symbol_hash.rb', line 28 def self.[](*hsh) obj = new if hsh.size == 1 && hsh.first.is_a?(Hash) hsh.first.each {|k, v| obj[k] = v } else 0.step(hsh.size, 2) {|n| obj[hsh[n]] = hsh[n + 1] } end obj end |
Instance Method Details
#[](key) ⇒ Object
Accessed a symbolized key
49 |
# File 'lib/yard/core_ext/symbol_hash.rb', line 49 def [](key) super(key.to_sym) end |
#[]=(key, value) ⇒ Object
Assigns a value to a symbolized key
42 43 44 |
# File 'lib/yard/core_ext/symbol_hash.rb', line 42 def []=(key, value) super(key.to_sym, value.instance_of?(String) && @symbolize_value ? value.to_sym : value) end |
#delete(key) ⇒ void
This method returns an undefined value.
Deleted a key and value associated with it
54 |
# File 'lib/yard/core_ext/symbol_hash.rb', line 54 def delete(key) super(key.to_sym) end |
#key?(key) ⇒ Boolean Also known as: has_key?
Tests if a symbolized key exists
59 |
# File 'lib/yard/core_ext/symbol_hash.rb', line 59 def key?(key) super(key.to_sym) end |
#merge(hash) ⇒ SymbolHash
Merges the contents of another hash into a new SymbolHash object
74 |
# File 'lib/yard/core_ext/symbol_hash.rb', line 74 def merge(hash) dup.merge!(hash) end |
#update(hash) ⇒ SymbolHash Also known as: merge!
Updates the object with the contents of another Hash object. This method modifies the original SymbolHash object
67 |
# File 'lib/yard/core_ext/symbol_hash.rb', line 67 def update(hash) hash.each {|k, v| self[k] = v }; self end |