github
0 of 18 new or added lines in 4 files covered. (0.0%)
3922 existing lines in 105 files now uncovered.0 of 4086 relevant lines covered (0.0%)
0.0 hits per line
1 |
# frozen_string_literal: true
|
|
2 |
|
|
UNCOV
3
|
module TimeFilterable |
× |
4 |
|
|
UNCOV
5
|
TIME_PARTS = [:year, :month, :day, :hour, :min, :sec].freeze |
× |
6 |
|
|
UNCOV
7
|
private |
× |
8 |
|
|
UNCOV
9
|
def start_finish |
× |
UNCOV
10
|
parts = param_time_parts |
× |
UNCOV
11
|
start = get_timestamp(parts) |
× |
UNCOV
12
|
finish = start + range(parts) |
× |
UNCOV
13
|
[start, finish] |
× |
UNCOV
14
|
end
|
× |
15 |
|
|
UNCOV
16
|
def param_time_parts |
× |
UNCOV
17
|
parts = params.values_at(*TIME_PARTS).compact
|
× |
UNCOV
18
|
time = params[:time].to_s.match(/^(\d{2})(\d{2})?(\d{2})?$/) |
× |
UNCOV
19
|
parts += time[1..3].compact if time && parts.size == 3 |
× |
UNCOV
20
|
parts |
× |
UNCOV
21
|
end
|
× |
22 |
|
|
UNCOV
23
|
def range(parts) |
× |
UNCOV
24
|
range = TIME_PARTS[parts.size - 1] |
× |
UNCOV
25
|
case range
|
× |
UNCOV
26
|
when :min then 1.minute |
× |
27 |
when :sec then 1.second |
× |
UNCOV
28
|
else 1.send(range) |
× |
UNCOV
29
|
end
|
× |
UNCOV
30
|
end
|
× |
31 |
|
|
UNCOV
32
|
def get_timestamp(parts) |
× |
UNCOV
33
|
Time.zone.local(*parts)
|
× |
UNCOV
34
|
rescue ArgumentError |
× |
35 |
not_found |
× |
UNCOV
36
|
end
|
× |
37 |
|
|
UNCOV
38
|
end
|
× |