module ActiveRecord::Normalizations

Constants

DEFAULT_OPTIONS
SHARED_OPTIONS
VERSION

Public Instance Methods

save(**options) click to toggle source
Calls superclass method
# File lib/activerecord-normalizations/normalizations.rb, line 58
def save(**options)
  _perform_normalizations(options) if options[:validate] == false
  super
end
save!(**options) click to toggle source
Calls superclass method
# File lib/activerecord-normalizations/normalizations.rb, line 63
def save!(**options)
  _perform_normalizations(options) if options[:validate] == false
  super
end
valid?(*args) click to toggle source
Calls superclass method
# File lib/activerecord-normalizations/normalizations.rb, line 68
def valid?(*args)
  _perform_normalizations(DEFAULT_OPTIONS)
  super
end

Private Instance Methods

_perform_normalizations(options) click to toggle source
# File lib/activerecord-normalizations/normalizations.rb, line 75
def _perform_normalizations(options)
  return if options[:normalize] == false

  _normalizers.each do |attr, norms|
    value = self[attr]

    if value.present? && will_save_change_to_attribute?(attr)
      self[attr] = norms.reduce(value) { |res, n| n.call(res) }
    end
  end
end