class HasConfig::ActiveRecord::Processor
Public Class Methods
new(model)
click to toggle source
# File lib/has_config/active_record/processor.rb, line 4 def initialize(model) @model = model end
Public Instance Methods
fetch(configuration, parent: nil, mode: :none)
click to toggle source
# File lib/has_config/active_record/processor.rb, line 8 def fetch(configuration, parent: nil, mode: :none) local = local_value(has_config_column_data, configuration) if parent && mode == :resolve && HasConfig::Chain.invoke?(local, configuration.chain_on) check_chain(configuration, parent) parent_value = @model.public_send(parent).public_send(configuration.name, :resolve) return parent_value unless parent_value.blank? end local end
set(configuration, value)
click to toggle source
# File lib/has_config/active_record/processor.rb, line 20 def set(configuration, value) data = has_config_column_data parsed_value = HasConfig::ValueParser.parse(value, configuration.type) if data[configuration.name] != parsed_value data[configuration.name] = parsed_value @model.send(:write_attribute, has_config_column, data) @model.public_send("#{has_config_column}_will_change!") end end