Module: Quickery::ActiveRecordExtensions::DSL::InstanceMethods

Defined in:
lib/quickery/active_record_extensions/dsl.rb

Instance Method Summary collapse

Instance Method Details

#determine_quickery_value(depender_column_name) ⇒ Object

Raises:

  • (ArgumentError)


30
31
32
33
34
35
36
37
# File 'lib/quickery/active_record_extensions/dsl.rb', line 30

def determine_quickery_value(depender_column_name)
  quickery_builder = self.class.quickery_builders[depender_column_name]

  raise ArgumentError, "No defined quickery builder for #{depender_column_name}. Defined values are #{self.class.quickery_builders.keys}" unless quickery_builder

  dependee_record = quickery_builder.association_chains.first.dependee_record(self)
  dependee_record.send(quickery_builder.dependee_column_name)
end

#recreate_quickery_cache!Object



23
24
25
26
27
28
# File 'lib/quickery/active_record_extensions/dsl.rb', line 23

def recreate_quickery_cache!
  self.class.quickery_builders.each do |depender_column_name, quickery_builder|
    new_value = determine_quickery_value(depender_column_name)
    update_columns(depender_column_name => new_value)
  end
end