whenever 0.6.1 → 0.6.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.
- data/{CHANGELOG.rdoc → CHANGELOG.md} +27 -18
- data/{README.rdoc → README.md} +53 -53
- data/Rakefile +2 -2
- data/lib/whenever.rb +13 -2
- data/lib/whenever/command_line.rb +3 -3
- data/lib/whenever/job_list.rb +2 -5
- data/lib/whenever/{job_types/default.rb → setup.rb} +8 -1
- data/lib/whenever/version.rb +1 -1
- data/test/functional/command_line_test.rb +6 -26
- data/test/functional/output_default_defined_jobs_test.rb +19 -0
- data/whenever.gemspec +8 -9
- metadata +16 -10
- data/lib/whenever/base.rb +0 -11
@@ -1,4 +1,13 @@
|
|
1
|
-
|
1
|
+
### 0.6.2 / October 26th, 2010
|
2
|
+
|
3
|
+
* --clear-crontab option completely removes entries. #63 [Javan Makhmali]
|
4
|
+
|
5
|
+
* Set default :environment and :path earlier in the new setup.rb (formerly job_types/default.rb). [Javan Makhmali]
|
6
|
+
|
7
|
+
* Converted README and CHANGELOG to markdown. [Javan Makhmali]
|
8
|
+
|
9
|
+
|
10
|
+
### 0.6.1 / October 20th, 2010
|
2
11
|
|
3
12
|
* Detect script/rails file and change runner to Rails 3 style if found. [Javan Makhmali]
|
4
13
|
|
@@ -7,14 +16,14 @@
|
|
7
16
|
* Added a built-in Capistrano recipe. [Javan Makhmali]
|
8
17
|
|
9
18
|
|
10
|
-
|
19
|
+
### 0.5.3 / September 24th, 2010
|
11
20
|
|
12
21
|
* Better regexes for replacing Whenever blocks in the crontab. #45 [Javan Makhmali]
|
13
22
|
|
14
23
|
* Preserving backslashes when updating existing crontab. #82 [Javan Makhmali]
|
15
24
|
|
16
25
|
|
17
|
-
|
26
|
+
### 0.5.2 / September 15th, 2010
|
18
27
|
|
19
28
|
* Quotes automatically escaped in jobs. [Jay Adkisson]
|
20
29
|
|
@@ -25,7 +34,7 @@
|
|
25
34
|
* Lots of internal reorganizing; tests broken into unit and functional. [Javan Makhmali]
|
26
35
|
|
27
36
|
|
28
|
-
|
37
|
+
### 0.5.0 / June 28th, 2010
|
29
38
|
|
30
39
|
* New job_type API for writing custom jobs. Internals use this to define command, runner, and rake. [Javan Makhmali - inspired by idlefingers (Damien)]
|
31
40
|
|
@@ -34,7 +43,7 @@
|
|
34
43
|
* --clear option to remove crontab entries for a specific [identifier]. [mraidel (Michael Raidel)]
|
35
44
|
|
36
45
|
|
37
|
-
|
46
|
+
### 0.4.2 / April 26th, 2010
|
38
47
|
|
39
48
|
* runners now cd into the app's directory and then execute. [Michael Guterl]
|
40
49
|
|
@@ -45,49 +54,49 @@
|
|
45
54
|
* bugfix: comparison Time with 0 failed. #32 [Dan Hixon]
|
46
55
|
|
47
56
|
|
48
|
-
|
57
|
+
### 0.4.1 / November 30th, 2009
|
49
58
|
|
50
59
|
* exit(0) instead of just exit to make JRuby happy. [Elan Meng]
|
51
60
|
|
52
61
|
* Fixed activesupport deprecation warning by requiring active_support. #37 [Andrew Nesbitt]
|
53
62
|
|
54
63
|
|
55
|
-
|
64
|
+
### 0.4.0 / October 20th, 2009
|
56
65
|
|
57
66
|
* New output option replaces the old cron_log option for output redirection and is much more flexible. #31 [Peer Allan]
|
58
67
|
|
59
68
|
* Reorganized the lib files (http://weblog.rubyonrails.org/2009/9/1/gem-packaging-best-practices) and switched to Jeweler from Echoe.
|
60
69
|
|
61
70
|
|
62
|
-
|
71
|
+
### 0.3.7 / September 4th, 2009
|
63
72
|
|
64
73
|
* No longer tries (and fails) to combine @shortcut jobs. #20 [Javan Makhmali]
|
65
74
|
|
66
75
|
|
67
|
-
|
76
|
+
### 0.3.6 / June 15th, 2009
|
68
77
|
|
69
78
|
* Setting a PATH in the crontab automatically based on the user's PATH. [Javan Makhmali]
|
70
79
|
|
71
80
|
|
72
|
-
|
81
|
+
### 0.3.5 / June 13th, 2009
|
73
82
|
|
74
83
|
* Added ability to accept lists of every's and at's and intelligently group them. (ex: every 'monday, wednesday', :at => ['3pm', '6am']). [Sam Ruby]
|
75
84
|
|
76
85
|
* Fixed issue with new lines. #18 [Javan Makhmali]
|
77
86
|
|
78
|
-
|
87
|
+
### 0.3.1 / June 25th, 2009
|
79
88
|
|
80
89
|
* Removed activesupport gem dependency. #1 [Javan Makhmali]
|
81
90
|
|
82
91
|
* Switched to numeric days of the week for Solaris support (and probably others). #8 [Roger Ertesvåg]
|
83
92
|
|
84
93
|
|
85
|
-
|
94
|
+
### 0.3.0 / June 2nd, 2009
|
86
95
|
|
87
96
|
* Added ability to set variables on the fly from the command line (ex: whenever --set environment=staging). [Javan Makhmali]
|
88
97
|
|
89
98
|
|
90
|
-
|
99
|
+
### 0.2.2 / April 30th, 2009
|
91
100
|
|
92
101
|
* Days of week jobs can now accept an :at directive (ex: every :monday, :at => '5pm'). [David Eisinger]
|
93
102
|
|
@@ -96,22 +105,22 @@
|
|
96
105
|
* Raising an exception if someone tries to specify an :at with a cron shortcut (:day, :reboot, etc) so there are no false hopes. [Javan Makhmali]
|
97
106
|
|
98
107
|
|
99
|
-
|
108
|
+
### 0.1.7 / March 5th, 2009
|
100
109
|
|
101
110
|
* Added ability to update the crontab file non-destuctively instead of only overwriting it. [Javan Makhmali -- Inspired by code submitted individually from: Tien Dung (tiendung), Tom Lea (cwninja), Kyle Maxwell (fizx), and Andrew Timberlake (andrewtimberlake) on github]
|
102
111
|
|
103
112
|
|
104
|
-
|
113
|
+
### 0.1.5 / February 19th, 2009
|
105
114
|
|
106
115
|
* Fixed load path so Whenever's files don't conflict with anything in Rails. Thanks Ryan Koopmans. [Javan Makhmali]
|
107
116
|
|
108
117
|
|
109
|
-
|
118
|
+
### 0.1.4 / February 17th, 2009
|
110
119
|
|
111
120
|
* Added --load-file and --user opts to whenever binary. [Javan Makhmali]
|
112
121
|
|
113
122
|
|
114
|
-
|
123
|
+
### 0.1.3 / February 16th, 2009
|
115
124
|
|
116
125
|
* Added 'rake' helper for defining scheduled rake tasks. [Javan Makhmali]
|
117
126
|
|
@@ -124,6 +133,6 @@
|
|
124
133
|
* Requiring specific gem versions: Chronic >=0.2.3 and activesupport >= 1.3.0 [Javan Makhmali]
|
125
134
|
|
126
135
|
|
127
|
-
|
136
|
+
### 0.1.0 / February 15th, 2009
|
128
137
|
|
129
138
|
* Initial release [Javan Makhmali]
|
data/{README.rdoc → README.md}
RENAMED
@@ -1,119 +1,119 @@
|
|
1
|
-
|
1
|
+
### Introduction
|
2
2
|
|
3
3
|
Whenever is a Ruby gem that provides a clear syntax for writing and deploying cron jobs.
|
4
4
|
|
5
|
-
|
5
|
+
### Installation
|
6
6
|
|
7
|
-
|
7
|
+
$ gem install whenever
|
8
8
|
|
9
9
|
Or with Bundler in your Gemfile.
|
10
10
|
|
11
|
-
|
11
|
+
gem 'whenever', :require => false
|
12
12
|
|
13
|
-
|
13
|
+
### Getting started
|
14
14
|
|
15
|
-
|
16
|
-
|
15
|
+
$ cd /my/rails/app
|
16
|
+
$ wheneverize .
|
17
17
|
|
18
18
|
This will create an initial "config/schedule.rb" file you.
|
19
19
|
|
20
|
-
|
20
|
+
### Example schedule.rb file
|
21
21
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
22
|
+
every 3.hours do
|
23
|
+
runner "MyModel.some_process"
|
24
|
+
rake "my:rake:task"
|
25
|
+
command "/usr/bin/my_great_command"
|
26
|
+
end
|
27
27
|
|
28
|
-
|
29
|
-
|
30
|
-
|
28
|
+
every 1.day, :at => '4:30 am' do
|
29
|
+
runner "MyModel.task_to_run_at_four_thirty_in_the_morning"
|
30
|
+
end
|
31
31
|
|
32
|
-
|
33
|
-
|
34
|
-
|
32
|
+
every :hour do # Many shortcuts available: :hour, :day, :month, :year, :reboot
|
33
|
+
runner "SomeModel.ladeeda"
|
34
|
+
end
|
35
35
|
|
36
|
-
|
37
|
-
|
38
|
-
|
36
|
+
every :sunday, :at => '12pm' do # Use any day of the week or :weekend, :weekday
|
37
|
+
runner "Task.do_something_great"
|
38
|
+
end
|
39
39
|
|
40
|
-
More examples on the wiki: http://wiki.github.com/javan/whenever/instructions-and-examples
|
40
|
+
More examples on the wiki: <http://wiki.github.com/javan/whenever/instructions-and-examples>
|
41
41
|
|
42
|
-
|
42
|
+
### Define your own job types
|
43
43
|
|
44
44
|
Whenever ships with three pre-defined job types: command, runner, and rake. You can define your own with `job_type`.
|
45
45
|
|
46
46
|
For example:
|
47
47
|
|
48
|
-
|
48
|
+
job_type :awesome, '/usr/local/bin/awesome :task :fun_level'
|
49
49
|
|
50
|
-
|
51
|
-
|
52
|
-
|
50
|
+
every 2.hours do
|
51
|
+
awesome "party", :fun_level => "extreme"
|
52
|
+
end
|
53
53
|
|
54
54
|
Would run `/usr/local/bin/awesome party extreme` every two hours. `:task` is always replaced with the first argument, and any additional `:whatevers` are replaced with the options passed in or by variables that have been defined with `set`.
|
55
55
|
|
56
56
|
The default job types that ship with Whenever are defined like so:
|
57
57
|
|
58
|
-
|
59
|
-
|
60
|
-
|
58
|
+
job_type :command, ":task :output"
|
59
|
+
job_type :rake, "cd :path && RAILS_ENV=:environment rake :task :output"
|
60
|
+
job_type :runner, "cd :path && script/runner -e :environment ':task' :output"
|
61
61
|
|
62
62
|
If a script/rails file is detected (like in a Rails 3 app), runner will be defined to fit:
|
63
63
|
|
64
|
-
|
64
|
+
job_type :runner, "cd :path && script/rails runner -e :environment ':task' :output"
|
65
65
|
|
66
|
-
If a `:path` is not set it will default to the directory in which `whenever` was executed. `:environment` will default to 'production'. `:output` will be replaced with your output redirection settings which you can read more about here: http://github.com/javan/whenever/wiki/Output-redirection-
|
66
|
+
If a `:path` is not set it will default to the directory in which `whenever` was executed. `:environment` will default to 'production'. `:output` will be replaced with your output redirection settings which you can read more about here: <http://github.com/javan/whenever/wiki/Output-redirection-aka-logging-your-cron-jobs>
|
67
67
|
|
68
|
-
All jobs are by default run with `bash -l -c 'command...'`. Among other things, this allows your cron jobs to play nice with RVM by loading the entire environment instead of cron's somewhat limited environment. Read more: http://blog.scoutapp.com/articles/2010/09/07/rvm-and-cron-in-production
|
68
|
+
All jobs are by default run with `bash -l -c 'command...'`. Among other things, this allows your cron jobs to play nice with RVM by loading the entire environment instead of cron's somewhat limited environment. Read more: <http://blog.scoutapp.com/articles/2010/09/07/rvm-and-cron-in-production>
|
69
69
|
|
70
|
-
You can change this by setting your own job_template
|
70
|
+
You can change this by setting your own `:job_template`.
|
71
71
|
|
72
|
-
|
72
|
+
set :job_template, "bash -l -c ':job'"
|
73
73
|
|
74
74
|
Or set the job_template to nil to have your jobs execute normally.
|
75
75
|
|
76
|
-
|
76
|
+
set :job_template, nil
|
77
77
|
|
78
78
|
And you'll see your schedule.rb converted to cron sytax. Note: running `whenever` with no options does not display your current crontab file, it simply shows you the output of converting your schedule.rb file.
|
79
79
|
|
80
|
-
|
80
|
+
### Capistrano integration
|
81
81
|
|
82
82
|
Use the built-in Capistrano recipe for easy crontab updates with deploys.
|
83
83
|
|
84
84
|
In your "config/deploy.rb" file:
|
85
85
|
|
86
|
-
|
86
|
+
require "whenever/capistrano"
|
87
87
|
|
88
|
-
Take a look at the recipe for options you can set. http://github.com/javan/whenever/blob/master/lib/whenever/capistrano.rb
|
88
|
+
Take a look at the recipe for options you can set. <http://github.com/javan/whenever/blob/master/lib/whenever/capistrano.rb>
|
89
89
|
For example, if you're using bundler do this:
|
90
90
|
|
91
|
-
|
92
|
-
|
91
|
+
set :whenever_command, "bundle exec whenever"
|
92
|
+
require "whenever/capistrano"
|
93
93
|
|
94
|
-
|
94
|
+
### The `whenever` command
|
95
95
|
|
96
|
-
|
97
|
-
|
96
|
+
$ cd /my/rails/app
|
97
|
+
$ whenever
|
98
98
|
|
99
99
|
This will simply show you your schedule.rb file converted to cron syntax. It does not read or write your crontab file. Run `whenever --help` for a complete list of options.
|
100
100
|
|
101
|
-
|
101
|
+
### Credit
|
102
102
|
|
103
|
-
Whenever was created for use at Inkling (http://inklingmarkets.com) where I work. Their take on it: http://blog.inklingmarkets.com/2009/02/whenever-easy-way-to-do-cron-jobs-from.html
|
103
|
+
Whenever was created for use at Inkling (<http://inklingmarkets.com>) where I work. Their take on it: <http://blog.inklingmarkets.com/2009/02/whenever-easy-way-to-do-cron-jobs-from.html>
|
104
104
|
|
105
|
-
|
105
|
+
Thanks to all the contributors who have made it even better: <http://github.com/javan/whenever/contributors>
|
106
106
|
|
107
|
-
|
107
|
+
### Discussion / Feedback / Issues / Bugs
|
108
108
|
|
109
|
-
For general discussion and questions, please use the google group: http://groups.google.com/group/whenever-gem
|
109
|
+
For general discussion and questions, please use the google group: <http://groups.google.com/group/whenever-gem>
|
110
110
|
|
111
|
-
If you've found a genuine bug or issue, please use the Issues section on github: http://github.com/javan/whenever/issues
|
111
|
+
If you've found a genuine bug or issue, please use the Issues section on github: <http://github.com/javan/whenever/issues>
|
112
112
|
|
113
|
-
Ryan Bates created a great Railscast about Whenever: http://railscasts.com/episodes/164-cron-in-ruby
|
113
|
+
Ryan Bates created a great Railscast about Whenever: <http://railscasts.com/episodes/164-cron-in-ruby>
|
114
114
|
It's a little bit dated now, but remains a good introduction.
|
115
115
|
|
116
|
-
|
116
|
+
### License
|
117
117
|
|
118
118
|
Copyright (c) 2009+ Javan Makhmali
|
119
119
|
|
data/Rakefile
CHANGED
@@ -8,8 +8,8 @@ begin
|
|
8
8
|
Jeweler::Tasks.new do |gemspec|
|
9
9
|
gemspec.name = "whenever"
|
10
10
|
gemspec.version = Whenever::VERSION
|
11
|
-
gemspec.summary = "
|
12
|
-
gemspec.description = "
|
11
|
+
gemspec.summary = "Write your cron jobs in ruby."
|
12
|
+
gemspec.description = "Clean ruby syntax for writing and deploying cron jobs."
|
13
13
|
gemspec.email = "javan@javan.us"
|
14
14
|
gemspec.homepage = "http://github.com/javan/whenever"
|
15
15
|
gemspec.authors = ["Javan Makhmali"]
|
data/lib/whenever.rb
CHANGED
@@ -1,10 +1,21 @@
|
|
1
1
|
require 'chronic'
|
2
2
|
require 'active_support/all'
|
3
3
|
|
4
|
-
require 'whenever/base'
|
5
4
|
require 'whenever/job_list'
|
6
5
|
require 'whenever/job'
|
7
6
|
require 'whenever/cron'
|
8
7
|
require 'whenever/output_redirection'
|
9
8
|
require 'whenever/command_line'
|
10
|
-
require 'whenever/version'
|
9
|
+
require 'whenever/version'
|
10
|
+
|
11
|
+
module Whenever
|
12
|
+
|
13
|
+
def self.cron(options)
|
14
|
+
Whenever::JobList.new(options).generate_cron_output
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.path
|
18
|
+
Dir.pwd
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
@@ -30,7 +30,6 @@ module Whenever
|
|
30
30
|
exit(1)
|
31
31
|
end
|
32
32
|
@options[:cut] = @options[:cut].to_i
|
33
|
-
|
34
33
|
end
|
35
34
|
|
36
35
|
def run
|
@@ -51,7 +50,8 @@ module Whenever
|
|
51
50
|
end
|
52
51
|
|
53
52
|
def whenever_cron
|
54
|
-
|
53
|
+
return '' if @options[:clear]
|
54
|
+
@whenever_cron ||= [comment_open, Whenever.cron(@options), comment_close].compact.join("\n") + "\n"
|
55
55
|
end
|
56
56
|
|
57
57
|
def read_crontab
|
@@ -102,7 +102,7 @@ module Whenever
|
|
102
102
|
read_crontab.gsub(Regexp.new("^#{comment_open}$.+^#{comment_close}$", Regexp::MULTILINE), whenever_cron.chomp.gsub('\\', '\\\\\\'))
|
103
103
|
else # Otherwise, append the new cron entries after any existing ones
|
104
104
|
[read_crontab, whenever_cron].join("\n\n")
|
105
|
-
end
|
105
|
+
end.gsub(/\n{3,}/, "\n\n") # More than two newlines becomes just two.
|
106
106
|
end
|
107
107
|
|
108
108
|
def prepare(contents)
|
data/lib/whenever/job_list.rb
CHANGED
@@ -16,12 +16,9 @@ module Whenever
|
|
16
16
|
pre_set(options[:set])
|
17
17
|
end
|
18
18
|
|
19
|
-
|
20
|
-
Dir["#{File.expand_path(File.dirname(__FILE__))}/job_types/*.rb"].each do |file|
|
21
|
-
eval(File.read(file))
|
22
|
-
end
|
19
|
+
setup = File.read("#{File.expand_path(File.dirname(__FILE__))}/setup.rb")
|
23
20
|
|
24
|
-
eval(config)
|
21
|
+
eval(setup + config)
|
25
22
|
end
|
26
23
|
|
27
24
|
def set(variable, value)
|
@@ -1,10 +1,17 @@
|
|
1
|
+
# Environemnt defaults to production
|
2
|
+
set :environment, "production"
|
3
|
+
# Path defaults to the directory `whenever` was run from
|
4
|
+
set :path, Whenever.path
|
5
|
+
|
6
|
+
# All jobs are wrapped in this template.
|
1
7
|
# http://blog.scoutapp.com/articles/2010/09/07/rvm-and-cron-in-production
|
2
8
|
set :job_template, "/bin/bash -l -c ':job'"
|
3
9
|
|
4
10
|
job_type :command, ":task :output"
|
5
11
|
job_type :rake, "cd :path && RAILS_ENV=:environment rake :task --silent :output"
|
6
12
|
|
7
|
-
|
13
|
+
# Create a runner job that's appropriate for the Rails version,
|
14
|
+
if File.exists?(File.join(path, 'script', 'rails'))
|
8
15
|
job_type :runner, "cd :path && script/rails runner -e :environment ':task' :output"
|
9
16
|
else
|
10
17
|
job_type :runner, "cd :path && script/runner -e :environment ':task' :output"
|
data/lib/whenever/version.rb
CHANGED
@@ -120,35 +120,18 @@ NEW_CRON
|
|
120
120
|
end
|
121
121
|
|
122
122
|
should "append the similarly named command" do
|
123
|
-
assert_equal @existing + "\n
|
123
|
+
assert_equal @existing + "\n" + @new, @command.send(:updated_crontab)
|
124
124
|
end
|
125
125
|
end
|
126
126
|
|
127
|
-
context "A command line
|
127
|
+
context "A command line clear" do
|
128
128
|
setup do
|
129
129
|
File.expects(:exists?).with('config/schedule.rb').returns(true)
|
130
130
|
@command = Whenever::CommandLine.new(:clear => true, :identifier => 'My identifier')
|
131
131
|
@task = "#{two_hours} /my/command"
|
132
132
|
end
|
133
133
|
|
134
|
-
should "
|
135
|
-
existing = '# Existing crontab'
|
136
|
-
@command.expects(:read_crontab).at_least_once.returns(existing)
|
137
|
-
|
138
|
-
new_cron = <<-EXPECTED
|
139
|
-
#{existing}
|
140
|
-
|
141
|
-
# Begin Whenever generated tasks for: My identifier
|
142
|
-
# End Whenever generated tasks for: My identifier
|
143
|
-
EXPECTED
|
144
|
-
|
145
|
-
assert_equal new_cron, @command.send(:updated_crontab)
|
146
|
-
|
147
|
-
@command.expects(:write_crontab).with(new_cron).returns(true)
|
148
|
-
assert @command.run
|
149
|
-
end
|
150
|
-
|
151
|
-
should "delete an existing block if the identifier matches" do
|
134
|
+
should "clear an existing block if the identifier matches" do
|
152
135
|
existing = <<-EXISTING_CRON
|
153
136
|
# Something
|
154
137
|
|
@@ -162,20 +145,17 @@ This shouldn't get replaced
|
|
162
145
|
EXISTING_CRON
|
163
146
|
|
164
147
|
@command.expects(:read_crontab).at_least_once.returns(existing)
|
165
|
-
|
148
|
+
|
166
149
|
new_cron = <<-NEW_CRON
|
167
150
|
# Something
|
168
151
|
|
169
|
-
# Begin Whenever generated tasks for: My identifier
|
170
|
-
# End Whenever generated tasks for: My identifier
|
171
|
-
|
172
152
|
# Begin Whenever generated tasks for: Other identifier
|
173
153
|
This shouldn't get replaced
|
174
154
|
# End Whenever generated tasks for: Other identifier
|
175
155
|
NEW_CRON
|
176
|
-
|
156
|
+
|
177
157
|
assert_equal new_cron, @command.send(:updated_crontab)
|
178
|
-
|
158
|
+
|
179
159
|
@command.expects(:write_crontab).with(new_cron).returns(true)
|
180
160
|
assert @command.run
|
181
161
|
end
|
@@ -51,6 +51,25 @@ class OutputDefaultDefinedJobsTest < Test::Unit::TestCase
|
|
51
51
|
assert_no_match /bash/, @output
|
52
52
|
end
|
53
53
|
end
|
54
|
+
|
55
|
+
context "A plain command that is conditional on default environent and path" do
|
56
|
+
setup do
|
57
|
+
Whenever.expects(:path).at_least_once.returns('/what/you/want')
|
58
|
+
@output = Whenever.cron \
|
59
|
+
<<-file
|
60
|
+
set :job_template, nil
|
61
|
+
if environment == 'production' && path == '/what/you/want'
|
62
|
+
every 2.hours do
|
63
|
+
command "blahblah"
|
64
|
+
end
|
65
|
+
end
|
66
|
+
file
|
67
|
+
end
|
68
|
+
|
69
|
+
should "output the command" do
|
70
|
+
assert_match /blahblah/, @output
|
71
|
+
end
|
72
|
+
end
|
54
73
|
|
55
74
|
# runner
|
56
75
|
|
data/whenever.gemspec
CHANGED
@@ -5,33 +5,32 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{whenever}
|
8
|
-
s.version = "0.6.
|
8
|
+
s.version = "0.6.2"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Javan Makhmali"]
|
12
|
-
s.date = %q{2010-10-
|
13
|
-
s.description = %q{
|
12
|
+
s.date = %q{2010-10-26}
|
13
|
+
s.description = %q{Clean ruby syntax for writing and deploying cron jobs.}
|
14
14
|
s.email = %q{javan@javan.us}
|
15
15
|
s.executables = ["whenever", "wheneverize"]
|
16
16
|
s.extra_rdoc_files = [
|
17
|
-
"README.
|
17
|
+
"README.md"
|
18
18
|
]
|
19
19
|
s.files = [
|
20
20
|
".gitignore",
|
21
|
-
"CHANGELOG.
|
22
|
-
"README.
|
21
|
+
"CHANGELOG.md",
|
22
|
+
"README.md",
|
23
23
|
"Rakefile",
|
24
24
|
"bin/whenever",
|
25
25
|
"bin/wheneverize",
|
26
26
|
"lib/whenever.rb",
|
27
|
-
"lib/whenever/base.rb",
|
28
27
|
"lib/whenever/capistrano.rb",
|
29
28
|
"lib/whenever/command_line.rb",
|
30
29
|
"lib/whenever/cron.rb",
|
31
30
|
"lib/whenever/job.rb",
|
32
31
|
"lib/whenever/job_list.rb",
|
33
|
-
"lib/whenever/job_types/default.rb",
|
34
32
|
"lib/whenever/output_redirection.rb",
|
33
|
+
"lib/whenever/setup.rb",
|
35
34
|
"lib/whenever/version.rb",
|
36
35
|
"test/functional/command_line_test.rb",
|
37
36
|
"test/functional/output_at_test.rb",
|
@@ -48,7 +47,7 @@ Gem::Specification.new do |s|
|
|
48
47
|
s.rdoc_options = ["--charset=UTF-8"]
|
49
48
|
s.require_paths = ["lib"]
|
50
49
|
s.rubygems_version = %q{1.3.7}
|
51
|
-
s.summary = %q{
|
50
|
+
s.summary = %q{Write your cron jobs in ruby.}
|
52
51
|
s.test_files = [
|
53
52
|
"test/functional/command_line_test.rb",
|
54
53
|
"test/functional/output_at_test.rb",
|
metadata
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: whenever
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
+
hash: 3
|
4
5
|
prerelease: false
|
5
6
|
segments:
|
6
7
|
- 0
|
7
8
|
- 6
|
8
|
-
-
|
9
|
-
version: 0.6.
|
9
|
+
- 2
|
10
|
+
version: 0.6.2
|
10
11
|
platform: ruby
|
11
12
|
authors:
|
12
13
|
- Javan Makhmali
|
@@ -14,7 +15,7 @@ autorequire:
|
|
14
15
|
bindir: bin
|
15
16
|
cert_chain: []
|
16
17
|
|
17
|
-
date: 2010-10-
|
18
|
+
date: 2010-10-26 00:00:00 -04:00
|
18
19
|
default_executable:
|
19
20
|
dependencies:
|
20
21
|
- !ruby/object:Gem::Dependency
|
@@ -25,6 +26,7 @@ dependencies:
|
|
25
26
|
requirements:
|
26
27
|
- - ">="
|
27
28
|
- !ruby/object:Gem::Version
|
29
|
+
hash: 1
|
28
30
|
segments:
|
29
31
|
- 0
|
30
32
|
- 3
|
@@ -40,6 +42,7 @@ dependencies:
|
|
40
42
|
requirements:
|
41
43
|
- - ">="
|
42
44
|
- !ruby/object:Gem::Version
|
45
|
+
hash: 11
|
43
46
|
segments:
|
44
47
|
- 2
|
45
48
|
- 3
|
@@ -55,6 +58,7 @@ dependencies:
|
|
55
58
|
requirements:
|
56
59
|
- - ">="
|
57
60
|
- !ruby/object:Gem::Version
|
61
|
+
hash: 9
|
58
62
|
segments:
|
59
63
|
- 2
|
60
64
|
- 1
|
@@ -70,6 +74,7 @@ dependencies:
|
|
70
74
|
requirements:
|
71
75
|
- - ">="
|
72
76
|
- !ruby/object:Gem::Version
|
77
|
+
hash: 49
|
73
78
|
segments:
|
74
79
|
- 0
|
75
80
|
- 9
|
@@ -77,7 +82,7 @@ dependencies:
|
|
77
82
|
version: 0.9.5
|
78
83
|
type: :development
|
79
84
|
version_requirements: *id004
|
80
|
-
description:
|
85
|
+
description: Clean ruby syntax for writing and deploying cron jobs.
|
81
86
|
email: javan@javan.us
|
82
87
|
executables:
|
83
88
|
- whenever
|
@@ -85,23 +90,22 @@ executables:
|
|
85
90
|
extensions: []
|
86
91
|
|
87
92
|
extra_rdoc_files:
|
88
|
-
- README.
|
93
|
+
- README.md
|
89
94
|
files:
|
90
95
|
- .gitignore
|
91
|
-
- CHANGELOG.
|
92
|
-
- README.
|
96
|
+
- CHANGELOG.md
|
97
|
+
- README.md
|
93
98
|
- Rakefile
|
94
99
|
- bin/whenever
|
95
100
|
- bin/wheneverize
|
96
101
|
- lib/whenever.rb
|
97
|
-
- lib/whenever/base.rb
|
98
102
|
- lib/whenever/capistrano.rb
|
99
103
|
- lib/whenever/command_line.rb
|
100
104
|
- lib/whenever/cron.rb
|
101
105
|
- lib/whenever/job.rb
|
102
106
|
- lib/whenever/job_list.rb
|
103
|
-
- lib/whenever/job_types/default.rb
|
104
107
|
- lib/whenever/output_redirection.rb
|
108
|
+
- lib/whenever/setup.rb
|
105
109
|
- lib/whenever/version.rb
|
106
110
|
- test/functional/command_line_test.rb
|
107
111
|
- test/functional/output_at_test.rb
|
@@ -127,6 +131,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
127
131
|
requirements:
|
128
132
|
- - ">="
|
129
133
|
- !ruby/object:Gem::Version
|
134
|
+
hash: 3
|
130
135
|
segments:
|
131
136
|
- 0
|
132
137
|
version: "0"
|
@@ -135,6 +140,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
135
140
|
requirements:
|
136
141
|
- - ">="
|
137
142
|
- !ruby/object:Gem::Version
|
143
|
+
hash: 3
|
138
144
|
segments:
|
139
145
|
- 0
|
140
146
|
version: "0"
|
@@ -144,7 +150,7 @@ rubyforge_project:
|
|
144
150
|
rubygems_version: 1.3.7
|
145
151
|
signing_key:
|
146
152
|
specification_version: 3
|
147
|
-
summary:
|
153
|
+
summary: Write your cron jobs in ruby.
|
148
154
|
test_files:
|
149
155
|
- test/functional/command_line_test.rb
|
150
156
|
- test/functional/output_at_test.rb
|