Method: Clockwork::At.parse

Defined in:
lib/clockwork/at.rb

.parse(at) ⇒ Object


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