javan-whenever 0.3.6 → 0.3.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,8 @@
1
+ == 0.3.7 / September 4th, 2009
2
+
3
+ * No longer tries (and fails) to combine @shortcut jobs. #20 [Javan Makhmali]
4
+
5
+
1
6
  == 0.3.6 / June 15th, 2009
2
7
 
3
8
  * Setting a PATH in the crontab automatically based on the user's PATH. [Javan Makhmali]
data/Manifest CHANGED
@@ -21,3 +21,4 @@ test/output_env_test.rb
21
21
  test/output_rake_test.rb
22
22
  test/output_runner_test.rb
23
23
  test/test_helper.rb
24
+ whenever.gemspec
@@ -112,7 +112,7 @@ module Whenever
112
112
  # them into one that runs on the 2nd minute at the 3rd and 4th hour.
113
113
  #
114
114
  def combine(entries)
115
- entries.map! { |entry| entry.split(/ +/,6 )}
115
+ entries.map! { |entry| entry.split(/ +/, 6) }
116
116
  0.upto(4) do |f|
117
117
  (entries.length-1).downto(1) do |i|
118
118
  next if entries[i][f] == '*'
@@ -134,18 +134,25 @@ module Whenever
134
134
  def cron_jobs
135
135
  return if @jobs.empty?
136
136
 
137
- output = []
137
+ shortcut_jobs = []
138
+ regular_jobs = []
139
+
138
140
  @jobs.each do |time, jobs|
139
141
  jobs.each do |job|
140
142
  Whenever::Output::Cron.output(time, job) do |cron|
141
143
  cron << " >> #{job.cron_log} 2>&1" if job.cron_log
142
144
  cron << "\n\n"
143
- output << cron
145
+
146
+ if cron.starts_with?("@")
147
+ shortcut_jobs << cron
148
+ else
149
+ regular_jobs << cron
150
+ end
144
151
  end
145
152
  end
146
153
  end
147
-
148
- combine(output).join
154
+
155
+ shortcut_jobs.join + combine(regular_jobs).join
149
156
  end
150
157
 
151
158
  end
@@ -2,7 +2,7 @@ module Whenever
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 3
5
- TINY = 6
5
+ TINY = 7
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
@@ -134,4 +134,45 @@ class OutputAtTest < Test::Unit::TestCase
134
134
  end
135
135
  end
136
136
 
137
+ context "Multiple commands output every :reboot" do
138
+ setup do
139
+ @output = Whenever.cron \
140
+ <<-file
141
+ every :reboot do
142
+ command "command_1"
143
+ command "command_2"
144
+ end
145
+ file
146
+ end
147
+
148
+ should "output both commands @reboot" do
149
+ assert_match "@reboot command_1", @output
150
+ assert_match "@reboot command_2", @output
151
+ end
152
+ end
153
+
154
+ context "Many different job types output every :day" do
155
+ setup do
156
+ @output = Whenever.cron \
157
+ <<-file
158
+ set :path, '/your/path'
159
+ every :day do
160
+ rake "blah:blah"
161
+ runner "runner_1"
162
+ command "command_1"
163
+ runner "runner_2"
164
+ command "command_2"
165
+ end
166
+ file
167
+ end
168
+
169
+ should "output all of the commands @daily" do
170
+ assert_match '@daily cd /your/path && RAILS_ENV=production /usr/bin/env rake blah:blah', @output
171
+ assert_match '@daily /your/path/script/runner -e production "runner_1"', @output
172
+ assert_match '@daily command_1', @output
173
+ assert_match '@daily /your/path/script/runner -e production "runner_2"', @output
174
+ assert_match '@daily command_2', @output
175
+ end
176
+ end
177
+
137
178
  end
@@ -2,28 +2,27 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{whenever}
5
- s.version = "0.3.6"
5
+ s.version = "0.3.7"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Javan Makhmali"]
9
- s.date = %q{2009-07-15}
9
+ s.date = %q{2009-09-04}
10
10
  s.description = %q{Provides clean ruby syntax for defining messy cron jobs and running them Whenever.}
11
11
  s.email = %q{javan@javan.us}
12
12
  s.executables = ["whenever", "wheneverize"]
13
13
  s.extra_rdoc_files = ["bin/whenever", "bin/wheneverize", "CHANGELOG.rdoc", "lib/base.rb", "lib/command_line.rb", "lib/job_list.rb", "lib/job_types/default.rb", "lib/job_types/rake_task.rb", "lib/job_types/runner.rb", "lib/outputs/cron.rb", "lib/version.rb", "lib/whenever.rb", "README.rdoc"]
14
14
  s.files = ["bin/whenever", "bin/wheneverize", "CHANGELOG.rdoc", "lib/base.rb", "lib/command_line.rb", "lib/job_list.rb", "lib/job_types/default.rb", "lib/job_types/rake_task.rb", "lib/job_types/runner.rb", "lib/outputs/cron.rb", "lib/version.rb", "lib/whenever.rb", "Manifest", "Rakefile", "README.rdoc", "test/command_line_test.rb", "test/cron_test.rb", "test/output_at_test.rb", "test/output_command_test.rb", "test/output_env_test.rb", "test/output_rake_test.rb", "test/output_runner_test.rb", "test/test_helper.rb", "whenever.gemspec"]
15
- s.has_rdoc = true
16
15
  s.homepage = %q{http://github.com/javan/whenever}
17
16
  s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Whenever", "--main", "README.rdoc"]
18
17
  s.require_paths = ["lib"]
19
18
  s.rubyforge_project = %q{whenever}
20
- s.rubygems_version = %q{1.3.1}
19
+ s.rubygems_version = %q{1.3.5}
21
20
  s.summary = %q{Provides clean ruby syntax for defining messy cron jobs and running them Whenever.}
22
21
  s.test_files = ["test/command_line_test.rb", "test/cron_test.rb", "test/output_at_test.rb", "test/output_command_test.rb", "test/output_env_test.rb", "test/output_rake_test.rb", "test/output_runner_test.rb", "test/test_helper.rb"]
23
22
 
24
23
  if s.respond_to? :specification_version then
25
24
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
26
- s.specification_version = 2
25
+ s.specification_version = 3
27
26
 
28
27
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
29
28
  s.add_runtime_dependency(%q<chronic>, [">= 0.2.3"])
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: javan-whenever
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.6
4
+ version: 0.3.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Javan Makhmali
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-07-15 00:00:00 -07:00
12
+ date: 2009-09-04 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -68,7 +68,7 @@ files:
68
68
  - test/output_runner_test.rb
69
69
  - test/test_helper.rb
70
70
  - whenever.gemspec
71
- has_rdoc: true
71
+ has_rdoc: false
72
72
  homepage: http://github.com/javan/whenever
73
73
  post_install_message:
74
74
  rdoc_options:
@@ -97,7 +97,7 @@ requirements: []
97
97
  rubyforge_project: whenever
98
98
  rubygems_version: 1.2.0
99
99
  signing_key:
100
- specification_version: 2
100
+ specification_version: 3
101
101
  summary: Provides clean ruby syntax for defining messy cron jobs and running them Whenever.
102
102
  test_files:
103
103
  - test/command_line_test.rb