Class: OrderedHash

Inherits:
Hash show all
Defined in:
lib/sup/util.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Hash

#-, #select_by_value

Constructor Details

#initialize(*a) ⇒ OrderedHash

Returns a new instance of OrderedHash.



714
715
716
717
# File 'lib/sup/util.rb', line 714

def initialize *a
  @keys = []
  a.each { |k, v| self[k] = v }
end

Instance Attribute Details

#keysObject (readonly)

Returns the value of attribute keys.



712
713
714
# File 'lib/sup/util.rb', line 712

def keys
  @keys
end

Instance Method Details

#[]=(key, val) ⇒ Object



719
720
721
722
# File 'lib/sup/util.rb', line 719

def []= key, val
  @keys << key unless member?(key)
  super
end

#delete(key) ⇒ Object



727
728
729
730
# File 'lib/sup/util.rb', line 727

def delete key
  @keys.delete key
  super
end

#eachObject



732
# File 'lib/sup/util.rb', line 732

def each; @keys.each { |k| yield k, self[k] } end

#each_pairObject



711
# File 'lib/sup/util.rb', line 711

alias_method :each_pair, :each

#index(key) ⇒ Object



725
# File 'lib/sup/util.rb', line 725

def index key; @keys.index key end

#storeObject



710
# File 'lib/sup/util.rb', line 710

alias_method :store, :[]=

#valuesObject



724
# File 'lib/sup/util.rb', line 724

def values; keys.map { |k| self[k] } end