class Sequent::Core::Helpers::ValueValidators

Constants

INVALID_STRING_CHARS
VALIDATORS

Public Class Methods

for(klass) click to toggle source
# File lib/sequent/core/helpers/value_validators.rb, line 75
def self.for(klass)
  new(klass)
end
new(klass) click to toggle source
# File lib/sequent/core/helpers/value_validators.rb, line 79
def initialize(klass)
  @klass = klass
end
valid_bool?(value) click to toggle source
# File lib/sequent/core/helpers/value_validators.rb, line 29
def self.valid_bool?(value)
  return true if value.blank?

  value.is_a?(TrueClass) || value.is_a?(FalseClass) || value == 'true' || value == 'false'
end
valid_date?(value) click to toggle source
# File lib/sequent/core/helpers/value_validators.rb, line 35
def self.valid_date?(value)
  return true if value.blank?
  return true if value.is_a?(Date)
  return false unless value =~ /\d{4}-\d{2}-\d{2}/

  begin
    !!Date.iso8601(value)
  rescue StandardError
    false
  end
end
valid_date_time?(value) click to toggle source
# File lib/sequent/core/helpers/value_validators.rb, line 47
def self.valid_date_time?(value)
  return true if value.blank?

  begin
    value.is_a?(DateTime) || !!DateTime.iso8601(value.dup)
  rescue StandardError
    false
  end
end
valid_integer?(value) click to toggle source
# File lib/sequent/core/helpers/value_validators.rb, line 23
def self.valid_integer?(value)
  value.blank? || Integer(value)
rescue StandardError
  false
end
valid_string?(value) click to toggle source
# File lib/sequent/core/helpers/value_validators.rb, line 67
def self.valid_string?(value)
  return true if value.nil?

  value.to_s && INVALID_STRING_CHARS.none? { |invalid_char| value.to_s.include?(invalid_char) }
rescue StandardError
  false
end
valid_time?(value) click to toggle source
# File lib/sequent/core/helpers/value_validators.rb, line 57
def self.valid_time?(value)
  return true if value.blank?

  begin
    value.is_a?(Time) || !!Time.iso8601(value.dup)
  rescue StandardError
    false
  end
end

Public Instance Methods

valid_value?(value) click to toggle source
# File lib/sequent/core/helpers/value_validators.rb, line 83
def valid_value?(value)
  VALIDATORS[@klass].call(value)
end