chronic_between 0.2.21 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/lib/chronic_between.rb +20 -29
- metadata +45 -30
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: cd466f4f19e9f874988e0329cf2a23e65dae616e89a43cc6adc96fbb226c7f4a
|
4
|
+
data.tar.gz: a73e8db3600949810dcc188a1b93f38dea023a4b1af71149e507462dad63d860
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dcff7e1534de947ebecf54b4f99bd4ae256e58010e25ddc403329af1369c72c79d9637d516f02a7572912bc84d643feee078d830bf7b32ccba33b21696181ab5
|
7
|
+
data.tar.gz: 0e84a667249e165e9a59a82b12bead1d1e08e8c3e216988fc4f0a9122fbcb09f27db1244e6fd0d534ab039c4cf5b0bb4936262c48e15f8bb46fc14a4ec0edffb
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/lib/chronic_between.rb
CHANGED
@@ -9,8 +9,9 @@ require 'app-routes'
|
|
9
9
|
class ChronicBetween
|
10
10
|
include AppRoutes
|
11
11
|
|
12
|
-
def initialize(x)
|
12
|
+
def initialize(x, debug: false)
|
13
13
|
|
14
|
+
@debug = debug
|
14
15
|
@times = x.is_a?(String) ? x.split(/[,;&]/).map(&:strip) : x
|
15
16
|
super()
|
16
17
|
end
|
@@ -19,6 +20,7 @@ class ChronicBetween
|
|
19
20
|
|
20
21
|
date = raw_date.respond_to?(:to_datetime) ? raw_date.to_datetime : raw_date
|
21
22
|
@timezone = date.strftime("%z")
|
23
|
+
@params[:timezone] = @timezone
|
22
24
|
@year = date.year
|
23
25
|
dates = []
|
24
26
|
|
@@ -88,43 +90,27 @@ class ChronicBetween
|
|
88
90
|
end
|
89
91
|
|
90
92
|
# e.g. 3:45-5:15
|
91
|
-
get %r{^(\d[\w:]*)
|
93
|
+
get %r{^(\d[\w:]*)\s*(?:-|to|and)\s*(\d[\w:]*)(?=\s*(daily|every day)?)} do
|
92
94
|
t1, t2 = params[:captures]
|
93
95
|
time_range(date, t1, t2)
|
94
96
|
end
|
95
97
|
|
96
|
-
# e.g. 3:45 to 5:15
|
97
|
-
get %r{^(\d[\w:]*)\s+to\s+(\d[\w:]*)(?=\s*(daily|every day)?)} do
|
98
|
-
t1, t2 = params[:captures]
|
99
|
-
time_range(date, t1, t2)
|
100
|
-
end
|
101
98
|
|
102
99
|
# e.g. Mon 3:45-5:15
|
103
|
-
get %r{^(\w+)\s+(\d[\w:]*)
|
100
|
+
get %r{^(\w+)\s+(\d[\w:]*)\s*(?:-|to|and)\s*(\d[\w:]*)$} do
|
104
101
|
d1, t1, t2 = params[:captures]
|
105
102
|
cdatetime_range(date, d1, t1, t2)
|
106
103
|
end
|
107
|
-
|
108
|
-
# e.g. Mon 3:45 to 5:15
|
109
|
-
get %r{^(\w+)\s+(\d[\w:]*)\s+to\s+(\d[\w:]*)$} do
|
110
|
-
d1, t1, t2 = params[:captures]
|
111
|
-
cdatetime_range(date, d1, t1, t2)
|
112
|
-
end
|
113
|
-
|
104
|
+
|
114
105
|
# e.g. 3:45-5:15 Mon
|
115
|
-
get %r{^(\d[\w:]*)
|
106
|
+
get %r{^(\d[\w:]*)\s*(?:-|to|and)\s*(\d[\w:]*)\s+(\w+)$} do
|
116
107
|
t1, t2, d1 = params[:captures]
|
117
108
|
cdatetime_range(date, d1, t1, t2)
|
118
109
|
end
|
119
110
|
|
120
|
-
# e.g. 3:45 to 5:15 Mon
|
121
|
-
get %r{^(\d[\w:]*)\s+to\s+(\d[\w:]*)\s+(\w+)$} do
|
122
|
-
t1, t2, d1 = params[:captures]
|
123
|
-
cdatetime_range(date, d1, t1, t2)
|
124
|
-
end
|
125
111
|
|
126
112
|
# e.g. Mon-Wed
|
127
|
-
get %r{^(\w+)
|
113
|
+
get %r{^(\w+)\s*(?:-|to|and)\s*(\w+)$} do
|
128
114
|
d1, d2 = params[:captures]
|
129
115
|
cdate2, n_days = latest_date_and_ndays(date, d1, d2)
|
130
116
|
|
@@ -133,17 +119,17 @@ class ChronicBetween
|
|
133
119
|
end
|
134
120
|
|
135
121
|
# e.g. after 6pm
|
136
|
-
get
|
122
|
+
get /^after\s+(\d[\w:]*)$/i do
|
137
123
|
t1 = params[:captures].first
|
138
|
-
date1 = DateTime.parse(date.strftime("%d-%b-%y ") + t1)
|
124
|
+
date1 = DateTime.parse(date.strftime("%d-%b-%y ") + t1 + ' ' + params[:timezone])
|
139
125
|
date2 = DateTime.parse((date + 1).strftime("%d-%b-%y ") + '00:00')
|
140
126
|
[date1, date2]
|
141
127
|
end
|
142
128
|
|
143
129
|
# e.g. before 9pm
|
144
|
-
get
|
130
|
+
get /^before\s+(\d[\w:]*)$/i do
|
145
131
|
t1 = params[:captures].first
|
146
|
-
date2 = DateTime.parse(date.strftime("%d-%b-%y ") + t1)
|
132
|
+
date2 = DateTime.parse(date.strftime("%d-%b-%y ") + t1 + ' ' + params[:timezone])
|
147
133
|
date1 = DateTime.parse(date.strftime("%d-%b-%y") + ' 00:00')
|
148
134
|
[date1, date2]
|
149
135
|
end
|
@@ -161,12 +147,15 @@ class ChronicBetween
|
|
161
147
|
|
162
148
|
# e.g. April 5th - April 9th
|
163
149
|
get %r{^(.*)\s+-\s+(.*)$} do
|
150
|
+
|
151
|
+
puts 'route 600' if @debug
|
164
152
|
d1, d2 = params[:captures]
|
165
153
|
cdate1, cdate2 = [d1,d2].map {|d| Chronic.parse(d, :now => Time.local(@year))}
|
166
154
|
n_days = ((cdate2 - cdate1) / 86400).to_i
|
167
155
|
|
168
156
|
date1 = DateTime.parse(cdate1.strftime("%d-%b-%y") + ' 00:00')
|
169
|
-
|
157
|
+
date2 = DateTime.parse(cdate1.strftime("%d-%b-%y") + ' 23:59:59')
|
158
|
+
[date1, date2 + n_days]
|
170
159
|
end
|
171
160
|
|
172
161
|
# e.g. April 5th
|
@@ -174,12 +163,14 @@ class ChronicBetween
|
|
174
163
|
day = params[:captures].first
|
175
164
|
cdate1 = Chronic.parse(day, :now => Time.local(@year))
|
176
165
|
date1 = DateTime.parse(cdate1.strftime("%d-%b-%y") + ' 00:00')
|
177
|
-
|
166
|
+
date2 = DateTime.parse(cdate1.strftime("%d-%b-%y") + ' 23:59:59')
|
167
|
+
[date1, date2]
|
178
168
|
end
|
179
169
|
|
180
170
|
end
|
181
171
|
|
182
172
|
def build(times)
|
173
|
+
|
183
174
|
times.inject([]) do |result, x|
|
184
175
|
r = run_route(x.strip)
|
185
176
|
r.first.is_a?(Array) ? result + r : result << r
|
@@ -215,4 +206,4 @@ class ChronicBetween
|
|
215
206
|
|
216
207
|
alias datetime_range time_range
|
217
208
|
|
218
|
-
end
|
209
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chronic_between
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Robertson
|
@@ -10,59 +10,75 @@ bindir: bin
|
|
10
10
|
cert_chain:
|
11
11
|
- |
|
12
12
|
-----BEGIN CERTIFICATE-----
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
13
|
+
MIIEXjCCAsagAwIBAgIBATANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDDCFnZW1t
|
14
|
+
YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMjAwODE4MTcwMTA1WhcN
|
15
|
+
MjEwODE4MTcwMTA1WjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
|
16
|
+
cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDVMMq9
|
17
|
+
bgpnqDVGlYkpENsJAe7YvoI2RgZJFIuyQud5EdIAzf0jCBf8Y07BGN2CHl4A4uIN
|
18
|
+
b3R/WassouzLuRwIvOOQnqMgpvLtUhatIhjTEIp7xXWPpIg+PDjo63+7UVIemldU
|
19
|
+
tVvSDr5GTDYa/+MjnWjhVfn+oJxKKFguVgxj8PNxqoWWlB0oRUI3/+4YlV96rvT8
|
20
|
+
xqbZTWe3fiVdmwZNcPClZmQX5hzy7ahdHhJKC2oM72L+xQeVTiLaidgFvk76L9Dd
|
21
|
+
axRNBVJBMEADB/xx9XpLPhfnB7bs4G4eotEq8Q0yeF5bInTAw6fEVptexYFLpeiU
|
22
|
+
tOqE+9zr8Qx4H/RhANudEmiauAiXllmWN3JnJLS/a1fVcAVLadONuuzD73aJlHm4
|
23
|
+
HvA06lDZhIf8CPsN6kpPydee3pSaBdmWd/lUc/f5a/qQvowbrk10iIp1wImQojWB
|
24
|
+
r08W/Lz4TMUqW6GJuENHJ1WSEjUa32irHtzyl856pIgpwdYGCDAknNh3xUsCAwEA
|
25
|
+
AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUL3JwC0U0
|
26
|
+
NTEBIRAU2/5NHLyBfIUwJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
|
27
|
+
c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1hc3RlckBqYW1lc3JvYmVydHNvbi5ldTAN
|
28
|
+
BgkqhkiG9w0BAQsFAAOCAYEAYB9IpIiU4GuRdfRAhm312QppI9QVUhaKdHB+Vaz+
|
29
|
+
Lkjm2T+twfrsSysLFzuNQ2DFK82VL7l8MP9rybUPpUgY0EbNbLmzBJQeHjUQJAyb
|
30
|
+
4YSXeAXgsGXi3KXZRKwr76hIsuy+1/lX5SMyfGFrRxeZZbj4kBX2J7ro78zFUCFx
|
31
|
+
755lm8NO/33fxzhoQ1KyooiJE+hWCFfUmKfxdDmj6ufWnTz39O2vTHxLV9ErmyiP
|
32
|
+
uVWUHcbLoUUwD9lDzC8sfgywpVK+wMTX3KoIbxWDbLV7T0YYwXPipNNao6YVjg3c
|
33
|
+
6YAndyTrY7nytVYX0phechPNprMvacxKtHvyWPTOY3JxgfW/drVSQfBeQH2Urezn
|
34
|
+
qYLkS0jCgesFuRz6AbSvvufxl8sJUwRwoyEy6BGP/iY6TxWq6g7VyuNdHlMwAiZ6
|
35
|
+
Ne+ahcHAtwCL3/OPMC7V9VQfw400l8Gx8gnhXY+vg37QXrdjt1Aq6cSlHhdnQJkr
|
36
|
+
+UWA0LSKYjup6Y8u3MMD7/Lf
|
33
37
|
-----END CERTIFICATE-----
|
34
|
-
date:
|
38
|
+
date: 2021-06-20 00:00:00.000000000 Z
|
35
39
|
dependencies:
|
36
40
|
- !ruby/object:Gem::Dependency
|
37
41
|
name: chronic
|
38
42
|
requirement: !ruby/object:Gem::Requirement
|
39
43
|
requirements:
|
44
|
+
- - "~>"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '0.10'
|
40
47
|
- - ">="
|
41
48
|
- !ruby/object:Gem::Version
|
42
|
-
version:
|
49
|
+
version: 0.10.2
|
43
50
|
type: :runtime
|
44
51
|
prerelease: false
|
45
52
|
version_requirements: !ruby/object:Gem::Requirement
|
46
53
|
requirements:
|
54
|
+
- - "~>"
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: '0.10'
|
47
57
|
- - ">="
|
48
58
|
- !ruby/object:Gem::Version
|
49
|
-
version:
|
59
|
+
version: 0.10.2
|
50
60
|
- !ruby/object:Gem::Dependency
|
51
61
|
name: app-routes
|
52
62
|
requirement: !ruby/object:Gem::Requirement
|
53
63
|
requirements:
|
64
|
+
- - "~>"
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: '0.1'
|
54
67
|
- - ">="
|
55
68
|
- !ruby/object:Gem::Version
|
56
|
-
version:
|
69
|
+
version: 0.1.19
|
57
70
|
type: :runtime
|
58
71
|
prerelease: false
|
59
72
|
version_requirements: !ruby/object:Gem::Requirement
|
60
73
|
requirements:
|
74
|
+
- - "~>"
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0.1'
|
61
77
|
- - ">="
|
62
78
|
- !ruby/object:Gem::Version
|
63
|
-
version:
|
79
|
+
version: 0.1.19
|
64
80
|
description:
|
65
|
-
email:
|
81
|
+
email: digital.robertson@gmail.com
|
66
82
|
executables: []
|
67
83
|
extensions: []
|
68
84
|
extra_rdoc_files: []
|
@@ -80,15 +96,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
80
96
|
requirements:
|
81
97
|
- - ">="
|
82
98
|
- !ruby/object:Gem::Version
|
83
|
-
version:
|
99
|
+
version: 2.1.2
|
84
100
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
85
101
|
requirements:
|
86
102
|
- - ">="
|
87
103
|
- !ruby/object:Gem::Version
|
88
104
|
version: '0'
|
89
105
|
requirements: []
|
90
|
-
|
91
|
-
rubygems_version: 2.1.11
|
106
|
+
rubygems_version: 3.1.2
|
92
107
|
signing_key:
|
93
108
|
specification_version: 4
|
94
109
|
summary: chronic_between
|
metadata.gz.sig
CHANGED
Binary file
|