opening_hours_converter 1.13.15 → 1.14.0
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1840d4011474e210bb2248979afc8850829c4eab62b0cb2036a670a70ded1265
|
4
|
+
data.tar.gz: 0710a806e7ac90d3b61d83bd9281acb1c56546aabb504d8b4961f5eeb05ca1b4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5160c41e2242e1489b1daddecef9068c3218d9726b7f6c0871176d323796035df2b1d491018b13506e88bbf33212df6549063a5ed81559ad645ac5e59a579962
|
7
|
+
data.tar.gz: 6e3c009bfb86cfda6a516ee4c86b49cc165211ee323981b20d74b778938249cb88a436601517659a4b17c8d4bc26119dec0e171ef94c6685094a9d8ee407ba6f
|
@@ -48,7 +48,7 @@ module OpeningHoursConverter
|
|
48
48
|
end
|
49
49
|
|
50
50
|
# get state and time associated with weekdays
|
51
|
-
while @current_token >= 0 && (is_rule_modifier?(tokens[@current_token]) || is_time?(tokens[@current_token]))
|
51
|
+
while @current_token >= 0 && (is_rule_modifier?(tokens[@current_token]) || is_time?(tokens[@current_token])) || is_weekday?(tokens[@current_token])
|
52
52
|
if is_rule_modifier?(tokens[@current_token])
|
53
53
|
local_modifier = tokens[@current_token].downcase
|
54
54
|
@current_token -= 1
|
@@ -72,6 +72,11 @@ module OpeningHoursConverter
|
|
72
72
|
local_times.concat get_times(time_selector)
|
73
73
|
@current_token -= 1
|
74
74
|
end
|
75
|
+
|
76
|
+
if local_times.empty?
|
77
|
+
local_times.concat get_times("00:00-23:59")
|
78
|
+
end
|
79
|
+
|
75
80
|
begin
|
76
81
|
weekday_selector = tokens[@current_token]
|
77
82
|
weekdays_and_holidays = get_weekdays(weekday_selector)
|
@@ -125,13 +130,12 @@ module OpeningHoursConverter
|
|
125
130
|
elsif !(@regex_handler.week_regex =~ wide_range_selector).nil?
|
126
131
|
weeks << get_week(wide_range_selector)
|
127
132
|
else
|
133
|
+
|
128
134
|
raise ParseError, "Unsupported selector #{wide_range_selector}"
|
129
135
|
end
|
130
136
|
end
|
131
137
|
end
|
132
138
|
|
133
|
-
raise ParseError, 'Unreadable string' if @current_token == tokens.length - 1
|
134
|
-
|
135
139
|
# puts "weekdays : #{weekdays}"
|
136
140
|
# puts "weeks : #{weeks}"
|
137
141
|
# puts "months : #{months}"
|
@@ -399,11 +403,11 @@ module OpeningHoursConverter
|
|
399
403
|
|
400
404
|
def get_month(wrs)
|
401
405
|
single_month = wrs.gsub(/\:$/, '').split('-')
|
402
|
-
month_from = OSM_MONTHS.find_index(single_month[0]) + 1
|
406
|
+
month_from = OSM_MONTHS.find_index(single_month[0].capitalize) + 1
|
403
407
|
raise ArgumentError, "Invalid month : #{single_month[0]}" if month_from < 1
|
404
408
|
|
405
409
|
if single_month.length > 1
|
406
|
-
month_to = OSM_MONTHS.find_index(single_month[1]) + 1
|
410
|
+
month_to = OSM_MONTHS.find_index(single_month[1].capitalize) + 1
|
407
411
|
raise ArgumentError, "Invalid month : #{single_month[1]}" if month_to < 1
|
408
412
|
else
|
409
413
|
month_to = month_from
|
@@ -431,13 +435,13 @@ module OpeningHoursConverter
|
|
431
435
|
single_month = wrs.gsub(/\:$/, '').split('-')
|
432
436
|
|
433
437
|
month_from = single_month[0].split(' ')
|
434
|
-
month_from = { day: month_from[1].to_i, month: OSM_MONTHS.find_index(month_from[0]) + 1 }
|
438
|
+
month_from = { day: month_from[1].to_i, month: OSM_MONTHS.find_index(month_from[0].capitalize) + 1 }
|
435
439
|
raise ArgumentError, "Invalid month : #{month_from.inspect}" if month_from[:month] < 1
|
436
440
|
|
437
441
|
if single_month.length > 1
|
438
442
|
month_to = single_month[1].split(' ')
|
439
443
|
month_to = if month_to.length > 1
|
440
|
-
{ day: month_to[1].to_i, month: OSM_MONTHS.find_index(month_to[0]) + 1 }
|
444
|
+
{ day: month_to[1].to_i, month: OSM_MONTHS.find_index(month_to[0].capitalize) + 1 }
|
441
445
|
else
|
442
446
|
{ day: month_to[0].to_i, month: month_from[:month] }
|
443
447
|
end
|
@@ -452,16 +456,16 @@ module OpeningHoursConverter
|
|
452
456
|
def get_year_month(wrs)
|
453
457
|
single_year_month = wrs.gsub(/\:$/, '').split('-')
|
454
458
|
year_month_from = single_year_month[0].split(' ')
|
455
|
-
year_month_from = { month: OSM_MONTHS.find_index(year_month_from[1]) + 1, year: year_month_from[0].to_i }
|
459
|
+
year_month_from = { month: OSM_MONTHS.find_index(year_month_from[1].capitalize) + 1, year: year_month_from[0].to_i }
|
456
460
|
if year_month_from.empty?
|
457
461
|
raise ArgumentError, "Invalid year_month : #{year_month_from.inspect}"
|
458
462
|
end
|
459
463
|
if single_year_month.length > 1
|
460
464
|
year_month_to = single_year_month[1].split(' ')
|
461
465
|
if year_month_to.length == 2
|
462
|
-
year_month_to = { month: OSM_MONTHS.find_index(year_month_to[1]) + 1, year: year_month_to[0].to_i }
|
466
|
+
year_month_to = { month: OSM_MONTHS.find_index(year_month_to[1].capitalize) + 1, year: year_month_to[0].to_i }
|
463
467
|
elsif year_month_to.length == 1
|
464
|
-
year_month_to = { month: OSM_MONTHS.find_index(year_month_to[0]) + 1, year: year_month_from[:year] }
|
468
|
+
year_month_to = { month: OSM_MONTHS.find_index(year_month_to[0].capitalize) + 1, year: year_month_from[:year] }
|
465
469
|
end
|
466
470
|
raise ArgumentError, "Invalid year_month : #{year_month_to.inspect}" if year_month_to.empty?
|
467
471
|
else
|
@@ -485,7 +489,7 @@ module OpeningHoursConverter
|
|
485
489
|
single_year_month_day = wrs.gsub(/\:$/, '').split('-')
|
486
490
|
year_month_day_from = single_year_month_day[0].split(' ')
|
487
491
|
year_month_day_from = { day: year_month_day_from[2].to_i,
|
488
|
-
month: OSM_MONTHS.find_index(year_month_day_from[1]) + 1,
|
492
|
+
month: OSM_MONTHS.find_index(year_month_day_from[1].capitalize) + 1,
|
489
493
|
year: year_month_day_from[0].to_i }
|
490
494
|
if year_month_day_from.empty?
|
491
495
|
raise ArgumentError, "Invalid year_month_day : #{year_month_day_from.inspect}"
|
@@ -494,11 +498,11 @@ module OpeningHoursConverter
|
|
494
498
|
year_month_day_to = single_year_month_day[1].split(' ')
|
495
499
|
if year_month_day_to.length == 3
|
496
500
|
year_month_day_to = { day: year_month_day_to[2].to_i,
|
497
|
-
month: OSM_MONTHS.find_index(year_month_day_to[1]) + 1,
|
501
|
+
month: OSM_MONTHS.find_index(year_month_day_to[1].capitalize) + 1,
|
498
502
|
year: year_month_day_to[0].to_i }
|
499
503
|
elsif year_month_day_to.length == 2
|
500
504
|
year_month_day_to = { day: year_month_day_to[1].to_i,
|
501
|
-
month: OSM_MONTHS.find_index(year_month_day_to[0]) + 1,
|
505
|
+
month: OSM_MONTHS.find_index(year_month_day_to[0].capitalize) + 1,
|
502
506
|
year: year_month_day_from[:year] }
|
503
507
|
elsif year_month_day_to.length == 1
|
504
508
|
year_month_day_to = { day: year_month_day_to[0].to_i,
|
@@ -528,12 +532,12 @@ module OpeningHoursConverter
|
|
528
532
|
if days.length == 2
|
529
533
|
from = {
|
530
534
|
year: year.to_i,
|
531
|
-
month: OSM_MONTHS.find_index(wr[0...3]) + 1,
|
535
|
+
month: OSM_MONTHS.find_index(wr[0...3].capitalize) + 1,
|
532
536
|
day: days[0]
|
533
537
|
}
|
534
538
|
to = {
|
535
539
|
year: year.to_i,
|
536
|
-
month: OSM_MONTHS.find_index(wr[0...3]) + 1,
|
540
|
+
month: OSM_MONTHS.find_index(wr[0...3].capitalize) + 1,
|
537
541
|
day: days[1]
|
538
542
|
}
|
539
543
|
{ from_day: from, to_day: to }
|
@@ -560,24 +564,24 @@ module OpeningHoursConverter
|
|
560
564
|
end_day = end_month_day[4...end_month_day.length]&.to_i
|
561
565
|
|
562
566
|
from = {
|
563
|
-
month: OSM_MONTHS.find_index(start_month) + 1,
|
567
|
+
month: OSM_MONTHS.find_index(start_month.capitalize) + 1,
|
564
568
|
day: start_day || 1
|
565
569
|
}
|
566
570
|
to = {
|
567
|
-
month: OSM_MONTHS.find_index(end_month) + 1,
|
568
|
-
day: end_day || MONTH_END_DAY[OSM_MONTHS.find_index(end_month)]
|
571
|
+
month: OSM_MONTHS.find_index(end_month.capitalize) + 1,
|
572
|
+
day: end_day || MONTH_END_DAY[OSM_MONTHS.find_index(end_month.capitalize)]
|
569
573
|
}
|
570
574
|
else
|
571
575
|
month = wr[0...3]
|
572
576
|
day = wr[4...wr.length]&.to_i
|
573
577
|
|
574
578
|
from = {
|
575
|
-
month: OSM_MONTHS.find_index(month) + 1,
|
579
|
+
month: OSM_MONTHS.find_index(month.capitalize) + 1,
|
576
580
|
day: day || 1
|
577
581
|
}
|
578
582
|
to = {
|
579
|
-
month: OSM_MONTHS.find_index(month) + 1,
|
580
|
-
day: day || MONTH_END_DAY[OSM_MONTHS.find_index(month)]
|
583
|
+
month: OSM_MONTHS.find_index(month.capitalize) + 1,
|
584
|
+
day: day || MONTH_END_DAY[OSM_MONTHS.find_index(month.capitalize)]
|
581
585
|
}
|
582
586
|
end
|
583
587
|
|
@@ -594,24 +598,24 @@ module OpeningHoursConverter
|
|
594
598
|
start_month, end_month = wr.split('-')
|
595
599
|
from = {
|
596
600
|
year: year.to_i,
|
597
|
-
month: OSM_MONTHS.find_index(start_month) + 1,
|
601
|
+
month: OSM_MONTHS.find_index(start_month.capitalize) + 1,
|
598
602
|
day: 1
|
599
603
|
}
|
600
604
|
to = {
|
601
605
|
year: year.to_i,
|
602
|
-
month: OSM_MONTHS.find_index(end_month) + 1,
|
603
|
-
day: MONTH_END_DAY[OSM_MONTHS.find_index(end_month)]
|
606
|
+
month: OSM_MONTHS.find_index(end_month.capitalize) + 1,
|
607
|
+
day: MONTH_END_DAY[OSM_MONTHS.find_index(end_month.capitalize)]
|
604
608
|
}
|
605
609
|
else
|
606
610
|
from = {
|
607
611
|
year: year.to_i,
|
608
|
-
month: OSM_MONTHS.find_index(wr[0...3]) + 1,
|
612
|
+
month: OSM_MONTHS.find_index(wr[0...3].capitalize) + 1,
|
609
613
|
day: 1
|
610
614
|
}
|
611
615
|
to = {
|
612
616
|
year: year.to_i,
|
613
|
-
month: OSM_MONTHS.find_index(wr[0...3]) + 1,
|
614
|
-
day: MONTH_END_DAY[OSM_MONTHS.find_index(wr[0...3])]
|
617
|
+
month: OSM_MONTHS.find_index(wr[0...3].capitalize) + 1,
|
618
|
+
day: MONTH_END_DAY[OSM_MONTHS.find_index(wr[0...3].capitalize)]
|
615
619
|
}
|
616
620
|
end
|
617
621
|
{ from_day: from, to_day: to }
|
@@ -653,9 +657,9 @@ module OpeningHoursConverter
|
|
653
657
|
elsif !(@regex_handler.week_day_regex =~ wd).nil?
|
654
658
|
single_weekday = wd.split('-')
|
655
659
|
|
656
|
-
wd_from = OSM_DAYS.find_index(single_weekday[0])
|
660
|
+
wd_from = OSM_DAYS.find_index(single_weekday[0].capitalize)
|
657
661
|
wd_to = if single_weekday.length > 1
|
658
|
-
OSM_DAYS.find_index(single_weekday[1])
|
662
|
+
OSM_DAYS.find_index(single_weekday[1].capitalize)
|
659
663
|
else
|
660
664
|
wd_from
|
661
665
|
end
|
@@ -666,8 +670,8 @@ module OpeningHoursConverter
|
|
666
670
|
from, to = wd[0...wd.index('[')].split('-')
|
667
671
|
index = wd[wd.index('[') + 1...wd.index(']')]
|
668
672
|
|
669
|
-
wd_from = OSM_DAYS.find_index(from)
|
670
|
-
wd_to = OSM_DAYS.find_index(to)
|
673
|
+
wd_from = OSM_DAYS.find_index(from.capitalize)
|
674
|
+
wd_to = OSM_DAYS.find_index(to.capitalize)
|
671
675
|
|
672
676
|
weekdays << { from: wd_from, to: wd_from, index: index.to_i }
|
673
677
|
else
|
@@ -23,15 +23,15 @@ module OpeningHoursConverter
|
|
23
23
|
end
|
24
24
|
|
25
25
|
def weekday?
|
26
|
-
string? && OSM_DAYS.any? { |day| day == @value }
|
26
|
+
string? && OSM_DAYS.any? { |day| day.downcase == @value.downcase }
|
27
27
|
end
|
28
28
|
|
29
29
|
def month?
|
30
|
-
string? && OSM_MONTHS.any? { |day| day == @value }
|
30
|
+
string? && OSM_MONTHS.any? { |day| day.downcase == @value.downcase }
|
31
31
|
end
|
32
32
|
|
33
33
|
def week?
|
34
|
-
string? && @value == 'week'
|
34
|
+
string? && @value.downcase == 'week'
|
35
35
|
end
|
36
36
|
|
37
37
|
def week_index?
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: opening_hours_converter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.14.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ziserman Martin
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-07-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|
@@ -100,7 +100,7 @@ homepage: https://github.com/Publidata/opening_hours_converter
|
|
100
100
|
licenses:
|
101
101
|
- AGPL-3.0
|
102
102
|
metadata: {}
|
103
|
-
post_install_message:
|
103
|
+
post_install_message:
|
104
104
|
rdoc_options: []
|
105
105
|
require_paths:
|
106
106
|
- lib
|
@@ -116,7 +116,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
116
116
|
version: '0'
|
117
117
|
requirements: []
|
118
118
|
rubygems_version: 3.1.2
|
119
|
-
signing_key:
|
119
|
+
signing_key:
|
120
120
|
specification_version: 4
|
121
121
|
summary: Datetime range to opening hours, opening hours to datetime range
|
122
122
|
test_files: []
|