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.



628
629
630
631
# File 'lib/sup/util.rb', line 628

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

Instance Attribute Details

#keysObject (readonly)

Returns the value of attribute keys.



626
627
628
# File 'lib/sup/util.rb', line 626

def keys
  @keys
end

Instance Method Details

#[]=(key, val) ⇒ Object



633
634
635
636
# File 'lib/sup/util.rb', line 633

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

#delete(key) ⇒ Object



641
642
643
644
# File 'lib/sup/util.rb', line 641

def delete key
  @keys.delete key
  super
end

#eachObject



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

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

#each_pairObject



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

alias_method :each_pair, :each

#index(key) ⇒ Object



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

def index key; @keys.index key end

#storeObject



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

alias_method :store, :[]=

#valuesObject



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

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