module JsonDumper::Helper

Public Instance Methods

dumper_fetch(delayed, camelcase: true) click to toggle source
# File lib/json_dumper/helper.rb, line 18
def dumper_fetch(delayed, camelcase: true)
  preload_hash = delayed.klass.send("#{delayed.method_name}_preload")
  preloader.preload(delayed.entity,preload_hash)
  result = if delayed.named_args.empty?
             delayed.klass.send(delayed.method_name, delayed.entity, *delayed.positional_args)
           else
             delayed.klass.send(delayed.method_name, delayed.entity, *delayed.positional_args, **delayed.named_args)
           end
  if camelcase
    result = KeyTransformer.keys_to_camelcase(result)
  end
  result
end
dumper_json(hash) click to toggle source
# File lib/json_dumper/helper.rb, line 7
def dumper_json(hash)
  result = hash.map do |k, v|
    if v.is_a?(JsonDumper::Delayed)
      [k, dumper_fetch(v, camelcase: false)]
    else
      [k, v]
    end
  end.to_h
  KeyTransformer.keys_to_camelcase(result)
end
render_dumper_json(hash) click to toggle source
# File lib/json_dumper/helper.rb, line 3
def render_dumper_json(hash)
  render json: dumper_json(hash)
end

Private Instance Methods

preloader() click to toggle source

PRIVATE ##############

# File lib/json_dumper/helper.rb, line 35
def preloader
  ActiveRecord::Base::Preloader.new
end