module Nuggets::JSON::CanonicalMixin

Public Instance Methods

generate_canonical(obj, opts = {}) click to toggle source
   # File lib/nuggets/json/canonical_mixin.rb
31 def generate_canonical(obj, opts = {})
32   generate(_nuggets_json_canonical(obj), opts)
33 end
pc(source, opts = {})
pretty_generate_canonical(obj, opts = {}) click to toggle source
   # File lib/nuggets/json/canonical_mixin.rb
35 def pretty_generate_canonical(obj, opts = {})
36   pretty_generate(_nuggets_json_canonical(obj), opts)
37 end
pretty_print_canonical(source, opts = {}) click to toggle source
   # File lib/nuggets/json/canonical_mixin.rb
39 def pretty_print_canonical(source, opts = {})
40   pretty_generate_canonical(parse_multi(source, opts), opts)
41 end
Also aliased as: pc

Private Instance Methods

_nuggets_json_canonical(obj) click to toggle source
   # File lib/nuggets/json/canonical_mixin.rb
47 def _nuggets_json_canonical(obj)
48   case obj
49     when ::Hash
50       obj.class.new.tap { |res|
51         obj.keys.sort.each { |k| res[k] = send(__method__, obj[k]) } }
52     when ::Array
53       obj.map { |v| send(__method__, v) }.sort_by(&:to_s)
54     else
55       obj
56   end
57 end