class BaseValidator
Attributes
attribute[R]
record[R]
value[R]
Public Instance Methods
validate_each(record, attribute, value)
click to toggle source
# File lib/lite/validators/base_validator.rb, line 5 def validate_each(record, attribute, value) assign_attr_readers(record, attribute, value) return if valid? record.errors.add(attribute, *error_message) end
Private Instance Methods
assert_valid_option!(name, collection, option: nil)
click to toggle source
rubocop:disable Layout/LineLength
# File lib/lite/validators/base_validator.rb, line 23 def assert_valid_option!(name, collection, option: nil) option ||= send(name) Array(option).each do |option_value| next if collection.include?(option_value) raise ArgumentError, "Unknown #{name}: #{option_value.inspect}. Valid options are: #{collection.map(&:inspect).join(', ')}" end end
assign_attr_readers(record, attribute, value)
click to toggle source
# File lib/lite/validators/base_validator.rb, line 16 def assign_attr_readers(record, attribute, value) @record = record @attribute = attribute @value = value end
error_message()
click to toggle source
rubocop:enable Layout/LineLength
# File lib/lite/validators/base_validator.rb, line 34 def error_message [options[:message] || :invalid] end
valid?()
click to toggle source
# File lib/lite/validators/base_validator.rb, line 38 def valid? valid_length? && valid_attr? end
valid_attr?()
click to toggle source
# File lib/lite/validators/base_validator.rb, line 42 def valid_attr? valid_regexp? end
valid_length?()
click to toggle source
# File lib/lite/validators/base_validator.rb, line 46 def valid_length? !value.to_s.strip.empty? end
valid_regexp?()
click to toggle source
# File lib/lite/validators/base_validator.rb, line 50 def valid_regexp? value.to_s =~ self.class::REGEXP end