module Regressor::Model::Validation::Numericality
Public Instance Methods
numericality_validators()
click to toggle source
# File lib/model/active_record/validation/numericality.rb, line 5 def numericality_validators extract_validators(::ActiveModel::Validations::NumericalityValidator).flatten.map do |validator| specs = [] if validator.options.blank? specs.concat validator_without_options(validator) else specs.concat validator_with_options(validator) end wrap_conditional_validations validator, specs.flatten.compact.uniq end.join("\n ") end
Private Instance Methods
generate_spec_with_option(validator, matcher, assertion = :to)
click to toggle source
# File lib/model/active_record/validation/numericality.rb, line 58 def generate_spec_with_option(validator, matcher, assertion = :to) validator.attributes.map do |attribute| "it { is_expected.#{assertion} validate_numericality_of(:#{attribute}).#{matcher} }" end end
validator_with_options(validator)
click to toggle source
# File lib/model/active_record/validation/numericality.rb, line 25 def validator_with_options(validator) validator.options.map do |k, v| assertion = (v ? :to : :not_to) case k when :even generate_spec_with_option(validator, :even, assertion) when :only_integer generate_spec_with_option(validator, :only_integer, assertion) when :allow_nil generate_spec_with_option(validator, :allow_nil, assertion) when :less_than generate_spec_with_option(validator, "is_less_than(#{v})") + generate_spec_with_option(validator, "is_less_than(#{v + 1})", :not_to) when :less_than_or_equal_to generate_spec_with_option(validator, "is_less_than_or_equal_to(#{v})") + generate_spec_with_option(validator, "is_less_than_or_equal_to(#{v + 1})", :not_to) when :equal_to generate_spec_with_option(validator, "is_equal_to(#{v})") + generate_spec_with_option(validator, "is_equal_to(#{v + 1})", :not_to) when :greater_than_or_equal_to generate_spec_with_option(validator, "is_greater_than_or_equal_to(#{v})") + generate_spec_with_option(validator, "is_greater_than_or_equal_to(#{v - 1})", :not_to) when :greater_than generate_spec_with_option(validator, "is_greater_than(#{v})") + generate_spec_with_option(validator, "is_greater_than(#{v - 1})", :not_to) when :odd generate_spec_with_option(validator, :odd, assertion) when :message generate_spec_with_option(validator, "with_message('#{v}')") end end.flatten end
validator_without_options(validator)
click to toggle source
# File lib/model/active_record/validation/numericality.rb, line 19 def validator_without_options(validator) validator.attributes.map do |attribute| "it { is_expected.to validate_numericality_of(:#{attribute}) }" end.flatten end