aboutsummaryrefslogtreecommitdiffstats
path: root/activemodel/test/models/person_with_validator.rb
blob: fbb28d2a0f6b66ed13e000cd076763d03fff7541 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# frozen_string_literal: true

class PersonWithValidator
  include ActiveModel::Validations

  class PresenceValidator < ActiveModel::EachValidator
    def validate_each(record, attribute, value)
      record.errors.add(attribute, message: "Local validator#{options[:custom]}") if value.blank?
    end
  end

  class LikeValidator < ActiveModel::EachValidator
    def initialize(options)
      @with = options[:with]
      super
    end

    def validate_each(record, attribute, value)
      unless value[@with]
        record.errors.add attribute, "does not appear to be like #{@with}"
      end
    end
  end

  attr_accessor :title, :karma
end