Class: OrderedHash

Inherits:
Hash
  • Object
show all
Includes:
StandardHashMethodsInRuby
Defined in:
lib/hash_magic.rb

Instance Method Summary collapse

Constructor Details

#initialize(*args) ⇒ OrderedHash

Returns a new instance of OrderedHash.



337
338
339
# File 'lib/hash_magic.rb', line 337

def initialize(*args)
  @keys_in_order = args.flatten
end

Instance Method Details

#[]=(key, value) ⇒ Object



342
343
344
345
# File 'lib/hash_magic.rb', line 342

def []=(key,value)
  @keys_in_order << key
  super
end

#inspectObject



346
347
348
# File 'lib/hash_magic.rb', line 346

def inspect
  super.insert(1,'ordered: ')
end

#keysObject



349
350
351
# File 'lib/hash_magic.rb', line 349

def keys
  super.sort {|a,b| (@keys_in_order.index(a) || -1) <=> (@keys_in_order.index(b) || -1)}
end

#orderedObject

:nodoc:



353
354
355
# File 'lib/hash_magic.rb', line 353

def ordered # :nodoc:
  self
end

#slashedObject



356
357
358
# File 'lib/hash_magic.rb', line 356

def slashed
  SlashedHash.new(self).ordered!(@keys_in_order)
end