Class: JSONSkooma::Validators::DateTime
- Defined in:
- lib/json_skooma/validators/date_time.rb
Constant Summary collapse
- DATE_REGEXP =
/(?<Y>\d{4})-(?<M>\d{2})-(?<D>\d{2})/
- PARTIAL_TIME =
/(?<h>[01]\d|2[0-3]):(?<m>[0-5]\d):(?<s>[0-5]\d|60)(?<f>\.\d+)?/
- TIME_OFFSET =
/[Zz]|(?<on>[+-])(?<oh>[01]\d|2[0-3]):(?<om>[0-5]\d)/
- FULL_TIME =
/#{PARTIAL_TIME}#{TIME_OFFSET}/
- REGEXP =
/\A(?<date>#{DATE_REGEXP})[Tt](?<time>#{FULL_TIME})\z/
Instance Method Summary collapse
Methods inherited from Base
Instance Method Details
#call(data) ⇒ Object
13 14 15 16 17 18 19 20 21 |
# File 'lib/json_skooma/validators/date_time.rb', line 13 def call(data) match = REGEXP.match(data) raise FormatError, "must be a valid RFC 3339 date string" if match.nil? Date.call(match[:date]) Time.call(match[:time]) rescue FormatError raise FormatError, "must be a valid RFC 3339 date string" end |