class NxtSupport::IndifferentlyAccessibleJsonAttrs::JsonSerializer

Public Class Methods

dump(obj) click to toggle source
# File lib/nxt_support/models/indifferently_accessible_json_attrs.rb, line 11
def dump(obj)
  JSON.dump(obj)
end
load(str) click to toggle source
# File lib/nxt_support/models/indifferently_accessible_json_attrs.rb, line 7
def load(str)
  indifferent_accessable(JSON.load(str))
end

Private Class Methods

indifferent_accessable(obj) click to toggle source
# File lib/nxt_support/models/indifferently_accessible_json_attrs.rb, line 17
def indifferent_accessable(obj)
  if obj.is_a?(Array)
    obj.map! { |o| indifferent_accessable(o) }
  elsif obj.is_a?(Hash)
    obj.with_indifferent_access
  elsif obj.is_a?(NilClass)
    obj
  else
    raise ArgumentError, "Cant deserialize '#{obj}'"
  end
end