11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
# File 'lib/berater/utils.rb', line 11
def to_msec(val)
res = val
if val.is_a? String
res = Float(val) rescue val.to_sym
end
if res.is_a? Symbol
case res
when :sec, :second, :seconds
res = 1
when :min, :minute, :minutes
res = 60
when :hour, :hours
res = 60 * 60
end
end
unless res.is_a? Numeric
raise ArgumentError, "unexpected value: #{val}"
end
if res < 0
raise ArgumentError, "expected value >= 0, found: #{val}"
end
if res == Float::INFINITY
raise ArgumentError, "infinite values not allowed"
end
(res * 10**3).to_i
end
|