module SmoothOperator::FinderMethods::HelperMethods

Public Instance Methods

build_object(object, parsed_response, options, from_array = false) click to toggle source
# File lib/smooth_operator/finder_methods.rb, line 23
def build_object(object, parsed_response, options, from_array = false)
  if parsed_response.is_a?(Array)
    parse_array(parsed_response, object, options)
  elsif parsed_response.is_a?(Hash)
    parse_hash(object, parsed_response, options, from_array)
  else
    parsed_response
  end
end
parse_array(parsed_response, object, options) click to toggle source
# File lib/smooth_operator/finder_methods.rb, line 33
def parse_array(parsed_response, object, options)
  parsed_response.map do |array_entry|
    build_object(object, array_entry, options, true)
  end
end
parse_hash(object, parsed_response, options, from_array) click to toggle source
# File lib/smooth_operator/finder_methods.rb, line 39
def parse_hash(object, parsed_response, options, from_array)
  object_class ||= object.class == Class ? object : object.class

  if parsed_response.include?(object_class.resources_name) && !from_array
    ArrayWithMetaData.new(parsed_response.dup, object_class)
  else
    object_class.new(parsed_response, data_from_server: true)
  end
end