10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# File 'lib/time_distribution/smart_duration.rb', line 10
def self.parse(time_period)
time_of_day_pattern = '\d+:?\d*[ap]?m?'
date_to_avoid_dsl_problems = '1/01/0001'
Duration.new(
if time_period.to_s.downcase.match(
/(#{time_of_day_pattern})\s*(to|-)\s*(#{time_of_day_pattern})/
)
Chronic.parse("#{date_to_avoid_dsl_problems} #{$1}").count_forward_to(
Chronic.parse("#{date_to_avoid_dsl_problems} #{$3}")
)
else
ChronicDuration.parse(time_period)
end
)
end
|