Class: DaffyLib::StringValidator

Inherits:
ActiveModel::Validator
  • Object
show all
Defined in:
lib/daffy_lib/validators/string_validator.rb

Instance Method Summary collapse

Instance Method Details

#validate(record) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
# File 'lib/daffy_lib/validators/string_validator.rb', line 7

def validate(record)
  return if options[:fields].blank?

  options[:fields].each do |field|
    next if record.is_a?(ActiveRecord::Base) && !record.changed_attributes.include?(field)

    sanitized_attr = ActionController::Base.helpers.sanitize(record[field])
    decoded_attr = Nokogiri::HTML.parse(sanitized_attr.to_s)
    record.errors[field] << 'contains invalid characters...' unless record[field] == decoded_attr.text || record[field].blank?
  end
end