whenever 1.0.0 → 1.1.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/.github/dependabot.yml +10 -0
- data/.github/workflows/ci.yml +36 -0
- data/.gitignore +13 -4
- data/CHANGELOG.md +39 -0
- data/CONTRIBUTING.md +38 -0
- data/Gemfile +7 -0
- data/Makefile +5 -0
- data/README.md +8 -3
- data/bin/whenever +9 -4
- data/lib/whenever/capistrano/v3/tasks/whenever.rake +1 -1
- data/lib/whenever/command_line.rb +24 -8
- data/lib/whenever/setup.rb +3 -2
- data/lib/whenever/version.rb +1 -1
- data/lib/whenever.rb +8 -0
- data/test/functional/command_line_test.rb +1 -1
- data/test/functional/output_default_defined_jobs_test.rb +14 -0
- data/test/test_case.rb +2 -2
- data/test/test_helper.rb +1 -1
- data/whenever.gemspec +24 -24
- metadata +11 -79
- data/.travis.yml +0 -21
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7c3ac580addd44968bf92b9696fe79224f927baed4486fb25fe3dc818a1a38b1
|
|
4
|
+
data.tar.gz: 7bb85c3237b714796ec684f1986f45d7ccff17b4ac70f16e80bd7f4dd6322771
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 48e513b22609227c225613cd130a420aef870d2bf28b0ebe62ce87f4df0ea85b93163a017293e5578d0047ae0978bfd3cf67ae355d41613454ed895313f64e15
|
|
7
|
+
data.tar.gz: ce751f6670ef054ba52e30c6edc928a8df7a4b55e172cbbb913f9d012e81dc726bb8d28dfbbea01a988bdb0e8f5395dff326807dd935f419fa66136cbf06752d
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
name: Ruby CI
|
|
2
|
+
on:
|
|
3
|
+
pull_request:
|
|
4
|
+
push:
|
|
5
|
+
branches: [ main ]
|
|
6
|
+
jobs:
|
|
7
|
+
test:
|
|
8
|
+
runs-on: ${{ matrix.os }}
|
|
9
|
+
strategy:
|
|
10
|
+
matrix:
|
|
11
|
+
os: [ubuntu-latest, macos-latest]
|
|
12
|
+
ruby-version: [ '2.4', '2.5', '2.6', '2.7', '3.0', '3.0', '3.2', '3.3', '3.4', 'jruby-9', 'jruby-10']
|
|
13
|
+
# CRuby < 2.6 does not support macos-arm64, so test those on amd64 instead
|
|
14
|
+
exclude:
|
|
15
|
+
- os: macos-latest
|
|
16
|
+
ruby-version: '2.4'
|
|
17
|
+
- os: macos-latest
|
|
18
|
+
ruby-version: '2.5'
|
|
19
|
+
include:
|
|
20
|
+
- os: macos-13
|
|
21
|
+
ruby-version: '2.4'
|
|
22
|
+
- os: macos-13
|
|
23
|
+
ruby-version: '2.5'
|
|
24
|
+
steps:
|
|
25
|
+
- uses: actions/checkout@v5
|
|
26
|
+
name: Set up Ruby ${{ matrix.ruby-version }}
|
|
27
|
+
- uses: ruby/setup-ruby@v1
|
|
28
|
+
env:
|
|
29
|
+
JRUBY_OPTS: "--debug"
|
|
30
|
+
with:
|
|
31
|
+
ruby-version: ${{ matrix.ruby-version }}
|
|
32
|
+
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
|
|
33
|
+
- name: Run tests
|
|
34
|
+
run: bundle exec rake test
|
|
35
|
+
env:
|
|
36
|
+
JRUBY_OPTS: "--debug"
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
|
@@ -1,11 +1,50 @@
|
|
|
1
1
|
### unreleased
|
|
2
2
|
|
|
3
|
+
|
|
4
|
+
### 1.1.0 / Nov 21, 2025
|
|
5
|
+
|
|
6
|
+
* Splat whenever_roles when passing to roles https://github.com/javan/whenever/pull/777
|
|
7
|
+
|
|
8
|
+
* Update README.md https://github.com/javan/whenever/pull/785
|
|
9
|
+
|
|
10
|
+
* Clarify in README that tasks are run in parallel https://github.com/javan/whenever/pull/787
|
|
11
|
+
|
|
12
|
+
* Add note in README that cron is generated with the current user. [Raquel Queiroz] https://github.com/javan/whenever/pull/788
|
|
13
|
+
|
|
14
|
+
* Clarify options and warn about overwriting https://github.com/javan/whenever/pull/791
|
|
15
|
+
|
|
16
|
+
* Set the environment for cron jobs based off the currently set RAILS_ENV env variable. If RAILS_ENV is not set it defaults to production https://github.com/javan/whenever/pull/832
|
|
17
|
+
|
|
18
|
+
* [CHORE] DX: easify getting started contributing https://github.com/javan/whenever/pull/846
|
|
19
|
+
|
|
20
|
+
* CI: Replace travis-ci by Github-Actions https://github.com/javan/whenever/pull/847
|
|
21
|
+
|
|
22
|
+
* Added capability for updating cron without cmd https://github.com/javan/whenever/pull/515
|
|
23
|
+
|
|
24
|
+
* CI: Add Ruby 2.7-3.4 to the CI matrix https://github.com/javan/whenever/pull/858
|
|
25
|
+
|
|
26
|
+
* CI: Add dependabot config for bundler / github-actions https://github.com/javan/whenever/pull/862
|
|
27
|
+
|
|
28
|
+
* Handle crontab output to prevent SIGPIPE when running on CentOS Stream 10 https://github.com/javan/whenever/pull/861
|
|
29
|
+
|
|
30
|
+
* CI: Bump actions/checkout from 4 to 5 https://github.com/javan/whenever/pull/863
|
|
31
|
+
|
|
32
|
+
* Fix typo In test https://github.com/javan/whenever/pull/851
|
|
33
|
+
|
|
34
|
+
* Add changelog_uri to metadata to easily link from rubygems.org https://github.com/javan/whenever/pull/786
|
|
35
|
+
|
|
36
|
+
* Update gemspec format to match Bundler v3.x gemspec template https://github.com/javan/whenever/pull/864
|
|
37
|
+
|
|
38
|
+
* Add to require `whenever/version` https://github.com/javan/whenever/pull/865
|
|
39
|
+
|
|
3
40
|
### 1.0.0 / Jun 13, 2019
|
|
4
41
|
|
|
5
42
|
* First stable release per SemVer.
|
|
6
43
|
|
|
7
44
|
* Removes support for versions of Ruby which are no longer supported by the Ruby project.
|
|
8
45
|
|
|
46
|
+
* Bugfix: Splat `whenever_roles` when passing to `roles` to allow definition of multiple whenever roles [samuelokrent](https://github.com/javan/whenever/pull/777)
|
|
47
|
+
|
|
9
48
|
### 0.11.0 / April 23, 2019
|
|
10
49
|
|
|
11
50
|
* Add support for mapping Range objects to cron range syntax [Tim Craft](https://github.com/javan/whenever/pull/725)
|
data/CONTRIBUTING.md
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
## How to contribute to Whenever
|
|
2
|
+
|
|
3
|
+
#### **Did you find a bug?**
|
|
4
|
+
|
|
5
|
+
* **Ensure the bug was not already reported** by searching on GitHub under [Issues](https://github.com/your/whenever/issues).
|
|
6
|
+
|
|
7
|
+
* If you're unable to find an open issue addressing the problem, [open a new one](https://github.com/your/whenever/issues/new). Be sure to include a **title and clear description**, as much relevant information as possible, and a **code sample** or an **executable test case** demonstrating the expected behavior that is not occurring.
|
|
8
|
+
|
|
9
|
+
#### **Did you write a patch that fixes a bug?**
|
|
10
|
+
|
|
11
|
+
* Open a new GitHub pull request with the patch.
|
|
12
|
+
|
|
13
|
+
* Ensure the PR description clearly describes the problem and solution. Include the relevant issue number if applicable.
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
#### **Do you have questions about the source code?**
|
|
17
|
+
|
|
18
|
+
* Ask any question about how to use Whenever in the [whenever issues](https://github.com/javan/whenever/issues).
|
|
19
|
+
|
|
20
|
+
#### **Do you want to contribute to the Whenever documentation?**
|
|
21
|
+
|
|
22
|
+
Whenever is a volunteer effort. We encourage you to pitch in!
|
|
23
|
+
|
|
24
|
+
Thanks! :heart: :heart: :heart:
|
|
25
|
+
|
|
26
|
+
Whenever Team
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
## Setup
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
$ bundle install
|
|
33
|
+
```
|
|
34
|
+
## Run tests
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
$ make test
|
|
38
|
+
```
|
data/Gemfile
CHANGED
data/Makefile
ADDED
data/README.md
CHANGED
|
@@ -16,19 +16,21 @@ gem 'whenever', require: false
|
|
|
16
16
|
|
|
17
17
|
```sh
|
|
18
18
|
$ cd /apps/my-great-project
|
|
19
|
-
$ wheneverize .
|
|
19
|
+
$ bundle exec wheneverize .
|
|
20
20
|
```
|
|
21
21
|
|
|
22
22
|
This will create an initial `config/schedule.rb` file for you (as long as the config folder is already present in your project).
|
|
23
23
|
|
|
24
24
|
### The `whenever` command
|
|
25
25
|
|
|
26
|
+
The `whenever` command will simply show you your `schedule.rb` file converted to cron syntax. It does not read or write your crontab file.
|
|
27
|
+
|
|
26
28
|
```sh
|
|
27
29
|
$ cd /apps/my-great-project
|
|
28
|
-
$ whenever
|
|
30
|
+
$ bundle exec whenever
|
|
29
31
|
```
|
|
30
32
|
|
|
31
|
-
|
|
33
|
+
To write your crontab file for your jobs, execute this command:
|
|
32
34
|
|
|
33
35
|
```sh
|
|
34
36
|
$ whenever --update-crontab
|
|
@@ -41,6 +43,8 @@ $ whenever --load-file config/my_schedule.rb # set the schedule file
|
|
|
41
43
|
$ whenever --crontab-command 'sudo crontab' # override the crontab command
|
|
42
44
|
```
|
|
43
45
|
|
|
46
|
+
> Note: If you run the whenever --update-crontab without passing the --user attribute, cron will be generated by the current user. This mean tasks that needs other user permission will fail.
|
|
47
|
+
|
|
44
48
|
You can list installed cron jobs using `crontab -l`.
|
|
45
49
|
|
|
46
50
|
Run `whenever --help` for a complete list of options for selecting the schedule to use, setting variables in the schedule, etc.
|
|
@@ -49,6 +53,7 @@ Run `whenever --help` for a complete list of options for selecting the schedule
|
|
|
49
53
|
|
|
50
54
|
```ruby
|
|
51
55
|
every 3.hours do # 1.minute 1.day 1.week 1.month 1.year is also supported
|
|
56
|
+
# the following tasks are run in parallel (not in sequence)
|
|
52
57
|
runner "MyModel.some_process"
|
|
53
58
|
rake "my:rake:task"
|
|
54
59
|
command "/usr/bin/my_great_command"
|
data/bin/whenever
CHANGED
|
@@ -2,21 +2,26 @@
|
|
|
2
2
|
|
|
3
3
|
require 'optparse'
|
|
4
4
|
require 'whenever'
|
|
5
|
-
require 'whenever/version'
|
|
6
5
|
|
|
7
6
|
options = {}
|
|
8
7
|
|
|
9
8
|
OptionParser.new do |opts|
|
|
10
9
|
opts.banner = "Usage: whenever [options]"
|
|
11
|
-
opts.on('-i', '--update-crontab [
|
|
10
|
+
opts.on('-i', '--update-crontab [schedule]',
|
|
11
|
+
'Install the schedule to crontab.',
|
|
12
|
+
' Default: full path to schedule.rb file') do |identifier|
|
|
12
13
|
options[:update] = true
|
|
13
14
|
options[:identifier] = identifier if identifier
|
|
14
15
|
end
|
|
15
|
-
opts.on('-w', '--write-crontab [
|
|
16
|
+
opts.on('-w', '--write-crontab [schedule]',
|
|
17
|
+
'Clear current crontab, and overwrite it with only the given schedule.',
|
|
18
|
+
' Default: full path to schedule.rb file') do |identifier|
|
|
16
19
|
options[:write] = true
|
|
17
20
|
options[:identifier] = identifier if identifier
|
|
18
21
|
end
|
|
19
|
-
opts.on('-c', '--clear-crontab [
|
|
22
|
+
opts.on('-c', '--clear-crontab [schedule]',
|
|
23
|
+
'Uninstall the schedule from crontab.',
|
|
24
|
+
' Default: full path to schedule.rb file') do |identifier|
|
|
20
25
|
options[:clear] = true
|
|
21
26
|
options[:identifier] = identifier if identifier
|
|
22
27
|
end
|
|
@@ -2,7 +2,7 @@ namespace :whenever do
|
|
|
2
2
|
def setup_whenever_task(*args, &block)
|
|
3
3
|
args = Array(fetch(:whenever_command)) + args
|
|
4
4
|
|
|
5
|
-
on roles fetch(:whenever_roles) do |host|
|
|
5
|
+
on roles *fetch(:whenever_roles) do |host|
|
|
6
6
|
args_for_host = block_given? ? args + Array(yield(host)) : args
|
|
7
7
|
within fetch(:whenever_path) do
|
|
8
8
|
with fetch(:whenever_command_environment_variables) do
|
|
@@ -13,20 +13,21 @@ module Whenever
|
|
|
13
13
|
@options[:file] ||= 'config/schedule.rb'
|
|
14
14
|
@options[:cut] ||= 0
|
|
15
15
|
@options[:identifier] ||= default_identifier
|
|
16
|
+
@options[:console] = true if @options[:console].nil?
|
|
16
17
|
|
|
17
18
|
if !File.exist?(@options[:file]) && @options[:clear].nil?
|
|
18
19
|
warn("[fail] Can't find file: #{@options[:file]}")
|
|
19
|
-
|
|
20
|
+
return_or_exit(false)
|
|
20
21
|
end
|
|
21
22
|
|
|
22
23
|
if [@options[:update], @options[:write], @options[:clear]].compact.length > 1
|
|
23
24
|
warn("[fail] Can only update, write or clear. Choose one.")
|
|
24
|
-
|
|
25
|
+
return_or_exit(false)
|
|
25
26
|
end
|
|
26
27
|
|
|
27
28
|
unless @options[:cut].to_s =~ /[0-9]*/
|
|
28
29
|
warn("[fail] Can't cut negative lines from the crontab #{options[:cut]}")
|
|
29
|
-
|
|
30
|
+
return_or_exit(false)
|
|
30
31
|
end
|
|
31
32
|
@options[:cut] = @options[:cut].to_i
|
|
32
33
|
|
|
@@ -42,7 +43,7 @@ module Whenever
|
|
|
42
43
|
puts Whenever.cron(@options)
|
|
43
44
|
puts "## [message] Above is your schedule file converted to cron syntax; your crontab file was not updated."
|
|
44
45
|
puts "## [message] Run `whenever --help' for more options."
|
|
45
|
-
|
|
46
|
+
return_or_exit(true)
|
|
46
47
|
end
|
|
47
48
|
end
|
|
48
49
|
|
|
@@ -77,6 +78,8 @@ module Whenever
|
|
|
77
78
|
IO.popen(command.join(' '), 'r+') do |crontab|
|
|
78
79
|
crontab.write(contents)
|
|
79
80
|
crontab.close_write
|
|
81
|
+
stdout = crontab.read
|
|
82
|
+
puts stdout unless stdout == ''
|
|
80
83
|
end
|
|
81
84
|
|
|
82
85
|
success = $?.exitstatus.zero?
|
|
@@ -85,10 +88,10 @@ module Whenever
|
|
|
85
88
|
action = 'written' if @options[:write]
|
|
86
89
|
action = 'updated' if @options[:update]
|
|
87
90
|
puts "[write] crontab file #{action}"
|
|
88
|
-
|
|
91
|
+
return_or_exit(true)
|
|
89
92
|
else
|
|
90
93
|
warn "[fail] Couldn't write crontab; try running `whenever' with no options to ensure your schedule file is valid."
|
|
91
|
-
|
|
94
|
+
return_or_exit(false)
|
|
92
95
|
end
|
|
93
96
|
end
|
|
94
97
|
|
|
@@ -96,10 +99,10 @@ module Whenever
|
|
|
96
99
|
# Check for unopened or unclosed identifier blocks
|
|
97
100
|
if read_crontab =~ Regexp.new("^#{comment_open_regex}\s*$") && (read_crontab =~ Regexp.new("^#{comment_close_regex}\s*$")).nil?
|
|
98
101
|
warn "[fail] Unclosed indentifier; Your crontab file contains '#{comment_open(false)}', but no '#{comment_close(false)}'"
|
|
99
|
-
|
|
102
|
+
return_or_exit(false)
|
|
100
103
|
elsif (read_crontab =~ Regexp.new("^#{comment_open_regex}\s*$")).nil? && read_crontab =~ Regexp.new("^#{comment_close_regex}\s*$")
|
|
101
104
|
warn "[fail] Unopened indentifier; Your crontab file contains '#{comment_close(false)}', but no '#{comment_open(false)}'"
|
|
102
|
-
|
|
105
|
+
return_or_exit(false)
|
|
103
106
|
end
|
|
104
107
|
|
|
105
108
|
# If an existing identifier block is found, replace it with the new cron entries
|
|
@@ -151,5 +154,18 @@ module Whenever
|
|
|
151
154
|
def timestamp_regex
|
|
152
155
|
" at: \\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2} ([+-]\\d{4}|UTC)"
|
|
153
156
|
end
|
|
157
|
+
|
|
158
|
+
private
|
|
159
|
+
|
|
160
|
+
def return_or_exit success
|
|
161
|
+
result = 1
|
|
162
|
+
result = 0 if success
|
|
163
|
+
if @options[:console]
|
|
164
|
+
exit(result)
|
|
165
|
+
else
|
|
166
|
+
result
|
|
167
|
+
end
|
|
168
|
+
end
|
|
169
|
+
|
|
154
170
|
end
|
|
155
171
|
end
|
data/lib/whenever/setup.rb
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
# Environment variable defaults to RAILS_ENV
|
|
2
2
|
set :environment_variable, "RAILS_ENV"
|
|
3
|
-
# Environment defaults to
|
|
4
|
-
set
|
|
3
|
+
# Environment defaults to the value of RAILS_ENV in the current environment if
|
|
4
|
+
# it's set or production otherwise
|
|
5
|
+
set :environment, ENV.fetch("RAILS_ENV", "production")
|
|
5
6
|
# Path defaults to the directory `whenever` was run from
|
|
6
7
|
set :path, Whenever.path
|
|
7
8
|
|
data/lib/whenever/version.rb
CHANGED
data/lib/whenever.rb
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
require "whenever/version"
|
|
1
2
|
require 'whenever/numeric'
|
|
2
3
|
require 'whenever/numeric_seconds'
|
|
3
4
|
require 'whenever/job_list'
|
|
@@ -31,4 +32,11 @@ module Whenever
|
|
|
31
32
|
def self.bundler?
|
|
32
33
|
File.exist?(File.join(path, 'Gemfile'))
|
|
33
34
|
end
|
|
35
|
+
|
|
36
|
+
def self.update_cron options
|
|
37
|
+
o = { 'update' => true, 'console' => false}
|
|
38
|
+
o.merge! options if options
|
|
39
|
+
Whenever::CommandLine.execute o
|
|
40
|
+
end
|
|
41
|
+
|
|
34
42
|
end
|
|
@@ -398,7 +398,7 @@ class EnvironmentOverwrittenWithoutValueTest < Whenever::TestCase
|
|
|
398
398
|
file
|
|
399
399
|
end
|
|
400
400
|
|
|
401
|
-
should "output the runner using the original
|
|
401
|
+
should "output the runner using the original environment" do
|
|
402
402
|
assert_match two_hours + %( cd /silly/path && bundle exec script/runner -e silly 'blahblah'), @output
|
|
403
403
|
end
|
|
404
404
|
end
|
|
@@ -209,6 +209,20 @@ class OutputDefaultDefinedJobsTest < Whenever::TestCase
|
|
|
209
209
|
assert_match two_hours + ' cd /some/other/path && RAILS_ENV=production bundle exec rake blahblah --silent', output
|
|
210
210
|
end
|
|
211
211
|
|
|
212
|
+
test "A rake command that uses the default environment variable when RAILS_ENV is set" do
|
|
213
|
+
ENV.expects(:fetch).with("RAILS_ENV", "production").returns("development")
|
|
214
|
+
output = Whenever.cron \
|
|
215
|
+
<<-file
|
|
216
|
+
set :job_template, nil
|
|
217
|
+
set :path, '/my/path'
|
|
218
|
+
every 2.hours do
|
|
219
|
+
rake "blahblah"
|
|
220
|
+
end
|
|
221
|
+
file
|
|
222
|
+
|
|
223
|
+
assert_match two_hours + ' cd /my/path && RAILS_ENV=development bundle exec rake blahblah --silent', output
|
|
224
|
+
end
|
|
225
|
+
|
|
212
226
|
test "A rake command that sets the environment variable" do
|
|
213
227
|
output = Whenever.cron \
|
|
214
228
|
<<-file
|
data/test/test_case.rb
CHANGED
|
@@ -2,10 +2,10 @@ module Whenever
|
|
|
2
2
|
require 'minitest/autorun'
|
|
3
3
|
begin
|
|
4
4
|
# 2.0.0
|
|
5
|
-
class TestCase <
|
|
5
|
+
class TestCase < Minitest::Test; end
|
|
6
6
|
rescue NameError
|
|
7
7
|
# 1.9.3
|
|
8
|
-
class TestCase <
|
|
8
|
+
class TestCase < Minitest::Unit::TestCase; end
|
|
9
9
|
end
|
|
10
10
|
|
|
11
11
|
|
data/test/test_helper.rb
CHANGED
data/whenever.gemspec
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
#
|
|
2
|
-
$:.push File.expand_path("../lib", __FILE__)
|
|
3
|
-
require "whenever/version"
|
|
1
|
+
# frozen_string_literal: true
|
|
4
2
|
|
|
5
|
-
|
|
6
|
-
s.name = "whenever"
|
|
7
|
-
s.version = Whenever::VERSION
|
|
8
|
-
s.platform = Gem::Platform::RUBY
|
|
9
|
-
s.authors = ["Javan Makhmali"]
|
|
10
|
-
s.email = ["javan@javan.us"]
|
|
11
|
-
s.license = "MIT"
|
|
12
|
-
s.homepage = "https://github.com/javan/whenever"
|
|
13
|
-
s.summary = %q{Cron jobs in ruby.}
|
|
14
|
-
s.description = %q{Clean ruby syntax for writing and deploying cron jobs.}
|
|
15
|
-
s.files = `git ls-files`.split("\n")
|
|
16
|
-
s.test_files = `git ls-files -- test/{functional,unit}/*`.split("\n")
|
|
17
|
-
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
|
18
|
-
s.require_paths = ["lib"]
|
|
19
|
-
s.required_ruby_version = ">= 1.9.3"
|
|
3
|
+
require_relative "lib/whenever/version"
|
|
20
4
|
|
|
21
|
-
|
|
5
|
+
Gem::Specification.new do |spec|
|
|
6
|
+
spec.name = "whenever"
|
|
7
|
+
spec.version = Whenever::VERSION
|
|
8
|
+
spec.platform = Gem::Platform::RUBY
|
|
9
|
+
spec.authors = ["Javan Makhmali"]
|
|
10
|
+
spec.email = ["javan@javan.us"]
|
|
22
11
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
12
|
+
spec.summary = %q{Cron jobs in ruby.}
|
|
13
|
+
spec.description = %q{Clean ruby syntax for writing and deploying cron jobs.}
|
|
14
|
+
spec.homepage = "https://github.com/javan/whenever"
|
|
15
|
+
spec.license = "MIT"
|
|
16
|
+
spec.required_ruby_version = ">= 1.9.3"
|
|
17
|
+
|
|
18
|
+
spec.metadata["homepage_uri"] = spec.homepage
|
|
19
|
+
spec.metadata["source_code_uri"] = "https://github.com/javan/whenever"
|
|
20
|
+
spec.metadata["changelog_uri"] = "https://github.com/javan/whenever/blob/main/CHANGELOG.md"
|
|
21
|
+
|
|
22
|
+
spec.files = `git ls-files`.split("\n")
|
|
23
|
+
spec.test_files = `git ls-files -- test/{functional,unit}/*`.split("\n")
|
|
24
|
+
spec.executables = spec.files.grep(%r{\Abin/}) { |f| File.basename(f) }
|
|
25
|
+
spec.require_paths = ["lib"]
|
|
26
|
+
|
|
27
|
+
spec.add_dependency "chronic", ">= 0.6.3"
|
|
28
28
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: whenever
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.1.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Javan Makhmali
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: chronic
|
|
@@ -24,76 +23,6 @@ dependencies:
|
|
|
24
23
|
- - ">="
|
|
25
24
|
- !ruby/object:Gem::Version
|
|
26
25
|
version: 0.6.3
|
|
27
|
-
- !ruby/object:Gem::Dependency
|
|
28
|
-
name: bundler
|
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
|
30
|
-
requirements:
|
|
31
|
-
- - ">="
|
|
32
|
-
- !ruby/object:Gem::Version
|
|
33
|
-
version: '0'
|
|
34
|
-
type: :development
|
|
35
|
-
prerelease: false
|
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
-
requirements:
|
|
38
|
-
- - ">="
|
|
39
|
-
- !ruby/object:Gem::Version
|
|
40
|
-
version: '0'
|
|
41
|
-
- !ruby/object:Gem::Dependency
|
|
42
|
-
name: rake
|
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
|
44
|
-
requirements:
|
|
45
|
-
- - ">="
|
|
46
|
-
- !ruby/object:Gem::Version
|
|
47
|
-
version: '0'
|
|
48
|
-
type: :development
|
|
49
|
-
prerelease: false
|
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
-
requirements:
|
|
52
|
-
- - ">="
|
|
53
|
-
- !ruby/object:Gem::Version
|
|
54
|
-
version: '0'
|
|
55
|
-
- !ruby/object:Gem::Dependency
|
|
56
|
-
name: mocha
|
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
|
58
|
-
requirements:
|
|
59
|
-
- - ">="
|
|
60
|
-
- !ruby/object:Gem::Version
|
|
61
|
-
version: 0.9.5
|
|
62
|
-
type: :development
|
|
63
|
-
prerelease: false
|
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
-
requirements:
|
|
66
|
-
- - ">="
|
|
67
|
-
- !ruby/object:Gem::Version
|
|
68
|
-
version: 0.9.5
|
|
69
|
-
- !ruby/object:Gem::Dependency
|
|
70
|
-
name: minitest
|
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
|
72
|
-
requirements:
|
|
73
|
-
- - ">="
|
|
74
|
-
- !ruby/object:Gem::Version
|
|
75
|
-
version: '0'
|
|
76
|
-
type: :development
|
|
77
|
-
prerelease: false
|
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
-
requirements:
|
|
80
|
-
- - ">="
|
|
81
|
-
- !ruby/object:Gem::Version
|
|
82
|
-
version: '0'
|
|
83
|
-
- !ruby/object:Gem::Dependency
|
|
84
|
-
name: appraisal
|
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
|
86
|
-
requirements:
|
|
87
|
-
- - ">="
|
|
88
|
-
- !ruby/object:Gem::Version
|
|
89
|
-
version: '0'
|
|
90
|
-
type: :development
|
|
91
|
-
prerelease: false
|
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
-
requirements:
|
|
94
|
-
- - ">="
|
|
95
|
-
- !ruby/object:Gem::Version
|
|
96
|
-
version: '0'
|
|
97
26
|
description: Clean ruby syntax for writing and deploying cron jobs.
|
|
98
27
|
email:
|
|
99
28
|
- javan@javan.us
|
|
@@ -103,12 +32,15 @@ executables:
|
|
|
103
32
|
extensions: []
|
|
104
33
|
extra_rdoc_files: []
|
|
105
34
|
files:
|
|
35
|
+
- ".github/dependabot.yml"
|
|
36
|
+
- ".github/workflows/ci.yml"
|
|
106
37
|
- ".gitignore"
|
|
107
|
-
- ".travis.yml"
|
|
108
38
|
- Appraisals
|
|
109
39
|
- CHANGELOG.md
|
|
40
|
+
- CONTRIBUTING.md
|
|
110
41
|
- Gemfile
|
|
111
42
|
- LICENSE
|
|
43
|
+
- Makefile
|
|
112
44
|
- README.md
|
|
113
45
|
- Rakefile
|
|
114
46
|
- bin/whenever
|
|
@@ -152,8 +84,10 @@ files:
|
|
|
152
84
|
homepage: https://github.com/javan/whenever
|
|
153
85
|
licenses:
|
|
154
86
|
- MIT
|
|
155
|
-
metadata:
|
|
156
|
-
|
|
87
|
+
metadata:
|
|
88
|
+
homepage_uri: https://github.com/javan/whenever
|
|
89
|
+
source_code_uri: https://github.com/javan/whenever
|
|
90
|
+
changelog_uri: https://github.com/javan/whenever/blob/main/CHANGELOG.md
|
|
157
91
|
rdoc_options: []
|
|
158
92
|
require_paths:
|
|
159
93
|
- lib
|
|
@@ -168,9 +102,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
168
102
|
- !ruby/object:Gem::Version
|
|
169
103
|
version: '0'
|
|
170
104
|
requirements: []
|
|
171
|
-
|
|
172
|
-
rubygems_version: 2.7.3
|
|
173
|
-
signing_key:
|
|
105
|
+
rubygems_version: 3.6.9
|
|
174
106
|
specification_version: 4
|
|
175
107
|
summary: Cron jobs in ruby.
|
|
176
108
|
test_files:
|
data/.travis.yml
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
language: ruby
|
|
2
|
-
|
|
3
|
-
before_install:
|
|
4
|
-
- gem install bundler
|
|
5
|
-
- unset _JAVA_OPTIONS
|
|
6
|
-
rvm:
|
|
7
|
-
- 2.4.6
|
|
8
|
-
- 2.5.5
|
|
9
|
-
- 2.6.3
|
|
10
|
-
- jruby-9.2.6.0
|
|
11
|
-
|
|
12
|
-
gemfile:
|
|
13
|
-
- gemfiles/activesupport4.1.gemfile
|
|
14
|
-
- gemfiles/activesupport4.2.gemfile
|
|
15
|
-
- gemfiles/activesupport5.0.gemfile
|
|
16
|
-
- gemfiles/activesupport5.1.gemfile
|
|
17
|
-
- gemfiles/activesupport5.2.gemfile
|
|
18
|
-
|
|
19
|
-
env:
|
|
20
|
-
global:
|
|
21
|
-
- JRUBY_OPTS=--debug
|