ruby-clock 2.0.0.beta9 → 2.0.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 +4 -4
- data/CHANGELOG.md +3 -3
- data/README.md +21 -1
- data/exe/clock +13 -0
- data/lib/ruby-clock/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 20fc4e914b706c818238f8d45a6d81ff650e18ae8fe90b47a9f818e28871bbc6
|
4
|
+
data.tar.gz: b0d23fded8dfd9981bedcfcaf9300376c615f53ce782a6f9e1a807b3e054c324
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 840663b99bf1d803274dc28d7b72882958b1e99fd93b7039fe249192fcb510b07fd894b5e5b404de1153a53095763bd0aaaf1c0a16f20b225187477a3887fab9
|
7
|
+
data.tar.gz: 7ba7a882f7e6cb6ed115d88769d433d835e9b8782c5e9272436ff28956594cd9d8ae995ea54e59e86fbf3daf4848b0eca30a60b20933a16401d0f21cbb6e24a4
|
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
## 2.0.0
|
1
|
+
## 2.0.0
|
2
2
|
|
3
3
|
### Features
|
4
4
|
* The way the [rails app reloader](https://guides.rubyonrails.org/threading_and_code_execution.html)
|
@@ -20,6 +20,7 @@
|
|
20
20
|
* job slugs based on job identifier, e.g. "Widget Co. Weekly Reports" -> "widget-co-weekly-reports"
|
21
21
|
* `--check-slug-uniqueness`
|
22
22
|
* `--environment-and-syntax-check`
|
23
|
+
* `--generate-dummy-crontab` to facilitate visualization with cronv
|
23
24
|
|
24
25
|
### Anti-Features
|
25
26
|
* ruby 3.0 is now the minimum version
|
@@ -29,7 +30,6 @@
|
|
29
30
|
* Code reorganization so there are no unnecessary methods in top-level `Kernel` namespace
|
30
31
|
* top-level DSL methods are now implemented with refinements, so they don't polute other code
|
31
32
|
|
32
|
-
|
33
33
|
### Migrating from ruby-clock version 1 to version 2
|
34
34
|
* The minimum ruby version is 3.0
|
35
35
|
* The top of every Clockfile must begin with `using RubyClock::DSL`
|
@@ -38,8 +38,8 @@
|
|
38
38
|
* Your existing Clockfile with `schedule.foo` invocations will still work, but you now have the option to use
|
39
39
|
`every`, `cron`, and `on_error` at the top-level, without referencing `schedule`.
|
40
40
|
* You now have the option of catching and reporting errors encountered when parsing the Clockfile.
|
41
|
-
* There is no longer a need to have a binstub in rails. You can delete bin/clock from your app.
|
42
41
|
* remove the `posix-spawn` gem from your project
|
42
|
+
* There is no longer a need to have a binstub in rails. You can delete bin/clock from your app.
|
43
43
|
* The invocations (in Procfile, or wherever else you start ruby-clock) should change from
|
44
44
|
|
45
45
|
bundle exec rails runner bin/clock
|
data/README.md
CHANGED
@@ -33,7 +33,7 @@ ruby >= 3.0 is required.
|
|
33
33
|
Add these lines to your application's Gemfile:
|
34
34
|
|
35
35
|
```ruby
|
36
|
-
gem 'ruby-clock', '2.0.0.
|
36
|
+
gem 'ruby-clock', '2.0.0.beta10'
|
37
37
|
```
|
38
38
|
|
39
39
|
And then execute:
|
@@ -164,6 +164,26 @@ assert(system("bundle exec --check-slug-uniqueness")) # loads Clockfile
|
|
164
164
|
assert(system("bundle exec --check-slug-uniqueness clock/weekly.rb clock/daily.rb")) # load specific files
|
165
165
|
```
|
166
166
|
|
167
|
+
#### Visualization with cronv
|
168
|
+
|
169
|
+
Using the `--generate-dummy-crontab` flag you can visualize your schedule with [cronv](https://github.com/takumakanari/cronv).
|
170
|
+
For your jobs with cron-style schedules, it will generate a dummy crontab file that can be ingested by cronv.
|
171
|
+
For your jobs with "Every X seconds" schedules, a comment will be made in the file and they will not be vizualized.
|
172
|
+
|
173
|
+
```console
|
174
|
+
## install go
|
175
|
+
brew install go # homebrew
|
176
|
+
sudo port install go # macports
|
177
|
+
|
178
|
+
## install cronv https://github.com/takumakanari/cronv#go-install
|
179
|
+
go install -v github.com/takumakanari/cronv/cronv@0.4.5
|
180
|
+
|
181
|
+
## generate dummy crontab
|
182
|
+
bundle exec clock --generate-dummy-crontab Clockfile ../clock/daily.rb ../clock/weekly.rb > dummycron.txt
|
183
|
+
## IMPORTANT: open dummycron.txt in an editor and remove the boot startup message cruft from the top
|
184
|
+
cat dummycron.txt | ~/go/bin/cronv --duration=1d --title='Clock Jobs' --width=50 -o ./my_cron_schedule.html
|
185
|
+
open my_cron_schedule.html
|
186
|
+
```
|
167
187
|
|
168
188
|
## More Config and Capabilities
|
169
189
|
|
data/exe/clock
CHANGED
@@ -11,12 +11,15 @@ RubyClock.instance.add_rails_executor_to_around_actions
|
|
11
11
|
|
12
12
|
check_syntax = false
|
13
13
|
check_slug_uniqueness = false
|
14
|
+
generate_dummy_crontab = false
|
14
15
|
if '--' == ARGV[0][0..1]
|
15
16
|
case ARGV[0]
|
16
17
|
when '--environment-and-syntax-check'
|
17
18
|
check_syntax = true
|
18
19
|
when '--check-slug-uniqueness'
|
19
20
|
check_slug_uniqueness = true
|
21
|
+
when '--generate-dummy-crontab'
|
22
|
+
generate_dummy_crontab = true
|
20
23
|
else
|
21
24
|
raise 'unknown option'
|
22
25
|
end
|
@@ -67,6 +70,16 @@ elsif check_slug_uniqueness
|
|
67
70
|
else
|
68
71
|
puts "✨ All Slugs Are Unique ✨"
|
69
72
|
end
|
73
|
+
elsif generate_dummy_crontab
|
74
|
+
text = ''
|
75
|
+
RubyClock.instance.schedule.jobs.each do |j|
|
76
|
+
if j.respond_to?(:cron_line)
|
77
|
+
text << "#{j.cron_line.original} #{j.slug}\n"
|
78
|
+
else
|
79
|
+
text << "# every-#{j.frequency}-seconds #{j.slug}\n"
|
80
|
+
end
|
81
|
+
end
|
82
|
+
puts text
|
70
83
|
else
|
71
84
|
RubyClock.instance.run_jobs
|
72
85
|
end
|
data/lib/ruby-clock/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-clock
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.0
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Bachir
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-08-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rufus-scheduler
|
@@ -272,9 +272,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
272
272
|
version: 3.0.0
|
273
273
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
274
274
|
requirements:
|
275
|
-
- - "
|
275
|
+
- - ">="
|
276
276
|
- !ruby/object:Gem::Version
|
277
|
-
version:
|
277
|
+
version: '0'
|
278
278
|
requirements: []
|
279
279
|
rubygems_version: 3.3.7
|
280
280
|
signing_key:
|