12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
# File 'lib/clockwork/at.rb', line 12
def self.parse(at)
return unless at
case at
when /\A([[:alpha:]]+)\s(.*)\z/
if wday = WDAYS[$1]
parsed_time = parse($2)
parsed_time.wday = wday
parsed_time
else
raise FailedToParse, at
end
when /\A(\d{1,2}):(\d\d)\z/
new($2.to_i, $1.to_i)
when /\A\*{1,2}:(\d\d)\z/
new($1.to_i)
when /\A(\d{1,2}):\*\*\z/
new(NOT_SPECIFIED, $1.to_i)
else
raise FailedToParse, at
end
rescue ArgumentError
raise FailedToParse, at
end
|