taskmaster 0.2.0 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.yardopts +1 -0
- data/Gemfile +3 -0
- data/{README.rdoc → README.md} +12 -19
- data/Rakefile +2 -9
- data/VERSION +1 -1
- data/lib/taskmaster/henchman.rb +15 -1
- data/lib/tasks/taskmaster.rake +2 -1
- data/taskmaster.gemspec +15 -5
- data/test/helper.rb +3 -0
- data/test/test_henchman.rb +5 -5
- data/test/test_taskmaster.rb +9 -9
- metadata +167 -80
data/.yardopts
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--no-private --markup markdown lib/**/*.rb
|
data/Gemfile
CHANGED
@@ -5,6 +5,7 @@ source "http://rubygems.org"
|
|
5
5
|
|
6
6
|
gem 'whenever'
|
7
7
|
gem 'activesupport'
|
8
|
+
gem 'i18n'
|
8
9
|
|
9
10
|
# Add dependencies to develop your gem here.
|
10
11
|
# Include everything needed to run rake, tests, features, etc.
|
@@ -14,4 +15,6 @@ group :development do
|
|
14
15
|
gem "rcov", ">= 0"
|
15
16
|
gem "rake", "0.8.7"
|
16
17
|
gem "mocha", "~> 0.9"
|
18
|
+
gem "yard", "~> 0.6.0"
|
19
|
+
gem "bluecloth", "~> 2.1.0"
|
17
20
|
end
|
data/{README.rdoc → README.md}
RENAMED
@@ -1,9 +1,8 @@
|
|
1
|
-
|
1
|
+
# taskmaster
|
2
2
|
|
3
|
-
Make your Ruby classes cron-aware!
|
3
|
+
Make your Ruby classes cron-aware! Taskmaster is a wrapper around the [whenever](https://rubygems.org/gems/whenever) gem that allows you to define your cron jobs within arbitrary Ruby classes, keeping those declarations next to the logic they rely on.
|
4
4
|
|
5
|
-
|
6
|
-
== Example
|
5
|
+
## Example
|
7
6
|
|
8
7
|
The base case is simple -- just include the `Taskmaster::Henchman` module, define a `run` class method, and use `whenever` syntax to specify when and how often the method should run:
|
9
8
|
|
@@ -21,21 +20,16 @@ The base case is simple -- just include the `Taskmaster::Henchman` module, defin
|
|
21
20
|
|
22
21
|
puts FootSoldier.cron_output # => "5,15,25,35,45,55 * * * * /bin/bash -l -c 'cd /... && script/runner -e production '\''BulkTask.run'\'''"
|
23
22
|
|
24
|
-
|
25
|
-
|
26
|
-
every 10.minutes, :run => :special_method
|
27
|
-
|
28
|
-
def self.special_method
|
29
|
-
# I'm not the default!
|
30
|
-
end
|
31
|
-
|
32
|
-
Check the documentation on `Taskmaster::Henchman.every` for details on all the allowed options.
|
23
|
+
For details on the options accepted by `every`, see the documentation for {Taskmaster::Henchman::ClassMethods#every}.
|
33
24
|
|
34
|
-
|
25
|
+
To actually use this in production, though, you'll want to rely on the `taskmaster:write` Rake task. Once you've defined your various jobs in the classes:
|
35
26
|
|
36
|
-
|
27
|
+
$ rake taskmaster:write
|
28
|
+
Your crontab has been written to config/schedule.rb. Please use the whenever script to write it to your system crontab.
|
29
|
+
$ whenever --write
|
30
|
+
[write] crontab file written
|
37
31
|
|
38
|
-
|
32
|
+
## Contributing to taskmaster
|
39
33
|
|
40
34
|
* Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
|
41
35
|
* Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
|
@@ -45,8 +39,7 @@ Check the documentation on `Taskmaster::Henchman.every` for details on all the a
|
|
45
39
|
* Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
|
46
40
|
* Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
|
47
41
|
|
48
|
-
|
42
|
+
## Copyright
|
49
43
|
|
50
|
-
Copyright (c) 2011 Ben Scofield. See LICENSE.txt for
|
51
|
-
further details.
|
44
|
+
Copyright (c) 2011 Ben Scofield. See LICENSE.txt for further details.
|
52
45
|
|
data/Rakefile
CHANGED
@@ -42,12 +42,5 @@ end
|
|
42
42
|
|
43
43
|
task :default => :test
|
44
44
|
|
45
|
-
require '
|
46
|
-
Rake::
|
47
|
-
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
48
|
-
|
49
|
-
rdoc.rdoc_dir = 'rdoc'
|
50
|
-
rdoc.title = "taskmaster #{version}"
|
51
|
-
rdoc.rdoc_files.include('README*')
|
52
|
-
rdoc.rdoc_files.include('lib/**/*.rb')
|
53
|
-
end
|
45
|
+
require 'yard'
|
46
|
+
YARD::Rake::YardocTask.new
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.3.0
|
data/lib/taskmaster/henchman.rb
CHANGED
@@ -14,23 +14,37 @@ module Taskmaster
|
|
14
14
|
end
|
15
15
|
|
16
16
|
module ClassMethods
|
17
|
+
# Declares the cron job using `whenever` syntax.
|
18
|
+
#
|
19
|
+
# @param [Integer, #to_s] frequency any frequency defined as valid for `whenever` (e.g., 600 (seconds), 1.day, :sunday, '0 12 * * *')
|
20
|
+
# @param [Hash] options configuration options
|
21
|
+
# @option options [Symbol] :run (:run) the class method to call in the cron job
|
22
|
+
# @option options [Symbol] :with (:runner) the `whenever` job type to use when defining the cron job
|
23
|
+
# @option options [Integer, #to_s] :at a specific time to start the cron job (e.g., `every :hour, :at => 6' runs a job 6 minutes after every hour; `every :day, :at => '4:30 am' runs a job at 4:30 am every day.)
|
17
24
|
def every(frequency, options = {})
|
18
25
|
@scheduled_jobs ||= []
|
19
26
|
method = options.delete(:run) || :run
|
20
|
-
command = options.delete(:
|
27
|
+
command = options.delete(:with) || :runner
|
21
28
|
@scheduled_jobs << "every #{frequency.to_s}, #{options.inspect} do
|
22
29
|
#{command.to_s} \'#{self.name}.#{method.to_s}\'
|
23
30
|
end"
|
24
31
|
end
|
25
32
|
|
33
|
+
# Must be overridden by including classes
|
26
34
|
def run
|
27
35
|
raise 'Not implemented'
|
28
36
|
end
|
29
37
|
|
38
|
+
# Cron syntax generated from the jobs scheduled in the including class
|
39
|
+
#
|
40
|
+
# @return [String] the cron syntax string
|
30
41
|
def cron_output
|
31
42
|
Whenever::JobList.new(@scheduled_jobs.join("\n")).generate_cron_output
|
32
43
|
end
|
33
44
|
|
45
|
+
# Jobs scheduled by the including class
|
46
|
+
#
|
47
|
+
# @return [Array] an array of whenever-syntax jobs
|
34
48
|
def scheduled_jobs
|
35
49
|
@scheduled_jobs
|
36
50
|
end
|
data/lib/tasks/taskmaster.rake
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'fileutils'
|
2
2
|
|
3
3
|
namespace :taskmaster do
|
4
|
-
desc "Preview the
|
4
|
+
desc "Preview the crontab for your defined jobs"
|
5
5
|
task :preview do
|
6
6
|
output = Taskmaster.cron_output
|
7
7
|
puts output
|
@@ -13,6 +13,7 @@ namespace :taskmaster do
|
|
13
13
|
FileUtils.mkdir_p 'config'
|
14
14
|
FileUtils.touch 'config/schedule.rb'
|
15
15
|
File.open('config/schedule.rb', File::WRONLY) do |file|
|
16
|
+
file << "# DO NOT EDIT THIS FILE -- it should only be modified with the taskmaster:write Rake task"
|
16
17
|
file << output
|
17
18
|
end
|
18
19
|
puts "Your crontab has been written to config/schedule.rb. Please use the whenever script to write it to your system crontab."
|
data/taskmaster.gemspec
CHANGED
@@ -5,22 +5,23 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{taskmaster}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.3.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Ben Scofield"]
|
12
|
-
s.date = %q{2011-06-
|
12
|
+
s.date = %q{2011-06-18}
|
13
13
|
s.description = %q{Taskmaster allows you to easily make your Ruby classes aware of cron.}
|
14
14
|
s.email = %q{git@turrean.com}
|
15
15
|
s.extra_rdoc_files = [
|
16
16
|
"LICENSE.txt",
|
17
|
-
"README.
|
17
|
+
"README.md"
|
18
18
|
]
|
19
19
|
s.files = [
|
20
20
|
".document",
|
21
|
+
".yardopts",
|
21
22
|
"Gemfile",
|
22
23
|
"LICENSE.txt",
|
23
|
-
"README.
|
24
|
+
"README.md",
|
24
25
|
"Rakefile",
|
25
26
|
"VERSION",
|
26
27
|
"lib/taskmaster.rb",
|
@@ -37,7 +38,7 @@ Gem::Specification.new do |s|
|
|
37
38
|
s.homepage = %q{http://github.com/bscofield/taskmaster}
|
38
39
|
s.licenses = ["MIT"]
|
39
40
|
s.require_paths = ["lib"]
|
40
|
-
s.rubygems_version = %q{1.
|
41
|
+
s.rubygems_version = %q{1.5.2}
|
41
42
|
s.summary = %q{Make your Ruby classes cron-aware}
|
42
43
|
|
43
44
|
if s.respond_to? :specification_version then
|
@@ -46,28 +47,37 @@ Gem::Specification.new do |s|
|
|
46
47
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
47
48
|
s.add_runtime_dependency(%q<whenever>, [">= 0"])
|
48
49
|
s.add_runtime_dependency(%q<activesupport>, [">= 0"])
|
50
|
+
s.add_runtime_dependency(%q<i18n>, [">= 0"])
|
49
51
|
s.add_development_dependency(%q<bundler>, ["~> 1"])
|
50
52
|
s.add_development_dependency(%q<jeweler>, ["~> 1.6.2"])
|
51
53
|
s.add_development_dependency(%q<rcov>, [">= 0"])
|
52
54
|
s.add_development_dependency(%q<rake>, ["= 0.8.7"])
|
53
55
|
s.add_development_dependency(%q<mocha>, ["~> 0.9"])
|
56
|
+
s.add_development_dependency(%q<yard>, ["~> 0.6.0"])
|
57
|
+
s.add_development_dependency(%q<bluecloth>, ["~> 2.1.0"])
|
54
58
|
else
|
55
59
|
s.add_dependency(%q<whenever>, [">= 0"])
|
56
60
|
s.add_dependency(%q<activesupport>, [">= 0"])
|
61
|
+
s.add_dependency(%q<i18n>, [">= 0"])
|
57
62
|
s.add_dependency(%q<bundler>, ["~> 1"])
|
58
63
|
s.add_dependency(%q<jeweler>, ["~> 1.6.2"])
|
59
64
|
s.add_dependency(%q<rcov>, [">= 0"])
|
60
65
|
s.add_dependency(%q<rake>, ["= 0.8.7"])
|
61
66
|
s.add_dependency(%q<mocha>, ["~> 0.9"])
|
67
|
+
s.add_dependency(%q<yard>, ["~> 0.6.0"])
|
68
|
+
s.add_dependency(%q<bluecloth>, ["~> 2.1.0"])
|
62
69
|
end
|
63
70
|
else
|
64
71
|
s.add_dependency(%q<whenever>, [">= 0"])
|
65
72
|
s.add_dependency(%q<activesupport>, [">= 0"])
|
73
|
+
s.add_dependency(%q<i18n>, [">= 0"])
|
66
74
|
s.add_dependency(%q<bundler>, ["~> 1"])
|
67
75
|
s.add_dependency(%q<jeweler>, ["~> 1.6.2"])
|
68
76
|
s.add_dependency(%q<rcov>, [">= 0"])
|
69
77
|
s.add_dependency(%q<rake>, ["= 0.8.7"])
|
70
78
|
s.add_dependency(%q<mocha>, ["~> 0.9"])
|
79
|
+
s.add_dependency(%q<yard>, ["~> 0.6.0"])
|
80
|
+
s.add_dependency(%q<bluecloth>, ["~> 2.1.0"])
|
71
81
|
end
|
72
82
|
end
|
73
83
|
|
data/test/helper.rb
CHANGED
data/test/test_henchman.rb
CHANGED
@@ -9,23 +9,23 @@ class TestHenchman < Test::Unit::TestCase
|
|
9
9
|
end
|
10
10
|
|
11
11
|
def test_the_base_case_should_work
|
12
|
-
assert_equal "0,10,20,30,40,50 * * * * /bin/bash -l -c 'cd
|
12
|
+
assert_equal "0,10,20,30,40,50 * * * * /bin/bash -l -c 'cd #{whenever_cd_path} && script/runner -e production '\\''FootSoldier.run'\\'''", FootSoldier.cron_output.strip
|
13
13
|
end
|
14
14
|
|
15
15
|
def test_scheduled_methods_should_be_overradble
|
16
|
-
assert_equal "0 * * * * /bin/bash -l -c 'cd
|
16
|
+
assert_equal "0 * * * * /bin/bash -l -c 'cd #{whenever_cd_path} && script/runner -e production '\\''SpecialSoldier.specialty'\\'''", SpecialSoldier.cron_output.strip
|
17
17
|
end
|
18
18
|
|
19
19
|
def test_multiple_tasks_can_live_in_a_class
|
20
20
|
output = MultiSoldier.cron_output.split(/\n+/)
|
21
21
|
assert_equal 2, output.size
|
22
22
|
|
23
|
-
assert_equal "* * * * * /bin/bash -l -c 'cd
|
24
|
-
assert_equal "0 * * * * /bin/bash -l -c 'cd
|
23
|
+
assert_equal "* * * * * /bin/bash -l -c 'cd #{whenever_cd_path} && script/runner -e production '\\''MultiSoldier.run'\\'''", output[0]
|
24
|
+
assert_equal "0 * * * * /bin/bash -l -c 'cd #{whenever_cd_path} && script/runner -e production '\\''MultiSoldier.specialty'\\'''", output[1]
|
25
25
|
end
|
26
26
|
|
27
27
|
def test_whenever_options_should_be_respected
|
28
|
-
assert_equal "20 * * * * /bin/bash -l -c 'cd
|
28
|
+
assert_equal "20 * * * * /bin/bash -l -c 'cd #{whenever_cd_path} && script/runner -e production '\\''SpecificSoldier.run'\\'''", SpecificSoldier.cron_output.strip
|
29
29
|
end
|
30
30
|
|
31
31
|
def test_different_whenever_commands_should_be_usable
|
data/test/test_taskmaster.rb
CHANGED
@@ -44,10 +44,10 @@ WHENEVERSYNTAX
|
|
44
44
|
def test_taskmaster_should_know_all_output
|
45
45
|
output = Taskmaster.aggregate
|
46
46
|
|
47
|
-
assert_equal "0,10,20,30,40,50 * * * * /bin/bash -l -c 'cd
|
48
|
-
assert_equal "0 * * * * /bin/bash -l -c 'cd
|
49
|
-
assert_equal "* * * * * /bin/bash -l -c 'cd
|
50
|
-
assert_equal "0 * * * * /bin/bash -l -c 'cd
|
47
|
+
assert_equal "0,10,20,30,40,50 * * * * /bin/bash -l -c 'cd #{whenever_cd_path} && script/runner -e production '\\''FootSoldier.run'\\'''", output['FootSoldier']
|
48
|
+
assert_equal "0 * * * * /bin/bash -l -c 'cd #{whenever_cd_path} && script/runner -e production '\\''SpecialSoldier.specialty'\\'''", output['SpecialSoldier']
|
49
|
+
assert_equal "* * * * * /bin/bash -l -c 'cd #{whenever_cd_path} && script/runner -e production '\\''MultiSoldier.run'\\'''", output['MultiSoldier'].split(/\n+/)[0]
|
50
|
+
assert_equal "0 * * * * /bin/bash -l -c 'cd #{whenever_cd_path} && script/runner -e production '\\''MultiSoldier.specialty'\\'''", output['MultiSoldier'].split(/\n+/)[1]
|
51
51
|
end
|
52
52
|
|
53
53
|
def test_taskmaster_should_not_know_an_app_name_when_not_in_rails
|
@@ -62,21 +62,21 @@ WHENEVERSYNTAX
|
|
62
62
|
def test_taskmaster_should_generate_sectioned_crontab_format
|
63
63
|
expected = <<-OUTOUTDAMNEDSPOT
|
64
64
|
#-- begin Taskmaster cron for hydra - FootSoldier
|
65
|
-
0,10,20,30,40,50 * * * * /bin/bash -l -c 'cd
|
65
|
+
0,10,20,30,40,50 * * * * /bin/bash -l -c 'cd #{whenever_cd_path} && script/runner -e production '\\''FootSoldier.run'\\'''
|
66
66
|
#-- end Taskmaster cron for hydra - FootSoldier
|
67
67
|
|
68
68
|
#-- begin Taskmaster cron for hydra - SpecialSoldier
|
69
|
-
0 * * * * /bin/bash -l -c 'cd
|
69
|
+
0 * * * * /bin/bash -l -c 'cd #{whenever_cd_path} && script/runner -e production '\\''SpecialSoldier.specialty'\\'''
|
70
70
|
#-- end Taskmaster cron for hydra - SpecialSoldier
|
71
71
|
|
72
72
|
#-- begin Taskmaster cron for hydra - MultiSoldier
|
73
|
-
* * * * * /bin/bash -l -c 'cd
|
73
|
+
* * * * * /bin/bash -l -c 'cd #{whenever_cd_path} && script/runner -e production '\\''MultiSoldier.run'\\'''
|
74
74
|
|
75
|
-
0 * * * * /bin/bash -l -c 'cd
|
75
|
+
0 * * * * /bin/bash -l -c 'cd #{whenever_cd_path} && script/runner -e production '\\''MultiSoldier.specialty'\\'''
|
76
76
|
#-- end Taskmaster cron for hydra - MultiSoldier
|
77
77
|
|
78
78
|
#-- begin Taskmaster cron for hydra - SpecificSoldier
|
79
|
-
20 * * * * /bin/bash -l -c 'cd
|
79
|
+
20 * * * * /bin/bash -l -c 'cd #{whenever_cd_path} && script/runner -e production '\\''SpecificSoldier.run'\\'''
|
80
80
|
#-- end Taskmaster cron for hydra - SpecificSoldier
|
81
81
|
|
82
82
|
#-- begin Taskmaster cron for hydra - CommandSoldier
|
metadata
CHANGED
@@ -1,106 +1,187 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: taskmaster
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 19
|
5
5
|
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 3
|
9
|
+
- 0
|
10
|
+
version: 0.3.0
|
6
11
|
platform: ruby
|
7
|
-
authors:
|
12
|
+
authors:
|
8
13
|
- Ben Scofield
|
9
14
|
autorequire:
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
|
-
|
17
|
+
|
18
|
+
date: 2011-06-18 00:00:00 -04:00
|
13
19
|
default_executable:
|
14
|
-
dependencies:
|
15
|
-
- !ruby/object:Gem::Dependency
|
16
|
-
|
17
|
-
requirement: &2152243520 !ruby/object:Gem::Requirement
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
18
23
|
none: false
|
19
|
-
requirements:
|
20
|
-
- -
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
|
23
|
-
|
24
|
+
requirements:
|
25
|
+
- - ">="
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
hash: 3
|
28
|
+
segments:
|
29
|
+
- 0
|
30
|
+
version: "0"
|
31
|
+
name: whenever
|
24
32
|
prerelease: false
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
33
|
+
type: :runtime
|
34
|
+
requirement: *id001
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
29
37
|
none: false
|
30
|
-
requirements:
|
31
|
-
- -
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
|
38
|
+
requirements:
|
39
|
+
- - ">="
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
hash: 3
|
42
|
+
segments:
|
43
|
+
- 0
|
44
|
+
version: "0"
|
45
|
+
name: activesupport
|
46
|
+
prerelease: false
|
34
47
|
type: :runtime
|
48
|
+
requirement: *id002
|
49
|
+
- !ruby/object:Gem::Dependency
|
50
|
+
version_requirements: &id003 !ruby/object:Gem::Requirement
|
51
|
+
none: false
|
52
|
+
requirements:
|
53
|
+
- - ">="
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
hash: 3
|
56
|
+
segments:
|
57
|
+
- 0
|
58
|
+
version: "0"
|
59
|
+
name: i18n
|
35
60
|
prerelease: false
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
61
|
+
type: :runtime
|
62
|
+
requirement: *id003
|
63
|
+
- !ruby/object:Gem::Dependency
|
64
|
+
version_requirements: &id004 !ruby/object:Gem::Requirement
|
40
65
|
none: false
|
41
|
-
requirements:
|
66
|
+
requirements:
|
42
67
|
- - ~>
|
43
|
-
- !ruby/object:Gem::Version
|
44
|
-
|
45
|
-
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
hash: 1
|
70
|
+
segments:
|
71
|
+
- 1
|
72
|
+
version: "1"
|
73
|
+
name: bundler
|
46
74
|
prerelease: false
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
75
|
+
type: :development
|
76
|
+
requirement: *id004
|
77
|
+
- !ruby/object:Gem::Dependency
|
78
|
+
version_requirements: &id005 !ruby/object:Gem::Requirement
|
51
79
|
none: false
|
52
|
-
requirements:
|
80
|
+
requirements:
|
53
81
|
- - ~>
|
54
|
-
- !ruby/object:Gem::Version
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
hash: 11
|
84
|
+
segments:
|
85
|
+
- 1
|
86
|
+
- 6
|
87
|
+
- 2
|
55
88
|
version: 1.6.2
|
56
|
-
|
89
|
+
name: jeweler
|
57
90
|
prerelease: false
|
58
|
-
version_requirements: *2152242080
|
59
|
-
- !ruby/object:Gem::Dependency
|
60
|
-
name: rcov
|
61
|
-
requirement: &2152241600 !ruby/object:Gem::Requirement
|
62
|
-
none: false
|
63
|
-
requirements:
|
64
|
-
- - ! '>='
|
65
|
-
- !ruby/object:Gem::Version
|
66
|
-
version: '0'
|
67
91
|
type: :development
|
92
|
+
requirement: *id005
|
93
|
+
- !ruby/object:Gem::Dependency
|
94
|
+
version_requirements: &id006 !ruby/object:Gem::Requirement
|
95
|
+
none: false
|
96
|
+
requirements:
|
97
|
+
- - ">="
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
hash: 3
|
100
|
+
segments:
|
101
|
+
- 0
|
102
|
+
version: "0"
|
103
|
+
name: rcov
|
68
104
|
prerelease: false
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
105
|
+
type: :development
|
106
|
+
requirement: *id006
|
107
|
+
- !ruby/object:Gem::Dependency
|
108
|
+
version_requirements: &id007 !ruby/object:Gem::Requirement
|
73
109
|
none: false
|
74
|
-
requirements:
|
75
|
-
- - =
|
76
|
-
- !ruby/object:Gem::Version
|
110
|
+
requirements:
|
111
|
+
- - "="
|
112
|
+
- !ruby/object:Gem::Version
|
113
|
+
hash: 49
|
114
|
+
segments:
|
115
|
+
- 0
|
116
|
+
- 8
|
117
|
+
- 7
|
77
118
|
version: 0.8.7
|
78
|
-
|
119
|
+
name: rake
|
79
120
|
prerelease: false
|
80
|
-
|
81
|
-
|
121
|
+
type: :development
|
122
|
+
requirement: *id007
|
123
|
+
- !ruby/object:Gem::Dependency
|
124
|
+
version_requirements: &id008 !ruby/object:Gem::Requirement
|
125
|
+
none: false
|
126
|
+
requirements:
|
127
|
+
- - ~>
|
128
|
+
- !ruby/object:Gem::Version
|
129
|
+
hash: 25
|
130
|
+
segments:
|
131
|
+
- 0
|
132
|
+
- 9
|
133
|
+
version: "0.9"
|
82
134
|
name: mocha
|
83
|
-
|
135
|
+
prerelease: false
|
136
|
+
type: :development
|
137
|
+
requirement: *id008
|
138
|
+
- !ruby/object:Gem::Dependency
|
139
|
+
version_requirements: &id009 !ruby/object:Gem::Requirement
|
84
140
|
none: false
|
85
|
-
requirements:
|
141
|
+
requirements:
|
86
142
|
- - ~>
|
87
|
-
- !ruby/object:Gem::Version
|
88
|
-
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
hash: 7
|
145
|
+
segments:
|
146
|
+
- 0
|
147
|
+
- 6
|
148
|
+
- 0
|
149
|
+
version: 0.6.0
|
150
|
+
name: yard
|
151
|
+
prerelease: false
|
89
152
|
type: :development
|
153
|
+
requirement: *id009
|
154
|
+
- !ruby/object:Gem::Dependency
|
155
|
+
version_requirements: &id010 !ruby/object:Gem::Requirement
|
156
|
+
none: false
|
157
|
+
requirements:
|
158
|
+
- - ~>
|
159
|
+
- !ruby/object:Gem::Version
|
160
|
+
hash: 11
|
161
|
+
segments:
|
162
|
+
- 2
|
163
|
+
- 1
|
164
|
+
- 0
|
165
|
+
version: 2.1.0
|
166
|
+
name: bluecloth
|
90
167
|
prerelease: false
|
91
|
-
|
168
|
+
type: :development
|
169
|
+
requirement: *id010
|
92
170
|
description: Taskmaster allows you to easily make your Ruby classes aware of cron.
|
93
171
|
email: git@turrean.com
|
94
172
|
executables: []
|
173
|
+
|
95
174
|
extensions: []
|
96
|
-
|
175
|
+
|
176
|
+
extra_rdoc_files:
|
97
177
|
- LICENSE.txt
|
98
|
-
- README.
|
99
|
-
files:
|
178
|
+
- README.md
|
179
|
+
files:
|
100
180
|
- .document
|
181
|
+
- .yardopts
|
101
182
|
- Gemfile
|
102
183
|
- LICENSE.txt
|
103
|
-
- README.
|
184
|
+
- README.md
|
104
185
|
- Rakefile
|
105
186
|
- VERSION
|
106
187
|
- lib/taskmaster.rb
|
@@ -115,31 +196,37 @@ files:
|
|
115
196
|
- test/test_taskmaster.rb
|
116
197
|
has_rdoc: true
|
117
198
|
homepage: http://github.com/bscofield/taskmaster
|
118
|
-
licenses:
|
199
|
+
licenses:
|
119
200
|
- MIT
|
120
201
|
post_install_message:
|
121
202
|
rdoc_options: []
|
122
|
-
|
203
|
+
|
204
|
+
require_paths:
|
123
205
|
- lib
|
124
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
206
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
125
207
|
none: false
|
126
|
-
requirements:
|
127
|
-
- -
|
128
|
-
- !ruby/object:Gem::Version
|
129
|
-
|
130
|
-
segments:
|
208
|
+
requirements:
|
209
|
+
- - ">="
|
210
|
+
- !ruby/object:Gem::Version
|
211
|
+
hash: 3
|
212
|
+
segments:
|
131
213
|
- 0
|
132
|
-
|
133
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
214
|
+
version: "0"
|
215
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
134
216
|
none: false
|
135
|
-
requirements:
|
136
|
-
- -
|
137
|
-
- !ruby/object:Gem::Version
|
138
|
-
|
217
|
+
requirements:
|
218
|
+
- - ">="
|
219
|
+
- !ruby/object:Gem::Version
|
220
|
+
hash: 3
|
221
|
+
segments:
|
222
|
+
- 0
|
223
|
+
version: "0"
|
139
224
|
requirements: []
|
225
|
+
|
140
226
|
rubyforge_project:
|
141
|
-
rubygems_version: 1.
|
227
|
+
rubygems_version: 1.5.2
|
142
228
|
signing_key:
|
143
229
|
specification_version: 3
|
144
230
|
summary: Make your Ruby classes cron-aware
|
145
231
|
test_files: []
|
232
|
+
|