module Integrative::Extensions::RelationExtension
Public Instance Methods
integrate(*name_or_names, **options)
click to toggle source
# File lib/integrative/extensions/relation_extension.rb, line 4 def integrate(*name_or_names, **options) names = [*name_or_names] names.each do |name| integrate_per_name(name, options) end self end
load()
click to toggle source
Calls superclass method
# File lib/integrative/extensions/relation_extension.rb, line 12 def load super if @integrations_used.present? Rails.logger.info "Integrations fetched for #{@records.length} #{klass.name} records." @integrations_used.each do |integration| integration.integrated_class.integrative_find_and_assign(@records, integration) end end self end
Private Instance Methods
integrate_per_name(name, options)
click to toggle source
# File lib/integrative/extensions/relation_extension.rb, line 25 def integrate_per_name(name, options) integration = klass.integrations_defined.find { |i| i.name == name } if integration.nil? raise Errors::IntegrationDefinitionMissingError.new(klass, [name]) end integration.call_options = options integration.invalidate @integrations_used ||= [] @integrations_used << integration end