Class: Sequent::Core::Helpers::ValueValidators
- Inherits:
-
Object
- Object
- Sequent::Core::Helpers::ValueValidators
- Defined in:
- lib/sequent/core/helpers/value_validators.rb
Constant Summary collapse
- INVALID_STRING_CHARS =
[ "\u0000", ]
- VALIDATORS =
{ ::Symbol => ->(_) { true }, ::String => ->(value) { valid_string?(value) }, ::Integer => ->(value) { valid_integer?(value) }, ::Boolean => ->(value) { valid_bool?(value) }, ::Date => ->(value) { valid_date?(value) }, ::DateTime => ->(value) { valid_date_time?(value) } }
Class Method Summary collapse
- .for(klass) ⇒ Object
- .valid_bool?(value) ⇒ Boolean
- .valid_date?(value) ⇒ Boolean
- .valid_date_time?(value) ⇒ Boolean
- .valid_integer?(value) ⇒ Boolean
- .valid_string?(value) ⇒ Boolean
Instance Method Summary collapse
-
#initialize(klass) ⇒ ValueValidators
constructor
A new instance of ValueValidators.
- #valid_value?(value) ⇒ Boolean
Constructor Details
#initialize(klass) ⇒ ValueValidators
Returns a new instance of ValueValidators.
55 56 57 |
# File 'lib/sequent/core/helpers/value_validators.rb', line 55 def initialize(klass) @klass = klass end |
Class Method Details
.for(klass) ⇒ Object
51 52 53 |
# File 'lib/sequent/core/helpers/value_validators.rb', line 51 def self.for(klass) new(klass) end |
.valid_bool?(value) ⇒ Boolean
26 27 28 29 |
# File 'lib/sequent/core/helpers/value_validators.rb', line 26 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) ⇒ Boolean
31 32 33 34 35 36 |
# File 'lib/sequent/core/helpers/value_validators.rb', line 31 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}/ !!Date.iso8601(value) rescue false end |
.valid_date_time?(value) ⇒ Boolean
38 39 40 41 |
# File 'lib/sequent/core/helpers/value_validators.rb', line 38 def self.valid_date_time?(value) return true if value.blank? value.is_a?(DateTime) || !!DateTime.iso8601(value.dup) rescue false end |
.valid_integer?(value) ⇒ Boolean
20 21 22 23 24 |
# File 'lib/sequent/core/helpers/value_validators.rb', line 20 def self.valid_integer?(value) value.blank? || Integer(value) rescue false end |
.valid_string?(value) ⇒ Boolean
43 44 45 46 47 48 49 |
# File 'lib/sequent/core/helpers/value_validators.rb', line 43 def self.valid_string?(value) return true if value.nil? value.to_s && !INVALID_STRING_CHARS.any? { |invalid_char| value.to_s.include?(invalid_char) } rescue => e p foo: e false end |
Instance Method Details
#valid_value?(value) ⇒ Boolean
59 60 61 |
# File 'lib/sequent/core/helpers/value_validators.rb', line 59 def valid_value?(value) VALIDATORS[@klass].call(value) end |