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)


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

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.public_send(quickery_builder.dependee_column_name) if dependee_record
end

#determine_quickery_valuesObject



40
41
42
43
44
45
46
# File 'lib/quickery/active_record_extensions/dsl.rb', line 40

def determine_quickery_values
  quickery_values = {}
  self.class.quickery_builders.each do |depender_column_name, quickery_builder|
    quickery_values[depender_column_name] = determine_quickery_value(depender_column_name)
  end
  quickery_values
end

#recreate_quickery_cache!Object



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

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