Module: Quickery::ActiveRecordExtensions::DSL::InstanceMethods
- Defined in:
- lib/quickery/active_record_extensions/dsl.rb
Instance Method Summary collapse
- #determine_quickery_value(depender_column_name) ⇒ Object
- #determine_quickery_values ⇒ Object
- #recreate_quickery_cache! ⇒ Object
Instance Method Details
#determine_quickery_value(depender_column_name) ⇒ Object
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_values ⇒ Object
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 |