fugit 1.4.4 → 1.5.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|