Class: EasyJSONMatcher::DateValidator

Inherits:
Validator
  • Object
show all
Defined in:
lib/easy_json_matcher/date_validator.rb

Constant Summary collapse

DEFAULT_DATE_FORMAT =
"%Y-%m-%d"

Instance Attribute Summary collapse

Attributes inherited from Validator

#content, #key

Instance Method Summary collapse

Methods inherited from Validator

#_set_content, #valid?

Constructor Details

#initialize(opts = {}) ⇒ DateValidator

Returns a new instance of DateValidator.



8
9
10
11
12
# File 'lib/easy_json_matcher/date_validator.rb', line 8

def initialize(opts = {})
  super(opts)
  @date_format = opts[:format]
  @string_validator = ValidatorFactory.create({type: :string})
end

Instance Attribute Details

#date_formatObject (readonly)

Returns the value of attribute date_format.



5
6
7
# File 'lib/easy_json_matcher/date_validator.rb', line 5

def date_format
  @date_format
end

#string_validatorObject (readonly)

Returns the value of attribute string_validator.



5
6
7
# File 'lib/easy_json_matcher/date_validator.rb', line 5

def string_validator
  @string_validator
end

Instance Method Details

#_validateObject



14
15
16
# File 'lib/easy_json_matcher/date_validator.rb', line 14

def _validate
  _validate_as_string && _validate_as_date
end

#_validate_as_dateObject



22
23
24
25
26
27
28
29
# File 'lib/easy_json_matcher/date_validator.rb', line 22

def _validate_as_date
  require 'date'
  begin
    Date.strptime(content, date_format)
  rescue ArgumentError
    false
  end
end

#_validate_as_stringObject



18
19
20
# File 'lib/easy_json_matcher/date_validator.rb', line 18

def _validate_as_string
  string_validator.valid? content
end