Class: ActiveSupport::OrderedHash
| Relationships & Source Files | |
| Super Chains via Extension / Inclusion / Inheritance | |
| 
         Class Chain: 
        
          self,
          ::Hash
         
       | 
    |
| 
         Instance Chain: 
        
          self,
          ::Hash
         
       | 
    |
| Inherits: | Hash | 
| Defined in: | activesupport/lib/active_support/ordered_hash.rb | 
Overview
OrderedHash implements a hash that preserves insertion order.
oh = ActiveSupport::OrderedHash.new
oh[:a] = 1
oh[:b] = 2
oh.keys # => [:a, :b], this order is guaranteed
Also, maps the omap feature for YAML files (See yaml.org/type/omap.html) to support ordered items when loading from yaml.
OrderedHash is namespaced to prevent conflicts with other implementations.
Class Method Summary
::Hash - Inherited
| .from_trusted_xml | Builds a ::Hash from XML just like Hash.from_xml, but also allows ::Symbol and YAML.  | 
    
| .from_xml | Returns a ::Hash containing a collection of pairs when the key is the node name and the value is its content.  | 
    
Instance Attribute Summary
- 
    
      #extractable_options?  ⇒ Boolean 
    
    readonly
    
Returns true to make sure that this hash is extractable via Array#extract_options!
 
::Hash - Inherited
| #extractable_options? | By default, only instances of ::Hash itself are extractable.  | 
    
Instance Method Summary
- #encode_with(coder)
 - #nested_under_indifferent_access
 - #reject(*args, &block)
 - #select(*args, &block)
 - #to_yaml_type
 
::Hash - Inherited
| #assert_valid_keys | Validate all keys in a hash match   | 
    
| #blank? | A hash is blank if it's empty:  | 
    
| #compact | Returns a hash with non   | 
    
| #compact! | Replaces current hash with non   | 
    
| #deep_dup | Returns a deep copy of hash.  | 
    
| #deep_merge | Returns a new hash with   | 
    
| #deep_merge! | Same as   | 
    
| #deep_stringify_keys | Returns a new hash with all keys converted to strings.  | 
    
| #deep_stringify_keys! | Destructively convert all keys to strings.  | 
    
| #deep_symbolize_keys | Returns a new hash with all keys converted to symbols, as long as they respond to   | 
    
| #deep_symbolize_keys! | Destructively convert all keys to symbols, as long as they respond to   | 
    
| #deep_transform_keys | Returns a new hash with all keys converted by the block operation.  | 
    
| #deep_transform_keys! | Destructively convert all keys by using the block operation.  | 
    
| #except | Returns a hash that includes everything but the given keys.  | 
    
| #except! | Replaces the hash without the given keys.  | 
    
| #extract! | Removes and returns the key/value pairs matching the given keys.  | 
    
| #nested_under_indifferent_access | Alias for Hash#with_indifferent_access.  | 
    
| #reverse_merge | Merges the caller into   | 
    
| #reverse_merge! | Destructive   | 
    
| #reverse_update | Alias for Hash#reverse_merge!.  | 
    
| #slice | Slice a hash to include only the given keys.  | 
    
| #slice! | Replaces the hash with only the given keys.  | 
    
| #stringify_keys | Returns a new hash with all keys converted to strings.  | 
    
| #stringify_keys! | Destructively convert all keys to strings.  | 
    
| #symbolize_keys | Returns a new hash with all keys converted to symbols, as long as they respond to   | 
    
| #symbolize_keys! | Destructively convert all keys to symbols, as long as they respond to   | 
    
| #to_options | Alias for Hash#symbolize_keys.  | 
    
| #to_options! | Alias for Hash#symbolize_keys!.  | 
    
| #to_param | Alias for Hash#to_query.  | 
    
| #to_query | Returns a string representation of the receiver suitable for use as a URL query string:  | 
    
| #to_xml | Returns a string containing an XML representation of its receiver:  | 
    
| #transform_keys | Returns a new hash with all keys converted using the block operation.  | 
    
| #transform_keys! | Destructively convert all keys using the block operations.  | 
    
| #transform_values | Returns a new hash with the results of running   | 
    
| #transform_values! | Destructive   | 
    
| #with_indifferent_access | Returns an HashWithIndifferentAccess out of its receiver:  | 
    
Instance Attribute Details
    #extractable_options?  ⇒ Boolean  (readonly)
  
Returns true to make sure that this hash is extractable via Array#extract_options!
# File 'activesupport/lib/active_support/ordered_hash.rb', line 44
def true end
Instance Method Details
#encode_with(coder)
[ GitHub ]# File 'activesupport/lib/active_support/ordered_hash.rb', line 27
def encode_with(coder) coder.represent_seq '!omap', map { |k,v| { k => v } } end
#nested_under_indifferent_access
[ GitHub ]# File 'activesupport/lib/active_support/ordered_hash.rb', line 39
def nested_under_indifferent_access self end
#reject(*args, &block)
[ GitHub ]# File 'activesupport/lib/active_support/ordered_hash.rb', line 35
def reject(*args, &block) dup.tap { |hash| hash.reject!(*args, &block) } end
#select(*args, &block)
[ GitHub ]# File 'activesupport/lib/active_support/ordered_hash.rb', line 31
def select(*args, &block) dup.tap { |hash| hash.select!(*args, &block) } end
#to_yaml_type
[ GitHub ]# File 'activesupport/lib/active_support/ordered_hash.rb', line 23
def to_yaml_type "!tag:yaml.org,2002:omap" end