Module: Wheneverd::Systemd::CronParser::FieldParser
- Defined in:
- lib/wheneverd/systemd/cron_parser/field_parser.rb
Overview
Parses individual cron field expressions (minute, hour, day-of-month, month).
Handles:
- Wildcards:
* - Lists:
1,2,3 - Ranges:
1-5 - Steps:
*/2,1-10/2 - Named values (for month):
jan,feb, etc.
Class Method Summary collapse
-
.parse_mapped(str, range, field:, input:, names:) ⇒ String
Parses a cron field expression with optional name mappings.
-
.parse_numeric(str, range, field:, input:, pad:) ⇒ String
Parses a numeric cron field expression.
Class Method Details
.parse_mapped(str, range, field:, input:, names:) ⇒ String
Parses a cron field expression with optional name mappings.
40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/wheneverd/systemd/cron_parser/field_parser.rb', line 40 def self.parse_mapped(str, range, field:, input:, names:) raw = str.to_s.strip raise_empty_field_error(field, input) if raw.empty? parts = raw.split(",").map(&:strip) return "*" if parts.any? { |part| part == "*" } parts.map do |part| part_to_systemd(part, range, field: field, input: input, names: names) end.join(",") end |
.parse_numeric(str, range, field:, input:, pad:) ⇒ String
Parses a numeric cron field expression.
24 25 26 27 28 29 |
# File 'lib/wheneverd/systemd/cron_parser/field_parser.rb', line 24 def self.parse_numeric(str, range, field:, input:, pad:) expr = parse_mapped(str, range, field: field, input: input, names: {}) return expr if pad <= 0 || expr == "*" pad_expression_numbers(expr, pad: pad) end |