fugit 1.4.4 → 1.5.2
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of fugit might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CHANGELOG.md +22 -0
- data/CREDITS.md +6 -1
- data/README.md +16 -0
- data/lib/fugit/cron.rb +20 -3
- data/lib/fugit/nat.rb +11 -7
- data/lib/fugit.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7c15d1aa5444c8526cae61312916c90cde61e1e516faa8bdb330ade277ef3669
|
4
|
+
data.tar.gz: 5126ecd62951257326cb483e0b694ff4ffe7a02a7ef5eda53359e26aa43b43eb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d04b7906c8134bc36f98a4cc3a5b598f430f1125c0169aa162cd8f789bb812479cdc17a65154ad6afb9f102b784d4d6a2831fe7a1512ef3a4b81ebe4eca22087
|
7
|
+
data.tar.gz: 1de022b1f39ba9a4f9cdeea4eed9427b1b33c3b9e121def7680a481b4036ad7542a4e5340814e7aa4a9937f03cc144b2fc2661975682b3683948cc4b7445bd0e
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,28 @@
|
|
2
2
|
# CHANGELOG.md
|
3
3
|
|
4
4
|
|
5
|
+
## fugit 1.5.2 released 2021-09-18
|
6
|
+
|
7
|
+
* Simplify inc_day, gh-62
|
8
|
+
|
9
|
+
|
10
|
+
## fugit 1.5.1 released 2021-08-18
|
11
|
+
|
12
|
+
* Fix #next_time break issue for America/Santiago into DST, gh-60
|
13
|
+
|
14
|
+
|
15
|
+
## fugit 1.5.0 released 2021-06-08
|
16
|
+
|
17
|
+
* Accept "at 12 noon" and "at 12 midday" as "* 12 * * *", gh-57
|
18
|
+
* Accept "at 12pm" as "0 12 * * *", not "0 24 * * *", gh-57
|
19
|
+
* Accept "15/30 * * * *" as "15-59/30 * * * *", gh-56
|
20
|
+
|
21
|
+
|
22
|
+
## fugit 1.4.5 released 2021-04-22
|
23
|
+
|
24
|
+
* Accept "* * * Mon%2+2", gh-47
|
25
|
+
|
26
|
+
|
5
27
|
## fugit 1.4.4 released 2021-03-25
|
6
28
|
|
7
29
|
* Ensure leaving ZH DST is OK, gh-53
|
data/CREDITS.md
CHANGED
@@ -1,6 +1,11 @@
|
|
1
1
|
|
2
2
|
# fugit credits
|
3
3
|
|
4
|
+
* Pascal Zumkehr https://github.com/codez gh-62, Santiago into DST vs Time.zone
|
5
|
+
* Ggallardoh https://github.com/Ggallardoh gh-60, America/Santiago into DST
|
6
|
+
* Khaled AbuShqear https://github.com/shqear93 gh-57, "12pm"
|
7
|
+
* John W Higgins https://github.com/wishdev gh-56, 15/30 cron decision
|
8
|
+
* Karen Sawrey https://github.com/karensawrey gh-47, Mon%2+1 rework idea
|
4
9
|
* Olle Jonsson https://github.com/olleolleolle gha Ruby 3.0
|
5
10
|
* Andy Pfister https://github.com/andyundso gh-53, entering DST
|
6
11
|
* Solteszad https://github.com/solteszad gh-51, fix previous_time vs last day of month
|
@@ -11,7 +16,7 @@
|
|
11
16
|
* Danny Ben Shitrit https://github.com/DannyBen nat variants, gh-38
|
12
17
|
* Dominik Sander https://github.com/dsander #rough_frequency 0, gh-36
|
13
18
|
* Milovan Zogovic https://github.com/assembler Cron#match? vs TZ, gh-31
|
14
|
-
* Jessica Stokes https://github.com/ticky 0-24 issue with cron, gh-30
|
19
|
+
* Jessica Stokes https://github.com/ticky 0-24 issue with cron, gh-30 and gh-47
|
15
20
|
* Shai Coleman https://github.com/shaicoleman parse_nat enhancements, gh-24, gh-25, gh-28, and gh-37
|
16
21
|
* Jan Stevens https://github.com/JanStevens Fugit.parse('every 15 minutes') gh-22
|
17
22
|
* Fabio Pitino https://github.com/hspazio nil on February 30 gh-21
|
data/README.md
CHANGED
@@ -138,6 +138,8 @@ Example of cron strings understood by fugit:
|
|
138
138
|
# and more...
|
139
139
|
```
|
140
140
|
|
141
|
+
Please note that `'15/30 * * * *'` is interpreted as `'15-59/30 * * * *'` since fugit 1.4.6.
|
142
|
+
|
141
143
|
### the first Monday of the month
|
142
144
|
|
143
145
|
Fugit tries to follow the `man 5 crontab` documentation.
|
@@ -203,8 +205,22 @@ p EtOrbi.parse('2019-01-01').rweek % 2 # => 1
|
|
203
205
|
p EtOrbi.parse('2019-04-11').wday # => 4
|
204
206
|
p EtOrbi.parse('2019-04-11').rweek # => 15
|
205
207
|
p EtOrbi.parse('2019-04-11').rweek % 2 # => 1
|
208
|
+
|
209
|
+
c = Fugit.parse('* * * * tue%2')
|
210
|
+
c.match?('2019-01-01') # => false, since rweek % 2 == 1
|
211
|
+
c.match?('2019-01-08') # => true, since rweek % 2 == 0
|
212
|
+
|
213
|
+
c = Fugit.parse('* * * * tue%2+1')
|
214
|
+
c.match?('2019-01-01') # => true, since (rweek + 1) % 2 == 0
|
215
|
+
c.match?('2019-01-08') # => false, since (rweek + 1) % 2 == 1
|
216
|
+
|
217
|
+
# ...
|
206
218
|
```
|
207
219
|
|
220
|
+
`sun%2` matches if Sunday and `current_date.rweek % 2 == 0`
|
221
|
+
`tue%3+2` matches if Tuesday and `current_date.rweek + 2 % 3 == 0`
|
222
|
+
`tue%x+y` matches if Tuesday and `current_date.rweek + y % x == 0`
|
223
|
+
|
208
224
|
|
209
225
|
## `Fugit::Duration`
|
210
226
|
|
data/lib/fugit/cron.rb
CHANGED
@@ -83,18 +83,33 @@ module Fugit
|
|
83
83
|
def dec(i); inc(-i); end
|
84
84
|
|
85
85
|
def inc_month
|
86
|
+
|
86
87
|
y = @t.year
|
87
88
|
m = @t.month + 1
|
88
89
|
if m == 13; m = 1; y += 1; end
|
90
|
+
|
89
91
|
@t = ::EtOrbi.make(y, m, @t.zone)
|
92
|
+
|
90
93
|
self
|
91
94
|
end
|
92
95
|
|
93
96
|
def inc_day
|
97
|
+
|
94
98
|
inc((24 - @t.hour) * 3600 - @t.min * 60 - @t.sec)
|
95
|
-
|
96
|
-
|
99
|
+
|
100
|
+
return if @t.hour == 0
|
101
|
+
|
102
|
+
if @t.hour < 12
|
103
|
+
begin
|
104
|
+
@t = ::EtOrbi.make(@t.year, @t.month, @t.day, @t.zone)
|
105
|
+
rescue ::TZInfo::PeriodNotFound
|
106
|
+
inc((24 - @t.hour) * 3600)
|
107
|
+
end
|
108
|
+
else
|
109
|
+
inc((24 - @t.hour) * 3600)
|
110
|
+
end
|
97
111
|
end
|
112
|
+
|
98
113
|
def inc_hour
|
99
114
|
inc((60 - @t.min) * 60 - @t.sec)
|
100
115
|
end
|
@@ -150,7 +165,7 @@ module Fugit
|
|
150
165
|
|
151
166
|
def weekday_modulo_match?(nt, mod)
|
152
167
|
|
153
|
-
nt.rweek % mod[0] ==
|
168
|
+
(nt.rweek + mod[1]) % mod[0] == 0
|
154
169
|
end
|
155
170
|
|
156
171
|
def weekday_match?(nt)
|
@@ -485,6 +500,8 @@ module Fugit
|
|
485
500
|
|
486
501
|
sla = nil if sla == 1 # don't get fooled by /1
|
487
502
|
|
503
|
+
edn = max if sla && edn.nil?
|
504
|
+
|
488
505
|
return [ nil ] if sta.nil? && edn.nil? && sla.nil?
|
489
506
|
return [ sta ] if sta && edn.nil?
|
490
507
|
|
data/lib/fugit/nat.rb
CHANGED
@@ -201,7 +201,7 @@ module Fugit
|
|
201
201
|
end
|
202
202
|
|
203
203
|
def ampm(i)
|
204
|
-
rex(:ampm, i, /[ \t]*(am|pm)/i)
|
204
|
+
rex(:ampm, i, /[ \t]*(am|pm|noon|midday|midnight)/i)
|
205
205
|
end
|
206
206
|
def dark(i)
|
207
207
|
rex(:dark, i, /[ \t]*dark/i)
|
@@ -473,17 +473,21 @@ module Fugit
|
|
473
473
|
slot(:monthday, "#{md0}-#{md1}")
|
474
474
|
end
|
475
475
|
|
476
|
+
def adjust_h(h, ap)
|
477
|
+
h = h.to_i
|
478
|
+
ap = ap || ''
|
479
|
+
(h < 12 && ap == 'pm' || ap == 'midnight') ? h + 12 : h
|
480
|
+
end
|
481
|
+
|
476
482
|
def rewrite_digital_hour(t)
|
477
483
|
h, m, ap = t.strinpd.split(/[: \t]+/)
|
478
|
-
h, m = h
|
479
|
-
h
|
480
|
-
slot(:hm, h.to_i, m.to_i)
|
484
|
+
h, m = adjust_h(h, ap), m.to_i
|
485
|
+
slot(:hm, h, m)
|
481
486
|
end
|
482
487
|
|
483
488
|
def rewrite_simple_hour(t)
|
484
489
|
h, ap = t.subgather(nil).collect(&:strinpd)
|
485
|
-
h = h
|
486
|
-
h = h + 12 if ap == 'pm'
|
490
|
+
h = adjust_h(h, ap)
|
487
491
|
slot(:hm, h, 0)
|
488
492
|
end
|
489
493
|
|
@@ -500,7 +504,7 @@ module Fugit
|
|
500
504
|
m = NMINUTES[m] || m
|
501
505
|
#p [ 1, '-->', h, m ]
|
502
506
|
|
503
|
-
h
|
507
|
+
h = adjust_h(h, apt && apt.strinpd)
|
504
508
|
|
505
509
|
slot(:hm, h, m)
|
506
510
|
end
|
data/lib/fugit.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fugit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Mettraux
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-09-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: raabro
|
@@ -117,7 +117,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
117
117
|
- !ruby/object:Gem::Version
|
118
118
|
version: '0'
|
119
119
|
requirements: []
|
120
|
-
rubygems_version: 3.
|
120
|
+
rubygems_version: 3.1.2
|
121
121
|
signing_key:
|
122
122
|
specification_version: 4
|
123
123
|
summary: time tools for flor
|