Module: Fugit::Nat
- Defined in:
- lib/fugit/nat.rb
Overview
A natural language set of parsers for fugit. Focuses on cron expressions. The rest is better left to Chronic and friends.
Defined Under Namespace
Modules: Parser
Class Method Summary collapse
Class Method Details
.do_parse(s, opts = {}) ⇒ Object
30 31 32 33 34 |
# File 'lib/fugit/nat.rb', line 30 def do_parse(s, opts={}) parse(s, opts) || fail(ArgumentError.new("could not parse a nat #{s.inspect}")) end |
.parse(s, opts = {}) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/fugit/nat.rb', line 11 def parse(s, opts={}) return s if s.is_a?(Fugit::Cron) || s.is_a?(Fugit::Duration) return nil unless s.is_a?(String) #p s; Raabro.pp(Parser.parse(s, debug: 3), colours: true) a = Parser.parse(s) return nil unless a return parse_crons(s, a, opts) \ if a.include?([ :flag, 'every' ]) return parse_crons(s, a, opts) \ if a.include?([ :flag, 'from' ]) && a.find { |e| e[0] == :day_range } nil end |