Class: AptTextValidator

Inherits:
ActiveModel::EachValidator
  • Object
show all
Defined in:
lib/validators/apt_text_validator.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ AptTextValidator

Returns a new instance of AptTextValidator.



6
7
8
# File 'lib/validators/apt_text_validator.rb', line 6

def initialize(options)
  super(options)
end

Class Method Details

.regexpObject



11
12
13
14
15
16
17
18
# File 'lib/validators/apt_text_validator.rb', line 11

def regexp
  @@joined_prohibited_words ||= AptValidator::ProhibitedWord.pluck(:word).join("|")
  if @@joined_prohibited_words.empty?
    /(?!.*)/
  else
    /(#{@@joined_prohibited_words})/i
  end
end

.valid?(value) ⇒ Boolean

Returns:

  • (Boolean)


20
21
22
# File 'lib/validators/apt_text_validator.rb', line 20

def valid?(value)
   !!(value =~ regexp)
end

Instance Method Details

#validate_each(record, attribute, value) ⇒ Object



25
26
27
28
29
# File 'lib/validators/apt_text_validator.rb', line 25

def validate_each(record, attribute, value)
  if self.class.valid?(value)
    record.errors[attribute] << (options[:message] || :invalid)
  end
end