34 lines
710 B
Text
34 lines
710 B
Text
|
|
#!/usr/bin/env ruby
|
||
|
|
# vim: set nosta noet ts=4 sw=4:
|
||
|
|
#
|
||
|
|
# Simplistic interval expression tester.
|
||
|
|
#
|
||
|
|
|
||
|
|
require 'symphony/metronome'
|
||
|
|
|
||
|
|
loop do
|
||
|
|
begin
|
||
|
|
exp = gets.chomp
|
||
|
|
next if exp.empty?
|
||
|
|
|
||
|
|
begin
|
||
|
|
parsed = Symphony::Metronome::IntervalExpression.parse( exp )
|
||
|
|
puts "OK:"
|
||
|
|
puts "\tvalid | %s" % [ parsed.valid ]
|
||
|
|
puts "\trecurring | %s" % [ parsed.recurring ]
|
||
|
|
puts "\tstarting | %s" % [ parsed.starting ]
|
||
|
|
puts "\tinterval | %s" % [ parsed.recurring ? parsed.interval : '-' ]
|
||
|
|
puts "\tending | %s" %
|
||
|
|
[ parsed.ending ? parsed.ending : (parsed.recurring ? 'never' : '-') ]
|
||
|
|
|
||
|
|
rescue => err
|
||
|
|
puts "NOPE: (%s) %s" % [ exp, err.message ]
|
||
|
|
end
|
||
|
|
|
||
|
|
puts
|
||
|
|
|
||
|
|
rescue Interrupt
|
||
|
|
exit 0
|
||
|
|
end
|
||
|
|
end
|