diff options
author | elijah <elijah@riseup.net> | 2013-06-22 15:52:48 -0700 |
---|---|---|
committer | elijah <elijah@riseup.net> | 2013-06-22 15:52:48 -0700 |
commit | 0ffdf42cf2171deb0bdd4c54f8281c1c1257ee86 (patch) | |
tree | b2a6ebe57fbca426104ae364a3a5381e731c4361 /lib/core_ext | |
parent | cae55de7bf25d60f4f504c658b936bbbd94ff464 (diff) |
improve `leap inspect`
Diffstat (limited to 'lib/core_ext')
-rw-r--r-- | lib/core_ext/json.rb | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/lib/core_ext/json.rb b/lib/core_ext/json.rb index 3b08a04..1a82bd9 100644 --- a/lib/core_ext/json.rb +++ b/lib/core_ext/json.rb @@ -12,18 +12,21 @@ module JSON # def self.sorted_generate(obj) # modify hash and array - Hash.class_eval do + Array.class_eval do alias_method :each_without_sort, :each def each(&block) - keys.sort {|a,b| a.to_s <=> b.to_s }.each do |key| - yield key, self[key] + sorted = sort {|a,b| a.to_s <=> b.to_s } + for i in 0..(sorted.length-1) do + yield sorted[i] end end end - Array.class_eval do + Hash.class_eval do alias_method :each_without_sort, :each def each(&block) - sort {|a,b| a.to_s <=> b.to_s }.each_without_sort &block + self.keys.each do |key| + yield key, self.fetch(key) # fetch is used so we don't trigger Config::Object auto-eval + end end end |