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.



694
695
696
697
# File 'lib/sup/util.rb', line 694

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

Instance Attribute Details

#keysObject (readonly)

Returns the value of attribute keys.



692
693
694
# File 'lib/sup/util.rb', line 692

def keys
  @keys
end

Instance Method Details

#[]=(key, val) ⇒ Object



699
700
701
702
# File 'lib/sup/util.rb', line 699

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

#delete(key) ⇒ Object



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

def delete key
  @keys.delete key
  super
end

#eachObject



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

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

#each_pairObject



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

alias_method :each_pair, :each

#index(key) ⇒ Object



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

def index key; @keys.index key end

#storeObject



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

alias_method :store, :[]=

#valuesObject



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

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