whenever 0.10.0 → 0.11.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 +5 -5
- data/.travis.yml +32 -5
- data/Appraisals +19 -0
- data/CHANGELOG.md +12 -0
- data/Gemfile +1 -1
- data/README.md +16 -12
- data/gemfiles/activesupport4.1.gemfile +3 -1
- data/gemfiles/activesupport4.2.gemfile +3 -1
- data/gemfiles/activesupport5.0.gemfile +7 -0
- data/gemfiles/activesupport5.1.gemfile +7 -0
- data/gemfiles/activesupport5.2.gemfile +7 -0
- data/lib/whenever/capistrano/v3/tasks/whenever.rake +2 -2
- data/lib/whenever/command_line.rb +1 -1
- data/lib/whenever/cron.rb +16 -9
- data/lib/whenever/numeric.rb +1 -1
- data/lib/whenever/version.rb +1 -1
- data/test/unit/cron_test.rb +48 -0
- data/whenever.gemspec +1 -0
- metadata +21 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: be14a26bff8c588b4e5828582a552f4a10e056b08581f4d28b2f44ae6726c694
|
4
|
+
data.tar.gz: 6e8db042c4c070b52f85bf958b73673b2445663ca102ecb306ac4aa654e8cb37
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 30fc22be58c8cccdf2da369fd9103aedd5c4da0ac7abb6736abf166958c5d79f67029634a0ceb36aa0babcf66c41e092ae4a965b17b1459c2f22cc4c655e9abf
|
7
|
+
data.tar.gz: ebfb02153d52c3df836e50f3ef286ebdaefad889fded4d35664afbe70a46e6910842d96a83f8df6006adadc1b30c2b96f2d17deb3c7c8cf01cfab8999a991cc3
|
data/.travis.yml
CHANGED
@@ -2,20 +2,47 @@ language: ruby
|
|
2
2
|
|
3
3
|
before_install:
|
4
4
|
- gem install bundler
|
5
|
-
|
5
|
+
- unset _JAVA_OPTIONS
|
6
6
|
rvm:
|
7
7
|
- 1.9.3
|
8
8
|
- 2.0.0
|
9
9
|
- 2.1.10
|
10
|
-
- 2.2.
|
11
|
-
- 2.3.
|
12
|
-
- 2.4.
|
10
|
+
- 2.2.10
|
11
|
+
- 2.3.8
|
12
|
+
- 2.4.5
|
13
|
+
- 2.5.3
|
13
14
|
- jruby-9.1.9.0
|
15
|
+
matrix:
|
16
|
+
exclude:
|
17
|
+
# activesupport 5 only supports ruby 2.2.2 and later
|
18
|
+
- gemfile: gemfiles/activesupport5.0.gemfile
|
19
|
+
rvm: 1.9.3
|
20
|
+
- gemfile: gemfiles/activesupport5.1.gemfile
|
21
|
+
rvm: 1.9.3
|
22
|
+
- gemfile: gemfiles/activesupport5.2.gemfile
|
23
|
+
rvm: 1.9.3
|
24
|
+
|
25
|
+
- gemfile: gemfiles/activesupport5.0.gemfile
|
26
|
+
rvm: 2.0.0
|
27
|
+
- gemfile: gemfiles/activesupport5.1.gemfile
|
28
|
+
rvm: 2.0.0
|
29
|
+
- gemfile: gemfiles/activesupport5.2.gemfile
|
30
|
+
rvm: 2.0.0
|
31
|
+
|
32
|
+
- gemfile: gemfiles/activesupport5.0.gemfile
|
33
|
+
rvm: 2.1.10
|
34
|
+
- gemfile: gemfiles/activesupport5.1.gemfile
|
35
|
+
rvm: 2.1.10
|
36
|
+
- gemfile: gemfiles/activesupport5.2.gemfile
|
37
|
+
rvm: 2.1.10
|
14
38
|
|
15
39
|
gemfile:
|
16
|
-
- Gemfile
|
17
40
|
- gemfiles/activesupport4.1.gemfile
|
18
41
|
- gemfiles/activesupport4.2.gemfile
|
42
|
+
- gemfiles/activesupport5.0.gemfile
|
43
|
+
- gemfiles/activesupport5.1.gemfile
|
44
|
+
- gemfiles/activesupport5.2.gemfile
|
45
|
+
|
19
46
|
env:
|
20
47
|
global:
|
21
48
|
- JRUBY_OPTS=--debug
|
data/Appraisals
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
appraise 'activesupport4.1' do
|
2
|
+
gem "activesupport", "~> 4.1.0"
|
3
|
+
end
|
4
|
+
|
5
|
+
appraise 'activesupport4.2' do
|
6
|
+
gem "activesupport", "~> 4.2.0"
|
7
|
+
end
|
8
|
+
|
9
|
+
appraise 'activesupport5.0' do
|
10
|
+
gem "activesupport", "~> 5.0.0"
|
11
|
+
end
|
12
|
+
|
13
|
+
appraise 'activesupport5.1' do
|
14
|
+
gem "activesupport", "~> 5.1.0"
|
15
|
+
end
|
16
|
+
|
17
|
+
appraise 'activesupport5.2' do
|
18
|
+
gem "activesupport", "~> 5.2.0beta2"
|
19
|
+
end
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,15 @@
|
|
1
1
|
### develop
|
2
2
|
|
3
|
+
### 0.11.0 / April 23, 2019
|
4
|
+
|
5
|
+
* Add support for mapping Range objects to cron range syntax [Tim Craft](https://github.com/javan/whenever/pull/725)
|
6
|
+
|
7
|
+
* Bugfix: Avoid modifying Capistrano `default_env` when setting the whenever environment. [ta1kt0me](https://github.com/javan/whenever/pull/728)
|
8
|
+
|
9
|
+
* Enable to execute whenever's task independently without setting :release_path or :whenever_path [ta1kt0me](https://github.com/javan/whenever/pull/729)
|
10
|
+
|
11
|
+
* Make error message clearer when parsing cron syntax fails due to a trailing space [ignisf](https://github.com/javan/whenever/pull/744)
|
12
|
+
|
3
13
|
### 0.10.0 / November 19, 2017
|
4
14
|
|
5
15
|
* Modify wheneverize to allow for the creating of 'config' directory when not present
|
@@ -14,6 +24,8 @@
|
|
14
24
|
|
15
25
|
* Allow configuring an alternative schedule file in Capistrano. [Shinichi Okamoto](https://github.com/javan/whenever/pull/666)
|
16
26
|
|
27
|
+
* Add customizing email recipient option with the MAILTO environment variable. [Chikahiro Tokoro](https://github.com/javan/whenever/pull/678)
|
28
|
+
|
17
29
|
### 0.9.7 / June 14, 2016
|
18
30
|
|
19
31
|
* Restore compatibility with Capistrano v3; it has a bug which we have to work around [Ben Langfeld, Chris Gunther, Shohei Yamasaki]
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -9,7 +9,7 @@ $ gem install whenever
|
|
9
9
|
Or with Bundler in your Gemfile.
|
10
10
|
|
11
11
|
```ruby
|
12
|
-
gem 'whenever', :
|
12
|
+
gem 'whenever', require: false
|
13
13
|
```
|
14
14
|
|
15
15
|
### Getting started
|
@@ -54,15 +54,19 @@ every 3.hours do # 1.minute 1.day 1.week 1.month 1.year is also supported
|
|
54
54
|
command "/usr/bin/my_great_command"
|
55
55
|
end
|
56
56
|
|
57
|
-
every 1.day, :
|
57
|
+
every 1.day, at: '4:30 am' do
|
58
58
|
runner "MyModel.task_to_run_at_four_thirty_in_the_morning"
|
59
59
|
end
|
60
60
|
|
61
|
+
every 1.day, at: ['4:30 am', '6:00 pm'] do
|
62
|
+
runner "Mymodel.task_to_run_in_two_times_every_day"
|
63
|
+
end
|
64
|
+
|
61
65
|
every :hour do # Many shortcuts available: :hour, :day, :month, :year, :reboot
|
62
66
|
runner "SomeModel.ladeeda"
|
63
67
|
end
|
64
68
|
|
65
|
-
every :sunday, :
|
69
|
+
every :sunday, at: '12pm' do # Use any day of the week or :weekend, :weekday
|
66
70
|
runner "Task.do_something_great"
|
67
71
|
end
|
68
72
|
|
@@ -72,7 +76,7 @@ end
|
|
72
76
|
|
73
77
|
# run this task only on servers with the :app role in Capistrano
|
74
78
|
# see Capistrano roles section below
|
75
|
-
every :day, :
|
79
|
+
every :day, at: '12:20am', roles: [:app] do
|
76
80
|
rake "app_server:task"
|
77
81
|
end
|
78
82
|
```
|
@@ -87,7 +91,7 @@ For example:
|
|
87
91
|
job_type :awesome, '/usr/local/bin/awesome :task :fun_level'
|
88
92
|
|
89
93
|
every 2.hours do
|
90
|
-
awesome "party", :
|
94
|
+
awesome "party", fun_level: "extreme"
|
91
95
|
end
|
92
96
|
```
|
93
97
|
|
@@ -129,10 +133,10 @@ You can set your custom Chronic configuration if the defaults don't fit you.
|
|
129
133
|
For example, to assume a 24 hour clock instead of the default 12 hour clock:
|
130
134
|
|
131
135
|
```ruby
|
132
|
-
set :chronic_options, :
|
136
|
+
set :chronic_options, hours24: true
|
133
137
|
|
134
138
|
# By default this would run the job every day at 3am
|
135
|
-
every 1.day, :
|
139
|
+
every 1.day, at: '3:00' do
|
136
140
|
runner "MyModel.nightly_archive_job"
|
137
141
|
end
|
138
142
|
```
|
@@ -240,7 +244,7 @@ When you define a job in your schedule.rb file, by default it will be deployed t
|
|
240
244
|
all servers in the whenever_roles list (which defaults to `[:db]`).
|
241
245
|
|
242
246
|
However, if you want to restrict certain jobs to only run on subset of servers,
|
243
|
-
you can add a
|
247
|
+
you can add a `roles: [...]` argument to their definitions. **Make sure to add
|
244
248
|
that role to the whenever_roles list in your deploy.rb.**
|
245
249
|
|
246
250
|
When you run `cap deploy`, jobs with a :roles list specified will only be added to
|
@@ -253,7 +257,7 @@ So, for example, with the default whenever_roles of `[:db]`, a job like this wou
|
|
253
257
|
deployed to all servers with the `:db` role:
|
254
258
|
|
255
259
|
```ruby
|
256
|
-
every :day, :
|
260
|
+
every :day, at: '12:20am' do
|
257
261
|
rake 'foo:bar'
|
258
262
|
end
|
259
263
|
```
|
@@ -262,15 +266,15 @@ If we set whenever_roles to `[:db, :app]` in deploy.rb, and have the following
|
|
262
266
|
jobs in schedule.rb:
|
263
267
|
|
264
268
|
```ruby
|
265
|
-
every :day, :
|
269
|
+
every :day, at: '1:37pm', roles: [:app] do
|
266
270
|
rake 'app:task' # will only be added to crontabs of :app servers
|
267
271
|
end
|
268
272
|
|
269
|
-
every :hour, :
|
273
|
+
every :hour, roles: [:db] do
|
270
274
|
rake 'db:task' # will only be added to crontabs of :db servers
|
271
275
|
end
|
272
276
|
|
273
|
-
every :day, :
|
277
|
+
every :day, at: '12:02am' do
|
274
278
|
command "run_this_everywhere" # will be deployed to :db and :app servers
|
275
279
|
end
|
276
280
|
```
|
@@ -44,13 +44,13 @@ namespace :load do
|
|
44
44
|
task :defaults do
|
45
45
|
set :whenever_roles, ->{ :db }
|
46
46
|
set :whenever_command, ->{ [:bundle, :exec, :whenever] }
|
47
|
-
set :whenever_command_environment_variables, ->{ fetch(:default_env).merge
|
47
|
+
set :whenever_command_environment_variables, ->{ fetch(:default_env).merge(rails_env: fetch(:whenever_environment)) }
|
48
48
|
set :whenever_identifier, ->{ fetch :application }
|
49
49
|
set :whenever_environment, ->{ fetch :rails_env, fetch(:stage, "production") }
|
50
50
|
set :whenever_variables, ->{ "environment=#{fetch :whenever_environment}" }
|
51
51
|
set :whenever_load_file, ->{ nil }
|
52
52
|
set :whenever_update_flags, ->{ "--update-crontab #{fetch :whenever_identifier} --set #{fetch :whenever_variables}" }
|
53
53
|
set :whenever_clear_flags, ->{ "--clear-crontab #{fetch :whenever_identifier}" }
|
54
|
-
set :whenever_path, ->{
|
54
|
+
set :whenever_path, ->{ release_path }
|
55
55
|
end
|
56
56
|
end
|
@@ -102,7 +102,7 @@ module Whenever
|
|
102
102
|
exit(1)
|
103
103
|
end
|
104
104
|
|
105
|
-
# If an existing
|
105
|
+
# If an existing identifier block is found, replace it with the new cron entries
|
106
106
|
if read_crontab =~ Regexp.new("^#{comment_open_regex}\s*$") && read_crontab =~ Regexp.new("^#{comment_close_regex}\s*$")
|
107
107
|
# If the existing crontab file contains backslashes they get lost going through gsub.
|
108
108
|
# .gsub('\\', '\\\\\\') preserves them. Go figure.
|
data/lib/whenever/cron.rb
CHANGED
@@ -96,15 +96,13 @@ module Whenever
|
|
96
96
|
timing[0] = comma_separated_timing(minute_frequency, 59, @at || 0)
|
97
97
|
when Whenever.seconds(1, :hour)...Whenever.seconds(1, :day)
|
98
98
|
hour_frequency = (@time / 60 / 60).round
|
99
|
-
timing[0] = @at.is_a?(Time) ? @at.min : @at
|
99
|
+
timing[0] = @at.is_a?(Time) ? @at.min : range_or_integer(@at, 0..59, 'Minute')
|
100
100
|
timing[1] = comma_separated_timing(hour_frequency, 23)
|
101
|
-
raise ArgumentError, "Minute must be between 0-59, #{timing[0]} given" unless (0..59).include?(timing[0])
|
102
101
|
when Whenever.seconds(1, :day)...Whenever.seconds(1, :month)
|
103
102
|
day_frequency = (@time / 24 / 60 / 60).round
|
104
103
|
timing[0] = @at.is_a?(Time) ? @at.min : 0
|
105
|
-
timing[1] = @at.is_a?(Time) ? @at.hour : @at
|
104
|
+
timing[1] = @at.is_a?(Time) ? @at.hour : range_or_integer(@at, 0..23, 'Hour')
|
106
105
|
timing[2] = comma_separated_timing(day_frequency, 31, 1)
|
107
|
-
raise ArgumentError, "Hour must be between 0-23, #{timing[1]} given" unless (0..23).include?(timing[1])
|
108
106
|
when Whenever.seconds(1, :month)...Whenever.seconds(1, :year)
|
109
107
|
month_frequency = (@time / 30 / 24 / 60 / 60).round
|
110
108
|
timing[0] = @at.is_a?(Time) ? @at.min : 0
|
@@ -112,10 +110,9 @@ module Whenever
|
|
112
110
|
timing[2] = if @at.is_a?(Time)
|
113
111
|
day_given? ? @at.day : 1
|
114
112
|
else
|
115
|
-
@at
|
113
|
+
@at == 0 ? 1 : range_or_integer(@at, 1..31, 'Day')
|
116
114
|
end
|
117
115
|
timing[3] = comma_separated_timing(month_frequency, 12, 1)
|
118
|
-
raise ArgumentError, "Day must be between 1-31, #{timing[2]} given" unless (1..31).include?(timing[2])
|
119
116
|
when Whenever.seconds(1, :year)
|
120
117
|
timing[0] = @at.is_a?(Time) ? @at.min : 0
|
121
118
|
timing[1] = @at.is_a?(Time) ? @at.hour : 0
|
@@ -127,9 +124,8 @@ module Whenever
|
|
127
124
|
timing[3] = if @at.is_a?(Time)
|
128
125
|
day_given? ? @at.month : 1
|
129
126
|
else
|
130
|
-
@at
|
127
|
+
@at == 0 ? 1 : range_or_integer(@at, 1..12, 'Month')
|
131
128
|
end
|
132
|
-
raise ArgumentError, "Month must be between 1-12, #{timing[3]} given" unless (1..12).include?(timing[3])
|
133
129
|
else
|
134
130
|
return parse_as_string
|
135
131
|
end
|
@@ -151,7 +147,18 @@ module Whenever
|
|
151
147
|
return (timing << i) * " " if string.downcase.index(day)
|
152
148
|
end
|
153
149
|
|
154
|
-
raise ArgumentError, "Couldn't parse: #{@time}"
|
150
|
+
raise ArgumentError, "Couldn't parse: #{@time.inspect}"
|
151
|
+
end
|
152
|
+
|
153
|
+
def range_or_integer(at, valid_range, name)
|
154
|
+
must_be_between = "#{name} must be between #{valid_range.min}-#{valid_range.max}"
|
155
|
+
if at.is_a?(Range)
|
156
|
+
raise ArgumentError, "#{must_be_between}, #{at.min} given" unless valid_range.include?(at.min)
|
157
|
+
raise ArgumentError, "#{must_be_between}, #{at.max} given" unless valid_range.include?(at.max)
|
158
|
+
return "#{at.min}-#{at.max}"
|
159
|
+
end
|
160
|
+
raise ArgumentError, "#{must_be_between}, #{at} given" unless valid_range.include?(at)
|
161
|
+
at
|
155
162
|
end
|
156
163
|
|
157
164
|
def comma_separated_timing(frequency, max, start = 0)
|
data/lib/whenever/numeric.rb
CHANGED
data/lib/whenever/version.rb
CHANGED
data/test/unit/cron_test.rb
CHANGED
@@ -78,6 +78,10 @@ class CronParseHoursTest < Whenever::TestCase
|
|
78
78
|
assert_minutes_equals "30", '6:30', :chronic_options => { :hours24 => false }
|
79
79
|
end
|
80
80
|
|
81
|
+
should "parse correctly when given an 'at' with minutes as a Range" do
|
82
|
+
assert_minutes_equals "15-30", 15..30
|
83
|
+
end
|
84
|
+
|
81
85
|
should "raise an exception when given an 'at' with an invalid minute value" do
|
82
86
|
assert_raises ArgumentError do
|
83
87
|
parse_time(Whenever.seconds(1, :hour), nil, 60)
|
@@ -86,6 +90,14 @@ class CronParseHoursTest < Whenever::TestCase
|
|
86
90
|
assert_raises ArgumentError do
|
87
91
|
parse_time(Whenever.seconds(1, :hour), nil, -1)
|
88
92
|
end
|
93
|
+
|
94
|
+
assert_raises ArgumentError do
|
95
|
+
parse_time(Whenever.seconds(1, :hour), nil, 0..60)
|
96
|
+
end
|
97
|
+
|
98
|
+
assert_raises ArgumentError do
|
99
|
+
parse_time(Whenever.seconds(1, :hour), nil, -1..59)
|
100
|
+
end
|
89
101
|
end
|
90
102
|
end
|
91
103
|
|
@@ -130,6 +142,10 @@ class CronParseDaysTest < Whenever::TestCase
|
|
130
142
|
assert_hours_and_minutes_equals %w(23 0), 23
|
131
143
|
end
|
132
144
|
|
145
|
+
should "parse correctly when given an 'at' with hours as a Range" do
|
146
|
+
assert_hours_and_minutes_equals %w(3-23 0), 3..23
|
147
|
+
end
|
148
|
+
|
133
149
|
should "raise an exception when given an 'at' with an invalid hour value" do
|
134
150
|
assert_raises ArgumentError do
|
135
151
|
parse_time(Whenever.seconds(1, :day), nil, 24)
|
@@ -138,6 +154,14 @@ class CronParseDaysTest < Whenever::TestCase
|
|
138
154
|
assert_raises ArgumentError do
|
139
155
|
parse_time(Whenever.seconds(1, :day), nil, -1)
|
140
156
|
end
|
157
|
+
|
158
|
+
assert_raises ArgumentError do
|
159
|
+
parse_time(Whenever.seconds(1, :day), nil, 0..24)
|
160
|
+
end
|
161
|
+
|
162
|
+
assert_raises ArgumentError do
|
163
|
+
parse_time(Whenever.seconds(1, :day), nil, -1..23)
|
164
|
+
end
|
141
165
|
end
|
142
166
|
end
|
143
167
|
|
@@ -197,6 +221,10 @@ class CronParseMonthsTest < Whenever::TestCase
|
|
197
221
|
assert_days_and_hours_and_minutes_equals %w(29 0 0), 29
|
198
222
|
end
|
199
223
|
|
224
|
+
should "parse correctly when given an 'at' with days as a Range" do
|
225
|
+
assert_days_and_hours_and_minutes_equals %w(1-7 0 0), 1..7
|
226
|
+
end
|
227
|
+
|
200
228
|
should "raise an exception when given an 'at' with an invalid day value" do
|
201
229
|
assert_raises ArgumentError do
|
202
230
|
parse_time(Whenever.seconds(1, :month), nil, 32)
|
@@ -205,6 +233,14 @@ class CronParseMonthsTest < Whenever::TestCase
|
|
205
233
|
assert_raises ArgumentError do
|
206
234
|
parse_time(Whenever.seconds(1, :month), nil, -1)
|
207
235
|
end
|
236
|
+
|
237
|
+
assert_raises ArgumentError do
|
238
|
+
parse_time(Whenever.seconds(1, :month), nil, 0..30)
|
239
|
+
end
|
240
|
+
|
241
|
+
assert_raises ArgumentError do
|
242
|
+
parse_time(Whenever.seconds(1, :month), nil, 1..32)
|
243
|
+
end
|
208
244
|
end
|
209
245
|
end
|
210
246
|
|
@@ -254,6 +290,10 @@ class CronParseYearTest < Whenever::TestCase
|
|
254
290
|
assert_months_and_days_and_hours_and_minutes_equals %w(12 1 0 0), 12
|
255
291
|
end
|
256
292
|
|
293
|
+
should "parse correctly when given an 'at' with month as a Range" do
|
294
|
+
assert_months_and_days_and_hours_and_minutes_equals %w(1-3 1 0 0), 1..3
|
295
|
+
end
|
296
|
+
|
257
297
|
should "raise an exception when given an 'at' with an invalid month value" do
|
258
298
|
assert_raises ArgumentError do
|
259
299
|
parse_time(Whenever.seconds(1, :year), nil, 13)
|
@@ -262,6 +302,14 @@ class CronParseYearTest < Whenever::TestCase
|
|
262
302
|
assert_raises ArgumentError do
|
263
303
|
parse_time(Whenever.seconds(1, :year), nil, -1)
|
264
304
|
end
|
305
|
+
|
306
|
+
assert_raises ArgumentError do
|
307
|
+
parse_time(Whenever.seconds(1, :year), nil, 0..12)
|
308
|
+
end
|
309
|
+
|
310
|
+
assert_raises ArgumentError do
|
311
|
+
parse_time(Whenever.seconds(1, :year), nil, 1..13)
|
312
|
+
end
|
265
313
|
end
|
266
314
|
end
|
267
315
|
|
data/whenever.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: whenever
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.11.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Javan Makhmali
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-04-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: chronic
|
@@ -80,6 +80,20 @@ dependencies:
|
|
80
80
|
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
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'
|
83
97
|
description: Clean ruby syntax for writing and deploying cron jobs.
|
84
98
|
email:
|
85
99
|
- javan@javan.us
|
@@ -91,6 +105,7 @@ extra_rdoc_files: []
|
|
91
105
|
files:
|
92
106
|
- ".gitignore"
|
93
107
|
- ".travis.yml"
|
108
|
+
- Appraisals
|
94
109
|
- CHANGELOG.md
|
95
110
|
- Gemfile
|
96
111
|
- LICENSE
|
@@ -100,6 +115,9 @@ files:
|
|
100
115
|
- bin/wheneverize
|
101
116
|
- gemfiles/activesupport4.1.gemfile
|
102
117
|
- gemfiles/activesupport4.2.gemfile
|
118
|
+
- gemfiles/activesupport5.0.gemfile
|
119
|
+
- gemfiles/activesupport5.1.gemfile
|
120
|
+
- gemfiles/activesupport5.2.gemfile
|
103
121
|
- lib/whenever.rb
|
104
122
|
- lib/whenever/capistrano.rb
|
105
123
|
- lib/whenever/capistrano/v2/hooks.rb
|
@@ -151,7 +169,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
151
169
|
version: '0'
|
152
170
|
requirements: []
|
153
171
|
rubyforge_project:
|
154
|
-
rubygems_version: 2.
|
172
|
+
rubygems_version: 2.7.3
|
155
173
|
signing_key:
|
156
174
|
specification_version: 4
|
157
175
|
summary: Cron jobs in ruby.
|