lib/json/ld/extensions.rb in json-ld-1.1.0 vs lib/json/ld/extensions.rb in json-ld-1.1.1

- old
+ new

@@ -64,84 +64,5 @@ len_diff = a.length <=> b.length len_diff == 0 ? a <=> b : len_diff end end end - -if RUBY_VERSION < "1.9" - class InsertOrderPreservingHash < Hash - include Enumerable - - def initialize(*args, &block) - super - @ordered_keys = [] - end - - def []=(key, val) - @ordered_keys << key unless has_key? key - super - end - - def each - @ordered_keys.each {|k| yield(k, self[k])} - end - alias :each_pair :each - - def each_value - @ordered_keys.each {|k| yield(super[k])} - end - - def each_key - @ordered_keys.each {|k| yield k} - end - - def keys - @ordered_keys - end - - def clear - @ordered_keys.clear - super - end - - def delete(k, &block) - @ordered_keys.delete(k) - super - end - - def reject! - del = [] - each_pair {|k,v| del << k if yield k,v} - del.each {|k| delete k} - del.empty? ? nil : self - end - - def delete_if(&block) - reject!(&block) - self - end - - def merge!(other) - new_keys = other.instance_variable_get(:@ordered_keys) || other.keys - new_keys -= @ordered_keys - @ordered_keys += new_keys - super - self - end - - def merge(other) - self.dup.merge!(other) - end - end - - class Hash - def self.ordered(obj = nil, &block) - InsertOrderPreservingHash.new(obj, &block) - end - end -else - class Hash - def self.ordered(obj = nil, &block) - Hash.new(obj, &block) - end - end -end \ No newline at end of file