class Kramdown::Utils::OrderedHash
is that a OrderedHash retains the insertion order of the keys.
A very simple class mimicking the most used methods of a Hash. The difference to a normal Hash
def [](key)
def [](key) @data[key] end
def []=(key, val)
def []=(key, val) @order << key if !@data.has_key?(key) @data[key] = val end
def delete(key)
def delete(key) @order.delete(key) @data.delete(key) end
def each
def each @order.each {|k| yield(k, @data[k])} end
def initialize(hash = {})
insertion order). An OrderedHash object may be used instead of a hash to provide the initial
used, there is no special order imposed on the keys (additionally set keys will be stored in
Initialize the OrderedHash object, optionally with an +hash+. If the optional +hash+ is
def initialize(hash = {}) if hash.kind_of?(OrderedHash) @data, @order = hash.instance_eval { [@data.dup, @order.dup] } else @data = hash || {} @order = @data.keys end end
def inspect #:nodoc:
def inspect #:nodoc: "{" + map {|k,v| "#{k.inspect}=>#{v.inspect}"}.join(" ") + "}" end