Class: Neo4j::Core::HashWithIndifferentAccess
- Inherits:
 - 
      Hash
      
        
- Object
 - Hash
 - Neo4j::Core::HashWithIndifferentAccess
 
 - Defined in:
 - lib/neo4j-core/hash_with_indifferent_access.rb
 
Overview
Stolen from as.rubyonrails.org/classes/HashWithIndifferentAccess.html We don't want to depend on active support
Class Method Summary (collapse)
Instance Method Summary (collapse)
- 
  
    
      - (Object) []=(key, value) 
    
    
      (also: #store)
    
  
  
  
  
  
  
  
  
  
    
Assigns a new value to the hash:.
 - - (Object) default(key = nil)
 - 
  
    
      - (Object) delete(key) 
    
    
  
  
  
  
  
  
  
  
  
    
Removes a specified key from the hash.
 - 
  
    
      - (Object) dup 
    
    
  
  
  
  
  
  
  
  
  
    
Returns an exact copy of the hash.
 - 
  
    
      - (Boolean) extractable_options? 
    
    
  
  
  
  
  
  
  
  
  
    
Always returns true, so that Array#extract_options! finds members of this class.
 - 
  
    
      - (Object) fetch(key, *extras) 
    
    
  
  
  
  
  
  
  
  
  
    
Fetches the value for the specified key, same as doing hash.
 - 
  
    
      - (HashWithIndifferentAccess) initialize(constructor = {}) 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    
A new instance of HashWithIndifferentAccess.
 - 
  
    
      - (Boolean) key?(key) 
    
    
      (also: #include?, #has_key?, #member?)
    
  
  
  
  
  
  
  
  
  
    
Checks the hash for a key matching the argument passed in:.
 - 
  
    
      - (Object) merge(hash) 
    
    
  
  
  
  
  
  
  
  
  
    
Merges the instantized and the specified hashes together, giving precedence to the values from the second hash.
 - - (Object) nested_under_indifferent_access
 - - (Object) regular_update
 - - (Object) regular_writer
 - 
  
    
      - (Object) reverse_merge(other_hash) 
    
    
  
  
  
  
  
  
  
  
  
    
Performs the opposite of merge, with the keys and values from the first hash taking precedence over the second.
 - - (Object) reverse_merge!(other_hash)
 - - (Object) stringify_keys
 - - (Object) stringify_keys!
 - 
  
    
      - (Object) symbolize_keys 
    
    
  
  
  
  
  
  
  
  
  
    
undef :symbolize_keys!.
 - 
  
    
      - (Object) to_hash 
    
    
  
  
  
  
  
  
  
  
  
    
Convert to a Hash with String keys.
 - - (Object) to_options!
 - 
  
    
      - (Object) update(other_hash) 
    
    
      (also: #merge!)
    
  
  
  
  
  
  
  
  
  
    
Updates the instantized hash with values from the second:.
 - 
  
    
      - (Object) values_at(*indices) 
    
    
  
  
  
  
  
  
  
  
  
    
Returns an array of the values at the specified indices:.
 - - (Object) with_indifferent_access
 
Constructor Details
- (HashWithIndifferentAccess) initialize(constructor = {})
Returns a new instance of HashWithIndifferentAccess
      19 20 21 22 23 24 25 26  | 
    
      # File 'lib/neo4j-core/hash_with_indifferent_access.rb', line 19 def initialize(constructor = {}) if constructor.is_a?(Hash) super() update(constructor) else super(constructor) end end  | 
  
Class Method Details
+ (Object) new_from_hash_copying_default(hash)
      36 37 38 39 40  | 
    
      # File 'lib/neo4j-core/hash_with_indifferent_access.rb', line 36 def self.(hash) new(hash).tap do |new_hash| new_hash.default = hash.default end end  | 
  
Instance Method Details
- (Object) []=(key, value) Also known as: store
Assigns a new value to the hash:
hash = HashWithIndifferentAccess.new
hash[:key] = "value"
  
      50 51 52  | 
    
      # File 'lib/neo4j-core/hash_with_indifferent_access.rb', line 50 def []=(key, value) regular_writer(convert_key(key), convert_value(value)) end  | 
  
- (Object) default(key = nil)
      28 29 30 31 32 33 34  | 
    
      # File 'lib/neo4j-core/hash_with_indifferent_access.rb', line 28 def default(key = nil) if key.is_a?(Symbol) && include?(key = key.to_s) self[key] else super end end  | 
  
- (Object) delete(key)
Removes a specified key from the hash.
      132 133 134  | 
    
      # File 'lib/neo4j-core/hash_with_indifferent_access.rb', line 132 def delete(key) super(convert_key(key)) end  | 
  
- (Object) dup
Returns an exact copy of the hash.
      109 110 111 112 113  | 
    
      # File 'lib/neo4j-core/hash_with_indifferent_access.rb', line 109 def dup self.class.new(self).tap do |new_hash| new_hash.default = default end end  | 
  
- (Boolean) extractable_options?
Always returns true, so that Array#extract_options! finds
members of this class.
      7 8 9  | 
    
      # File 'lib/neo4j-core/hash_with_indifferent_access.rb', line 7 def true end  | 
  
- (Object) fetch(key, *extras)
Fetches the value for the specified key, same as doing hash
      93 94 95  | 
    
      # File 'lib/neo4j-core/hash_with_indifferent_access.rb', line 93 def fetch(key, *extras) super(convert_key(key), *extras) end  | 
  
- (Boolean) key?(key) Also known as: include?, has_key?, member?
Checks the hash for a key matching the argument passed in:
hash = HashWithIndifferentAccess.new
hash["key"] = "value"
hash.key? :key  # => true
hash.key? "key" # => true
  
      84 85 86  | 
    
      # File 'lib/neo4j-core/hash_with_indifferent_access.rb', line 84 def key?(key) super(convert_key(key)) end  | 
  
- (Object) merge(hash)
Merges the instantized and the specified hashes together, giving precedence to the values from the second hash. Does not overwrite the existing hash.
      117 118 119  | 
    
      # File 'lib/neo4j-core/hash_with_indifferent_access.rb', line 117 def merge(hash) dup.update(hash) end  | 
  
- (Object) nested_under_indifferent_access
      15 16 17  | 
    
      # File 'lib/neo4j-core/hash_with_indifferent_access.rb', line 15 def nested_under_indifferent_access self end  | 
  
- (Object) regular_update
      43  | 
    
      # File 'lib/neo4j-core/hash_with_indifferent_access.rb', line 43 alias_method :regular_update, :update  | 
  
- (Object) regular_writer
      42  | 
    
      # File 'lib/neo4j-core/hash_with_indifferent_access.rb', line 42 alias_method :regular_writer, :[]=  | 
  
- (Object) reverse_merge(other_hash)
Performs the opposite of merge, with the keys and values from the first
hash taking precedence over the second. This overloaded definition prevents
returning a regular hash, if reverse_merge is called on a
HashWithDifferentAccess.
      123 124 125  | 
    
      # File 'lib/neo4j-core/hash_with_indifferent_access.rb', line 123 def reverse_merge(other_hash) super self.class.(other_hash) end  | 
  
- (Object) reverse_merge!(other_hash)
      127 128 129  | 
    
      # File 'lib/neo4j-core/hash_with_indifferent_access.rb', line 127 def reverse_merge!(other_hash) replace(reverse_merge(other_hash)) end  | 
  
- (Object) stringify_keys
      140 141 142  | 
    
      # File 'lib/neo4j-core/hash_with_indifferent_access.rb', line 140 def stringify_keys dup end  | 
  
- (Object) stringify_keys!
      136 137 138  | 
    
      # File 'lib/neo4j-core/hash_with_indifferent_access.rb', line 136 def stringify_keys! self end  | 
  
- (Object) symbolize_keys
undef :symbolize_keys!
      144 145 146  | 
    
      # File 'lib/neo4j-core/hash_with_indifferent_access.rb', line 144 def symbolize_keys to_hash.symbolize_keys end  | 
  
- (Object) to_hash
Convert to a Hash with String keys.
      153 154 155  | 
    
      # File 'lib/neo4j-core/hash_with_indifferent_access.rb', line 153 def to_hash Hash.new(default).merge!(self) end  | 
  
- (Object) to_options!
      148 149 150  | 
    
      # File 'lib/neo4j-core/hash_with_indifferent_access.rb', line 148 def self end  | 
  
- (Object) update(other_hash) Also known as: merge!
Updates the instantized hash with values from the second:
hash_1 = HashWithIndifferentAccess.new
hash_1[:key] = "value"
hash_2 = HashWithIndifferentAccess.new
hash_2[:key] = "New Value!"
hash_1.update(hash_2) # => {"key"=>"New Value!"}
  
      66 67 68 69 70 71 72 73  | 
    
      # File 'lib/neo4j-core/hash_with_indifferent_access.rb', line 66 def update(other_hash) if other_hash.is_a? HashWithIndifferentAccess super(other_hash) else other_hash.each_pair { |key, value| regular_writer(convert_key(key), convert_value(value)) } self end end  | 
  
- (Object) values_at(*indices)
Returns an array of the values at the specified indices:
hash = HashWithIndifferentAccess.new
hash[:a] = "x"
hash[:b] = "y"
hash.values_at("a", "b") # => ["x", "y"]
  
      104 105 106  | 
    
      # File 'lib/neo4j-core/hash_with_indifferent_access.rb', line 104 def values_at(*indices) indices.collect { |key| self[convert_key(key)] } end  | 
  
- (Object) with_indifferent_access
      11 12 13  | 
    
      # File 'lib/neo4j-core/hash_with_indifferent_access.rb', line 11 def with_indifferent_access dup end  |