Class: AWSCronParser::Validators::AWSAtValidator
- Defined in:
- lib/aws_cron_parser/validators/aws_at_validator.rb
Overview
Validates AWS one-time schedules: at(yyyy-MM-ddThh:mm:ss)
Constant Summary collapse
- DATE_TIME_FORMAT =
/\A(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})\z/
Instance Attribute Summary
Attributes inherited from Base
Instance Method Summary collapse
Methods inherited from Base
Methods included from Helpers
Constructor Details
This class inherits a constructor from AWSCronParser::Validators::Base
Instance Method Details
#validate ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/aws_cron_parser/validators/aws_at_validator.rb', line 9 def validate match = source.match(AT_REGEX) raise ArgumentError, 'Invalid at expression' unless match date_time = match[:datetime].strip parts = date_time.match(DATE_TIME_FORMAT) raise ArgumentError, "Invalid at date-time: expected yyyy-MM-ddThh:mm:ss, got #{date_time}" unless parts year, month, day, hour, minute, second = parts.captures.map(&:to_i) # Date.parse would roll 2025-02-30 forward into March instead of failing. raise ArgumentError, "Invalid at date: #{date_time}" unless Date.valid_date?(year, month, day) raise ArgumentError, "Invalid at time: #{date_time}" unless hour <= 23 && minute <= 59 && second <= 59 true end |