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 guaranteedAlso, 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