Module: Philiprehberger::CronKit::Parser
- Included in:
- Expression
- Defined in:
- lib/philiprehberger/cron_kit/parser.rb
Overview
Parsing logic for 5-field cron expressions. Extracted from Expression to keep class size manageable.
Constant Summary collapse
- FIELD_RANGES =
[ 0..59, # minute 0..23, # hour 1..31, # day of month 1..12, # month 0..6 # day of week ].freeze
- FIELD_NAMES =
%w[minute hour day-of-month month day-of-week].freeze
Instance Method Summary collapse
Instance Method Details
#parse_expression(expression) ⇒ Object
18 19 20 21 22 23 24 25 26 |
# File 'lib/philiprehberger/cron_kit/parser.rb', line 18 def parse_expression(expression) parts = expression.split(/\s+/) raise ParseError, "expected 5 fields, got #{parts.length}: #{expression.inspect}" unless parts.length == 5 parts.each_with_index.map do |part, index| parse_field(part, FIELD_RANGES[index], FIELD_NAMES[index]) end end |