-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathschedule_print.rb
66 lines (50 loc) · 1.23 KB
/
schedule_print.rb
1
2
3
4
5
6
7
8
9
10
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# Mon, Thu: 09:00-13:00, 16:00-20:00
# Wed: 16:00-20:00
# Tue, Fri: 09:00-13:00
# Sat: 09:00-14:00
require 'json'
responce = '{
"mon_1_open": "09:00",
"mon_1_close": "13:00",
"tue_1_open": "09:00",
"tue_1_close": "13:00",
"wed_1_open": "16:00",
"wed_1_close": "20:00",
"thu_1_open": "09:00",
"thu_1_close": "13:00",
"fri_1_open": "09:00",
"fri_1_close": "13:00",
"sat_1_open": "09:00",
"sat_1_close": "14:00",
"mon_2_open": "16:00",
"mon_2_close": "20:00",
"thu_2_open": "16:00",
"thu_2_close": "20:00"
}'
data = JSON.parse(responce)
schedule = {}
data.each do |key,time|
day = key[0, 3]
part = key[4,1].to_i
schedule[day] ||= [{}, {}]
current_part = schedule[day][part-1]
if key.include?('close')
current_part[:close] = time
elsif key.include?('open')
current_part[:open] = time
end
end
short_schedule = {}
schedule.each do |day, data_array|
key_parts = []
data_array.each do |data|
next if data.empty?
key_parts << "#{data[:open]}-#{data[:close]}"
end
key = key_parts.join(', ')
short_schedule[key] ||= []
short_schedule[key] << day.capitalize
end
short_schedule.each do |time, days|
p "#{days.join(', ')}: #{time}"
end