fugit 1.7.0 → 1.7.2
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.
Potentially problematic release.
This version of fugit might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CHANGELOG.md +12 -0
- data/CREDITS.md +2 -0
- data/README.md +30 -0
- data/fugit.gemspec +1 -1
- data/lib/fugit/cron.rb +2 -2
- data/lib/fugit/nat.rb +34 -16
- data/lib/fugit.rb +1 -1
- metadata +5 -6
- data/Makefile +0 -55
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d28dc94bc31e025df55b67c79f2f59eed365940872e287479e788cb9023178dd
|
4
|
+
data.tar.gz: 6f8d62b8d8921831a4de92d60a23c4cf83cfe79eea852c625744951156cb3d05
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3afc5fd6553abed3c73d7526e25b871ba0f5f26b8f415fccfec183b261e5ccb4e9f3fc6b176b550fa47de385f8991efe08936d2d96d6951a15dba81533f2ebcc
|
7
|
+
data.tar.gz: e5cbdb64a9f6ee28e8f938c76dcdf44211ce751ca0dc1834d669b8494e40424fb7c5e8e98f7eb608e8855c29648b9c99e9faf06436ab05a795a87bffc771118c
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,18 @@
|
|
2
2
|
# CHANGELOG.md
|
3
3
|
|
4
4
|
|
5
|
+
## fugit 1.7.2 released 2022-11-03
|
6
|
+
|
7
|
+
* Fix 'every day at 12:15 am', gh-81
|
8
|
+
* Fix 'every day at 5:00pm', gh-81
|
9
|
+
|
10
|
+
|
11
|
+
## fugit 1.7.1 released 2022-09-21
|
12
|
+
|
13
|
+
* Change behaviour for "0 0/5 * * *", gh-79
|
14
|
+
go "every 5h start hour 0", previous behaviour only triggered at hour 0
|
15
|
+
|
16
|
+
|
5
17
|
## fugit 1.7.0 released 2022-09-15
|
6
18
|
|
7
19
|
* Introduce the & cron syntax (day-of-month AND day-of-week), gh-78
|
data/CREDITS.md
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
|
2
2
|
# fugit credits
|
3
3
|
|
4
|
+
* ski-nine, https://github.com/ski-nine, gh-81
|
5
|
+
* Joseph Halter, https://github.com/JosephHalter, gh-79
|
4
6
|
* James Healy, https://github.com/yob, gh-76
|
5
7
|
* John Bachir, https://github.com/jjb, gh-74
|
6
8
|
* Vivek Miyani, https://github.com/vivekmiyani, gh-71
|
data/README.md
CHANGED
@@ -399,6 +399,36 @@ Fugit::Nat.parse('every day at 16:15 nada 18:30', multi: true)
|
|
399
399
|
`"Every day at midnight"` is supported, but `"Every monday at midnight"` will be interpreted (as of Fugit <= 1.4.x) as `"Every monday at 00:00"`. Sorry about that.
|
400
400
|
|
401
401
|
|
402
|
+
### 12 AM and PM
|
403
|
+
|
404
|
+
How does fugit react with `"12 am"`, `"12 pm"`, `"12 midnight"`, etc?
|
405
|
+
|
406
|
+
```ruby
|
407
|
+
require 'fugit'
|
408
|
+
|
409
|
+
p Fugit.parse('every day at 12am').original # ==> "0 0 * * *"
|
410
|
+
p Fugit.parse('every day at 12pm').original # ==> "0 12 * * *"
|
411
|
+
|
412
|
+
p Fugit.parse('every day at 12:00am').original # ==> "0 0 * * *"
|
413
|
+
p Fugit.parse('every day at 12:00pm').original # ==> "0 12 * * *"
|
414
|
+
p Fugit.parse('every day at 12:00 am').original # ==> "0 0 * * *"
|
415
|
+
p Fugit.parse('every day at 12:00 pm').original # ==> "0 12 * * *"
|
416
|
+
p Fugit.parse('every day at 12:15am').original # ==> "15 0 * * *"
|
417
|
+
p Fugit.parse('every day at 12:15pm').original # ==> "15 12 * * *"
|
418
|
+
p Fugit.parse('every day at 12:15 am').original # ==> "15 0 * * *"
|
419
|
+
p Fugit.parse('every day at 12:15 pm').original # ==> "15 12 * * *"
|
420
|
+
|
421
|
+
p Fugit.parse('every day at 12 noon').original # ==> "0 12 * * *"
|
422
|
+
p Fugit.parse('every day at 12 midnight').original # ==> "0 24 * * *"
|
423
|
+
p Fugit.parse('every day at 12:00 noon').original # ==> "0 12 * * *"
|
424
|
+
p Fugit.parse('every day at 12:00 midnight').original # ==> "0 24 * * *"
|
425
|
+
p Fugit.parse('every day at 12:15 noon').original # ==> "15 12 * * *"
|
426
|
+
p Fugit.parse('every day at 12:15 midnight').original # ==> "15 24 * * *"
|
427
|
+
|
428
|
+
# as of fugit 1.7.2
|
429
|
+
```
|
430
|
+
|
431
|
+
|
402
432
|
## LICENSE
|
403
433
|
|
404
434
|
MIT, see [LICENSE.txt](LICENSE.txt)
|
data/fugit.gemspec
CHANGED
@@ -32,7 +32,7 @@ Time tools for flor and the floraison project. Cron parsing and occurrence compu
|
|
32
32
|
s.files = Dir[
|
33
33
|
'README.{md,txt}',
|
34
34
|
'CHANGELOG.{md,txt}', 'CREDITS.{md,txt}', 'LICENSE.{md,txt}',
|
35
|
-
'Makefile',
|
35
|
+
#'Makefile',
|
36
36
|
'lib/**/*.rb', #'spec/**/*.rb', 'test/**/*.rb',
|
37
37
|
"#{s.name}.gemspec",
|
38
38
|
]
|
data/lib/fugit/cron.rb
CHANGED
@@ -509,8 +509,6 @@ module Fugit
|
|
509
509
|
|
510
510
|
sta, edn, sla = r
|
511
511
|
|
512
|
-
sla = nil if sla == 1 # don't get fooled by /1
|
513
|
-
|
514
512
|
edn = max if sla && edn.nil?
|
515
513
|
|
516
514
|
return [ nil ] if sta.nil? && edn.nil? && sla.nil?
|
@@ -525,6 +523,8 @@ module Fugit
|
|
525
523
|
|
526
524
|
def range(min, max, sta, edn, sla)
|
527
525
|
|
526
|
+
return [ nil ] if sta == min && edn == max && sla == 1
|
527
|
+
|
528
528
|
fail ArgumentError.new(
|
529
529
|
'both start and end must be negative in ' +
|
530
530
|
{ min: min, max: max, sta: sta, edn: edn, sla: sla }.inspect
|
data/lib/fugit/nat.rb
CHANGED
@@ -176,6 +176,7 @@ module Fugit
|
|
176
176
|
#'every week on monday 18:23' => '23 18 * * 1',
|
177
177
|
#
|
178
178
|
# every month on the 1st
|
179
|
+
#
|
179
180
|
def on(i)
|
180
181
|
seq(:on, i, :_on, :on_objects)
|
181
182
|
end
|
@@ -196,12 +197,6 @@ module Fugit
|
|
196
197
|
seq(nil, i, :_in_or_on, '?', :tz)
|
197
198
|
end
|
198
199
|
|
199
|
-
def digital_hour(i)
|
200
|
-
rex(
|
201
|
-
:digital_hour, i,
|
202
|
-
/(2[0-4]|[0-1]?[0-9]):([0-5][0-9])([ \t]*(am|pm))?/i)
|
203
|
-
end
|
204
|
-
|
205
200
|
def ampm(i)
|
206
201
|
rex(:ampm, i, /[ \t]*(am|pm|noon|midday|midnight)/i)
|
207
202
|
end
|
@@ -209,6 +204,13 @@ module Fugit
|
|
209
204
|
rex(:dark, i, /[ \t]*dark/i)
|
210
205
|
end
|
211
206
|
|
207
|
+
def digital_h(i)
|
208
|
+
rex(:digital_h, i, /(2[0-4]|[0-1]?[0-9]):([0-5][0-9])/i)
|
209
|
+
end
|
210
|
+
def digital_hour(i)
|
211
|
+
seq(:digital_hour, i, :digital_h, :ampm, '?')
|
212
|
+
end
|
213
|
+
|
212
214
|
def simple_h(i)
|
213
215
|
rex(:simple_h, i, /#{(0..24).to_a.reverse.join('|')}/)
|
214
216
|
end
|
@@ -451,20 +453,24 @@ module Fugit
|
|
451
453
|
end
|
452
454
|
|
453
455
|
def rewrite_tz(t)
|
456
|
+
|
454
457
|
slot(:tz, t.string)
|
455
458
|
end
|
456
459
|
|
457
460
|
def rewrite_weekday(t)
|
461
|
+
|
458
462
|
Fugit::Cron::Parser::WEEKDS.index(t.string[0, 3].downcase)
|
459
463
|
end
|
460
464
|
|
461
465
|
def rewrite_weekdays(t)
|
466
|
+
|
462
467
|
#Raabro.pp(t, colours: true)
|
463
468
|
slot(:weekday, _rewrite_subs(t, :weekday))
|
464
469
|
end
|
465
470
|
alias rewrite_on_weekdays rewrite_weekdays
|
466
471
|
|
467
472
|
def rewrite_to_weekday(t)
|
473
|
+
|
468
474
|
wd0, wd1 = _rewrite_subs(t, :weekday)
|
469
475
|
#wd1 = 7 if wd1 == 0
|
470
476
|
slot(:weekday, "#{wd0}-#{wd1}")
|
@@ -475,21 +481,35 @@ module Fugit
|
|
475
481
|
slot(:monthday, "#{md0}-#{md1}")
|
476
482
|
end
|
477
483
|
|
478
|
-
|
479
|
-
|
480
|
-
|
481
|
-
|
484
|
+
# Try to follow https://en.wikipedia.org/wiki/12-hour_clock#Confusion_at_noon_and_midnight
|
485
|
+
#
|
486
|
+
def adjust_h(h, m, ap)
|
487
|
+
|
488
|
+
if ap == 'midnight' && h == 12
|
489
|
+
24
|
490
|
+
elsif ap == 'pm' && h < 12 # post meridian
|
491
|
+
h + 12
|
492
|
+
elsif ap == 'am' && h == 12 # ante meridian
|
493
|
+
0
|
494
|
+
else
|
495
|
+
h
|
496
|
+
end
|
482
497
|
end
|
483
498
|
|
484
499
|
def rewrite_digital_hour(t)
|
485
|
-
|
486
|
-
h, m =
|
500
|
+
|
501
|
+
h, m = t.sublookup(:digital_h).strinpd.split(':').collect(&:to_i)
|
502
|
+
ap = t.sublookup(:ampm)
|
503
|
+
h, m = adjust_h(h, m, ap && ap.strinpd), m
|
504
|
+
|
487
505
|
slot(:hm, h, m)
|
488
506
|
end
|
489
507
|
|
490
508
|
def rewrite_simple_hour(t)
|
509
|
+
|
491
510
|
h, ap = t.subgather(nil).collect(&:strinpd)
|
492
|
-
h = adjust_h(h, ap)
|
511
|
+
h = adjust_h(h.to_i, 0, ap)
|
512
|
+
|
493
513
|
slot(:hm, h, 0)
|
494
514
|
end
|
495
515
|
|
@@ -501,12 +521,10 @@ module Fugit
|
|
501
521
|
|
502
522
|
h = ht.strinp
|
503
523
|
m = mt ? mt.strinp : 0
|
504
|
-
#p [ 0, '-->', h, m ]
|
505
524
|
h = NHOURS[h]
|
506
525
|
m = NMINUTES[m] || m
|
507
|
-
#p [ 1, '-->', h, m ]
|
508
526
|
|
509
|
-
h = adjust_h(h, apt && apt.strinpd)
|
527
|
+
h = adjust_h(h, m, apt && apt.strinpd)
|
510
528
|
|
511
529
|
slot(:hm, h, m)
|
512
530
|
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.7.
|
4
|
+
version: 1.7.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Mettraux
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-11-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: raabro
|
@@ -83,7 +83,6 @@ files:
|
|
83
83
|
- CHANGELOG.md
|
84
84
|
- CREDITS.md
|
85
85
|
- LICENSE.txt
|
86
|
-
- Makefile
|
87
86
|
- README.md
|
88
87
|
- fugit.gemspec
|
89
88
|
- lib/fugit.rb
|
@@ -102,7 +101,7 @@ metadata:
|
|
102
101
|
bug_tracker_uri: https://github.com/floraison/fugit/issues
|
103
102
|
homepage_uri: https://github.com/floraison/fugit
|
104
103
|
source_code_uri: https://github.com/floraison/fugit
|
105
|
-
post_install_message:
|
104
|
+
post_install_message:
|
106
105
|
rdoc_options: []
|
107
106
|
require_paths:
|
108
107
|
- lib
|
@@ -118,7 +117,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
118
117
|
version: '0'
|
119
118
|
requirements: []
|
120
119
|
rubygems_version: 3.1.6
|
121
|
-
signing_key:
|
120
|
+
signing_key:
|
122
121
|
specification_version: 4
|
123
122
|
summary: time tools for flor
|
124
123
|
test_files: []
|
data/Makefile
DELETED
@@ -1,55 +0,0 @@
|
|
1
|
-
|
2
|
-
## gem tasks ##
|
3
|
-
|
4
|
-
NAME = \
|
5
|
-
$(shell ruby -e "s = eval(File.read(Dir['*.gemspec'][0])); puts s.name")
|
6
|
-
VERSION = \
|
7
|
-
$(shell ruby -e "s = eval(File.read(Dir['*.gemspec'][0])); puts s.version")
|
8
|
-
|
9
|
-
count_lines:
|
10
|
-
find lib -name "*.rb" | xargs cat | ruby -e "p STDIN.readlines.count { |l| l = l.strip; l[0, 1] != '#' && l != '' }"
|
11
|
-
find spec -name "*_spec.rb" | xargs cat | ruby -e "p STDIN.readlines.count { |l| l = l.strip; l[0, 1] != '#' && l != '' }"
|
12
|
-
cl: count_lines
|
13
|
-
|
14
|
-
scan:
|
15
|
-
scan lib/**/*.rb
|
16
|
-
|
17
|
-
gemspec_validate:
|
18
|
-
@echo "---"
|
19
|
-
ruby -e "s = eval(File.read(Dir['*.gemspec'].first)); p s.validate"
|
20
|
-
@echo "---"
|
21
|
-
|
22
|
-
name: gemspec_validate
|
23
|
-
@echo "$(NAME) $(VERSION)"
|
24
|
-
|
25
|
-
cw:
|
26
|
-
find lib -name "*.rb" -exec ruby -cw {} \;
|
27
|
-
|
28
|
-
build: gemspec_validate
|
29
|
-
gem build $(NAME).gemspec
|
30
|
-
mkdir -p pkg
|
31
|
-
mv $(NAME)-$(VERSION).gem pkg/
|
32
|
-
|
33
|
-
push: build
|
34
|
-
gem push --otp "$(OTP)" pkg/$(NAME)-$(VERSION).gem
|
35
|
-
|
36
|
-
spec:
|
37
|
-
bundle exec rspec
|
38
|
-
test: spec
|
39
|
-
|
40
|
-
|
41
|
-
## specific to project ##
|
42
|
-
|
43
|
-
info:
|
44
|
-
uname -a
|
45
|
-
bundle exec ruby -v
|
46
|
-
bundle exec ruby -Ilib -r et-orbi -e "EtOrbi._make_info"
|
47
|
-
|
48
|
-
tzones:
|
49
|
-
bundle exec ruby -r tzinfo -e "TZInfo::Timezone.all.each { |tz| p tz.name }"
|
50
|
-
#tzonesd:
|
51
|
-
# bundle exec ruby -r tzinfo -r tzinfo-data -e "::TZInfo::Timezone.all.each { |tz| p tz.name }"
|
52
|
-
|
53
|
-
|
54
|
-
.PHONY: count_lines scan gemspec_validate name cw build push spec info tzones
|
55
|
-
|