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