module Right::FilterValueValidator
Build singleton validation class for specified attribute name @example you need a nice validator for a first_name
validator_klass = ValueValidator.build('first_name', presence: true, length: { minimum: 3 }) validator = validator_klass.new('Bo') validator.valid? #=> false validator.errors.full_messages #=> ['First name is too short (minimum is 3 characters)']
Public Instance Methods
build(definition)
click to toggle source
# File lib/right/filter_value_validator.rb, line 20 def build(definition) Struct.new(definition.as.to_sym) do include ActiveModel::Validations validates(definition.as, definition.validations) if definition.validations.present? validates(definition.as, 'right/filter_value_validator/defined': true) define_method(:undefined?) { definition.undefined? } define_singleton_method :model_name do ActiveModel::Name.new(Right, nil, 'Right') end end end