module HashKeyOrderable
Attributes
key_order[RW]
Public Class Methods
extended(obj)
click to toggle source
# File lib/hash_key_orderable.rb, line 17 def self.extended(obj) obj.instance_eval do alias :each_without_key_order :each alias :each :each_with_key_order end end
Public Instance Methods
each_with_key_order() { |key, self| ... }
click to toggle source
# File lib/hash_key_orderable.rb, line 4 def each_with_key_order(&block) if @key_order.nil? || @key_order.empty? each_without_key_order(&block) return self end unexist_keys = @key_order - self.keys actual_order = (@key_order - unexist_keys) | self.keys actual_order.each do |key| yield(key, self[key]) end self end