fugit 1.4.3 → 1.5.1
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.rb +1 -1
- data/lib/fugit/cron.rb +20 -2
- data/lib/fugit/nat.rb +11 -7
- 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: 8ea3f936965644ad47a2baf7b60d8a16825e8a92966bb5d4ca205f6f77205b0b
|
4
|
+
data.tar.gz: 00d9608f82444554090bf4839b93b8e2a5196ed6fab378770d06de49bf478a41
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1fe5f2034b40d4441c76e36075d9c9a6a31a54ac5c82e9c2961304f58875f75a2d63acd91a264f175b4ec16b74e98e46bd82bbd6e79619c2bd8f469804a4119b
|
7
|
+
data.tar.gz: 1668baf1ece5ab7d1a8198c67b4d659ab0f900113c7511761cb68242b13f9e4af581d109e46a523260aa9b55ec9d2442da47f680cd5c1794d03efebf5a81ba84
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,28 @@
|
|
2
2
|
# CHANGELOG.md
|
3
3
|
|
4
4
|
|
5
|
+
## fugit 1.5.1 released 2021-08-18
|
6
|
+
|
7
|
+
* Fix #next_time break issue for America/Santiago into DST, gh-60
|
8
|
+
|
9
|
+
|
10
|
+
## fugit 1.5.0 released 2021-06-08
|
11
|
+
|
12
|
+
* Accept "at 12 noon" and "at 12 midday" as "* 12 * * *", gh-57
|
13
|
+
* Accept "at 12pm" as "0 12 * * *", not "0 24 * * *", gh-57
|
14
|
+
* Accept "15/30 * * * *" as "15-59/30 * * * *", gh-56
|
15
|
+
|
16
|
+
|
17
|
+
## fugit 1.4.5 released 2021-04-22
|
18
|
+
|
19
|
+
* Accept "* * * Mon%2+2", gh-47
|
20
|
+
|
21
|
+
|
22
|
+
## fugit 1.4.4 released 2021-03-25
|
23
|
+
|
24
|
+
* Ensure leaving ZH DST is OK, gh-53
|
25
|
+
|
26
|
+
|
5
27
|
## fugit 1.4.3 released 2021-03-23
|
6
28
|
|
7
29
|
* Fix entering DST issue, gh-53
|
data/CREDITS.md
CHANGED
@@ -1,6 +1,11 @@
|
|
1
1
|
|
2
2
|
# fugit credits
|
3
3
|
|
4
|
+
* Ggallardoh https://github.com/Ggallardoh gh-60, America/Santiago into DST
|
5
|
+
* Khaled AbuShqear https://github.com/shqear93 gh-57, "12pm"
|
6
|
+
* John W Higgins https://github.com/wishdev gh-56, 15/30 cron decision
|
7
|
+
* Karen Sawrey https://github.com/karensawrey gh-47, Mon%2+1 rework idea
|
8
|
+
* Olle Jonsson https://github.com/olleolleolle gha Ruby 3.0
|
4
9
|
* Andy Pfister https://github.com/andyundso gh-53, entering DST
|
5
10
|
* Solteszad https://github.com/solteszad gh-51, fix previous_time vs last day of month
|
6
11
|
* Niklas https://github.com/gr8bit gh-49, Fugit::Cron.parse('')
|
@@ -10,7 +15,7 @@
|
|
10
15
|
* Danny Ben Shitrit https://github.com/DannyBen nat variants, gh-38
|
11
16
|
* Dominik Sander https://github.com/dsander #rough_frequency 0, gh-36
|
12
17
|
* Milovan Zogovic https://github.com/assembler Cron#match? vs TZ, gh-31
|
13
|
-
* Jessica Stokes https://github.com/ticky 0-24 issue with cron, gh-30
|
18
|
+
* Jessica Stokes https://github.com/ticky 0-24 issue with cron, gh-30 and gh-47
|
14
19
|
* Shai Coleman https://github.com/shaicoleman parse_nat enhancements, gh-24, gh-25, gh-28, and gh-37
|
15
20
|
* Jan Stevens https://github.com/JanStevens Fugit.parse('every 15 minutes') gh-22
|
16
21
|
* 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.rb
CHANGED
data/lib/fugit/cron.rb
CHANGED
@@ -83,17 +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
|
-
|
99
|
+
|
100
|
+
#inc( - @t.hour * 3600) if @t.hour != 0 # compensate for entering DST
|
101
|
+
#inc( - @t.hour * 3600) if @t.hour > 0 && @t.hour < 7
|
102
|
+
# leads to gh-60...
|
103
|
+
|
104
|
+
if @t.hour == 0
|
105
|
+
# it's good, carry on...
|
106
|
+
elsif @t.hour < 12
|
107
|
+
@t = ::EtOrbi.make(@t.year, @t.month, @t.day, @t.zone)
|
108
|
+
else
|
109
|
+
inc((24 - @t.hour) * 3600)
|
110
|
+
end
|
96
111
|
end
|
112
|
+
|
97
113
|
def inc_hour
|
98
114
|
inc((60 - @t.min) * 60 - @t.sec)
|
99
115
|
end
|
@@ -149,7 +165,7 @@ module Fugit
|
|
149
165
|
|
150
166
|
def weekday_modulo_match?(nt, mod)
|
151
167
|
|
152
|
-
nt.rweek % mod[0] ==
|
168
|
+
(nt.rweek + mod[1]) % mod[0] == 0
|
153
169
|
end
|
154
170
|
|
155
171
|
def weekday_match?(nt)
|
@@ -484,6 +500,8 @@ module Fugit
|
|
484
500
|
|
485
501
|
sla = nil if sla == 1 # don't get fooled by /1
|
486
502
|
|
503
|
+
edn = max if sla && edn.nil?
|
504
|
+
|
487
505
|
return [ nil ] if sta.nil? && edn.nil? && sla.nil?
|
488
506
|
return [ sta ] if sta && edn.nil?
|
489
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
|
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.1
|
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-08-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
|