module Integrative::Integrated
Public Instance Methods
array_to_hash(array, integration)
click to toggle source
# File lib/integrative/integrated.rb, line 35 def array_to_hash(array, integration) if integration.init_options[:array] array_to_hash_as_array(array, integration) else array_to_hash_as_value(array, integration) end end
array_to_hash_as_array(array, integration)
click to toggle source
# File lib/integrative/integrated.rb, line 51 def array_to_hash_as_array(array, integration) result = {} array.each do |object| key = object.public_send(integration.integrated_key) result[key] ||= [] result[key] << integrative_value(object, integration) end result end
array_to_hash_as_value(array, integration)
click to toggle source
# File lib/integrative/integrated.rb, line 43 def array_to_hash_as_value(array, integration) result = array.map do |object| key = object.public_send(integration.integrated_key) [key, integrative_value(object, integration)] end Hash[result] end
integrative_find(ids, options)
click to toggle source
# File lib/integrative/integrated.rb, line 8 def integrative_find(ids, options) find(ids) end
integrative_find_and_assign(integrator_records, integration)
click to toggle source
# File lib/integrative/integrated.rb, line 16 def integrative_find_and_assign(integrator_records, integration) ids = integrator_ids(integrator_records, integration) integrated = integrative_find(ids, integration) integrated_by_integrator_id = array_to_hash(integrated, integration) integrator_records.each do |record| record.public_send(integration.setter, integrated_by_integrator_id[record.id]) end end
integrative_value(object, integration)
click to toggle source
# File lib/integrative/integrated.rb, line 25 def integrative_value(object, integration) if [:primary, :value, :simple].include? integration.init_options[:as] object[:value] else object end end
integrator_ids(integrator_records, integration)
click to toggle source
# File lib/integrative/integrated.rb, line 12 def integrator_ids(integrator_records, integration) integrator_records.map(&integration.integrator_key) end