Sha256: ed9a957a06475a2f34c63716411b3774747da77d784099ebd32981370510d7d3
Contents?: true
Size: 733 Bytes
Versions: 2
Compression:
Stored size: 733 Bytes
Contents
class EqualityValidator < ActiveModel::EachValidator def validate_each(record, attribute, value) to_value = options[:to] operator = OPERATORS.fetch(options[:operator]) if (options[:operator] == :less_than) || (options[:operator] == :greater_than) raise Exception if to_value.nil? || operator.nil? end unless value.send(operator, record.send(to_value.to_sym)) record.errors[attribute] << (options[:message] || I18n.t('active_validation.errors.messages.equality', attr: to_value, operator: operator)) end end private OPERATORS = { less_than: :<, less_than_or_equal_to: :<=, greater_than: :>, greater_than_or_equal_to: :>=, equal_to: :==, not_equal_to: :!= } end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
active_validation-1.1.0 | lib/active_validation/validators/equality_validator.rb |
active_validation-1.0.0 | lib/active_validation/validators/equality_validator.rb |