Class: Forester::NodeContent::Dictionary
- Defined in:
- lib/forester/node_content/dictionary.rb
Instance Method Summary collapse
- #[](key) ⇒ Object
- #[]=(key, value, options = {}) ⇒ Object (also: #put!)
- #delete(key, default = :yield_to_block, &block) ⇒ Object (also: #del!)
- #fetch(key, default = :yield_to_block, &block) ⇒ Object (also: #get)
- #fields ⇒ Object
- #has_key?(key, indifferent = true) ⇒ Boolean (also: #has?)
- #merge(dictionary) ⇒ Object
- #to_hash(options = {}) ⇒ Object
Instance Method Details
#[](key) ⇒ Object
18 19 20 |
# File 'lib/forester/node_content/dictionary.rb', line 18 def [](key) super(best key) end |
#[]=(key, value, options = {}) ⇒ Object Also known as: put!
32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/forester/node_content/dictionary.rb', line 32 def []=(key, value, = {}) = { symbolize_key: true } = .merge() convert_key = ->(k) { k } convert_key = ->(k) { k.to_sym } if [:symbolize_key] super(convert_key.call(key), value) end |
#delete(key, default = :yield_to_block, &block) ⇒ Object Also known as: del!
45 46 47 48 49 50 51 52 |
# File 'lib/forester/node_content/dictionary.rb', line 45 def delete(key, default = :yield_to_block, &block) best_key = best key if default == :yield_to_block super(best_key, &block) else super(best_key, default, &block) end end |
#fetch(key, default = :yield_to_block, &block) ⇒ Object Also known as: get
22 23 24 25 26 27 28 29 |
# File 'lib/forester/node_content/dictionary.rb', line 22 def fetch(key, default = :yield_to_block, &block) best_key = best key if default == :yield_to_block super(best_key, &block) else super(best_key, default, &block) end end |
#fields ⇒ Object
5 6 7 |
# File 'lib/forester/node_content/dictionary.rb', line 5 def fields keys end |
#has_key?(key, indifferent = true) ⇒ Boolean Also known as: has?
9 10 11 12 13 14 15 |
# File 'lib/forester/node_content/dictionary.rb', line 9 def has_key?(key, indifferent = true) if indifferent equivs(key).any? { |k| super(k) } else super(key) end end |
#merge(dictionary) ⇒ Object
75 76 77 |
# File 'lib/forester/node_content/dictionary.rb', line 75 def merge(dictionary) self.class.new(super) end |
#to_hash(options = {}) ⇒ Object
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/forester/node_content/dictionary.rb', line 55 def to_hash( = {}) = { fields_to_include: fields, # all of them stringify_keys: false, symbolize_keys: false } = .merge() [:fields_to_include] = fields if [:fields_to_include] == :all convert_key = ->(k) { k } convert_key = ->(k) { k.to_s } if [:stringify_keys] convert_key = ->(k) { k.to_sym } if [:symbolize_keys] each_with_object({}) do |(k, v), hash| if equivs(k).any? { |eq| [:fields_to_include].include?(eq) } hash[convert_key.call(k)] = v end end end |