scheduler_daemon 1.1.2 → 1.1.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 890009567ec01090073f904f667bc6a367617c0255f5edabb8a491c99d4044a2
4
+ data.tar.gz: 854decf91b48d1d3d039c0242e3332252e98c935ec77515aa487ca67a8972226
5
+ SHA512:
6
+ metadata.gz: 398d7780674d8abf32cc926d761b1ddfa93b1b0d072b79e61cd831f03992fae3d367d9a7953ce96031d125cc930ceeb40818fe2abfa3008cd21b63e35e880d7f
7
+ data.tar.gz: 330ae547ba14f48fdbb87fa6a0600edd1a9c5869eb980039a9cf0d9e918dc8b2899b1a9186717fed79f8024b83d27efd4e81a950257d2e5e04f1227b66e50968
data/Gemfile CHANGED
@@ -1,7 +1,2 @@
1
1
  source "http://rubygems.org"
2
2
  gemspec
3
- gem 'eventmachine', '>= 0.12.8'
4
- gem 'daemons', '>= 1.0.10'
5
- gem 'rufus-scheduler', '>= 2.0.1'
6
- gem 'chronic', '>= 0.2.0'
7
- gem 'activesupport'
data/Gemfile.lock CHANGED
@@ -1,36 +1,48 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- scheduler_daemon (1.1.0)
4
+ scheduler_daemon (1.1.5)
5
5
  activesupport
6
6
  chronic (>= 0.2.0)
7
- chronic (>= 0.2.0)
8
- daemons (>= 1.0.10)
9
7
  daemons (>= 1.0.10)
10
8
  eventmachine (>= 0.12.8)
11
- eventmachine (>= 0.12.8)
12
- rufus-scheduler (>= 2.0.1)
13
- rufus-scheduler (>= 2.0.1)
14
- scheduler_daemon
9
+ rufus-scheduler (~> 2.0.24)
15
10
 
16
11
  GEM
17
12
  remote: http://rubygems.org/
18
13
  specs:
19
- activesupport (3.0.6)
20
- chronic (0.3.0)
21
- daemons (1.1.2)
22
- eventmachine (0.12.10)
23
- rufus-scheduler (2.0.8)
24
- tzinfo (>= 0.3.23)
25
- tzinfo (0.3.26)
14
+ activesupport (7.0.4.2)
15
+ concurrent-ruby (~> 1.0, >= 1.0.2)
16
+ i18n (>= 1.6, < 2)
17
+ minitest (>= 5.1)
18
+ tzinfo (~> 2.0)
19
+ chronic (0.10.2)
20
+ concurrent-ruby (1.2.0)
21
+ daemons (1.4.1)
22
+ diff-lcs (1.5.0)
23
+ eventmachine (1.2.7)
24
+ i18n (1.12.0)
25
+ concurrent-ruby (~> 1.0)
26
+ minitest (5.17.0)
27
+ rspec (2.13.0)
28
+ rspec-core (~> 2.13.0)
29
+ rspec-expectations (~> 2.13.0)
30
+ rspec-mocks (~> 2.13.0)
31
+ rspec-core (2.13.1)
32
+ rspec-expectations (2.13.0)
33
+ diff-lcs (>= 1.1.3, < 2.0)
34
+ rspec-mocks (2.13.1)
35
+ rufus-scheduler (2.0.24)
36
+ tzinfo (>= 0.3.22)
37
+ tzinfo (2.0.6)
38
+ concurrent-ruby (~> 1.0)
26
39
 
27
40
  PLATFORMS
28
41
  ruby
29
42
 
30
43
  DEPENDENCIES
31
- activesupport
32
- chronic (>= 0.2.0)
33
- daemons (>= 1.0.10)
34
- eventmachine (>= 0.12.8)
35
- rufus-scheduler (>= 2.0.1)
44
+ rspec (~> 2.13.0)
36
45
  scheduler_daemon!
46
+
47
+ BUNDLED WITH
48
+ 2.4.3
data/README.markdown CHANGED
@@ -1,146 +1,163 @@
1
- Scheduler Daemon
2
- ================
1
+ # Scheduler Daemon
3
2
 
4
3
  Rails 3+ compatible scheduler daemon (see branches for older versions).
5
4
 
6
- Replaces cron/rake pattern of periodically running rake tasks
7
- to perform maintenance tasks in Rails apps. Scheduler Daemon is made specifically for your Rails app,
8
- and only loads the environment once, no matter how many tasks run.
5
+ Replaces cron/rake pattern of periodically running rake tasks to perform maintenance
6
+ tasks in Rails apps. Scheduler Daemon is made specifically for your Rails app, and only
7
+ loads the environment once, no matter how many tasks run.
9
8
 
10
- What's so great about it? Well, I'm glad you asked!
9
+ What's so great about it? Well, I'm glad you asked!
11
10
 
12
11
  - Only loads your Rails environment once on daemon start, not every time a task is run
13
- - Allows you to easily deploy the scheduled tasks with your Rails app instead of depending on an
14
- administrator to update crontab
12
+ - Allows you to easily deploy the scheduled tasks with your Rails app instead of depending on an administrator to update crontab
15
13
  - Can be installed as a gem or a plugin (I suggest gem)
16
14
  - It doesn't use rake or cron!
17
15
  - Gets you up and running with your own daemon in under 2 minutes
18
16
  - Specially designed to work with your rails app!
19
17
 
20
- Setup
21
- =====
18
+ ## Setup
22
19
 
23
20
  Install as a gem or plugin.
24
21
 
25
22
  As a gem, the old-fashioned way:
26
23
 
27
- gem install scheduler_daemon
24
+ ```
25
+ gem install scheduler_daemon
26
+ ```
28
27
 
29
- As a gem with bundler, add to your ./Gemfile:
28
+ As a gem with bundler, add to your `./Gemfile`:
30
29
 
31
- gem 'scheduler_daemon'
32
-
33
- I pretty much assume you chose this option below and prefix most commands with "bundle exec"
30
+ ```
31
+ gem 'scheduler_daemon'
32
+ ```
34
33
 
35
- As a plugin: (might be awkward to call the binary to start up the daemon...)
34
+ I pretty much assume you chose this option below and prefix most commands with `bundle exec`
36
35
 
37
- script/plugin install git://github.com/ssoroka/scheduler_daemon.git
38
- # Install required gems
39
- gem install daemons rufus-scheduler eventmachine chronic -s http://gemcutter.org
36
+ As a plugin (deprecated): (might be awkward to call the binary to start up the daemon...)
37
+
38
+ ```
39
+ rails plugin install git://github.com/ssoroka/scheduler_daemon.git
40
+ # Install required gems
41
+ gem install daemons rufus-scheduler eventmachine chronic -s http://gemcutter.org
42
+ ```
40
43
 
41
44
  Optionally generate the default scheduler daemon task for your rails app:
42
45
 
43
- script/rails generate scheduler_task MyNewTask
46
+ ```
47
+ rails generate scheduler_task MyNewTask
48
+ ```
44
49
 
45
- which will create an task named:
50
+ which will create a task named:
46
51
 
47
- scheduled_tasks/my_new_task.rb
52
+ ```
53
+ scheduled_tasks/my_new_task.rb
54
+ ```
48
55
 
49
- Usage
50
- =====
56
+ ## Usage
51
57
 
52
58
  generate a new scheduled task:
53
59
 
54
- script/rails generate scheduler_task MyTaskName
60
+ ```
61
+ rails generate scheduler_task MyTaskName
62
+ ```
63
+
64
+ If you have problems with that, the template for new tasks is [here](lib/scheduler_daemon/rails/generators/scheduler_task/templates/scheduled_tasks/example_task.rb)
55
65
 
56
- If you have problems with that, the template for new tasks is in the gem under:
57
-
58
- lib/scheduler_daemon/rails/generators/scheduler_task/templates/scheduled_tasks/example_task.rb
59
-
60
- you can always copy it and make modifications, or see "Manually create tasks" below.
66
+ You can always copy it and make modifications, or see [Manually create tasks](#manually-create-tasks)
61
67
 
62
68
  Tasks support their own special DSL; commands are:
63
69
 
64
- environments :production, :staging # run only in environments listed. (:all by default)
65
- every '1d' # run every day
66
- every '1d', :first_at => Chronic.parse("2 am") # run every day, starting at 2 am (see caveat below)
67
- at Cronic.parse('5 pm') # run *once* at 5 pm today
68
- # (relative to scheduler start/restart time )
69
- # (happens every time scheduler starts/restarts)
70
- # (see caveat below )
71
- cron '* 4 * * *' # cron style (run every 4 am)
72
- in '30s' # run once, 30 seconds from scheduler start/restart
70
+ ```rb
71
+ environments :production, :staging # run only in environments listed. (:all by default)
72
+ every '1d' # run every day
73
+ every '1d', :first_at => Chronic.parse("2 am") # run every day, starting at 2 am (see caveat below)
74
+ at Cronic.parse('5 pm') # run *once* at 5 pm today
75
+ # (relative to scheduler start/restart time )
76
+ # (happens every time scheduler starts/restarts)
77
+ # (see caveat below )
78
+ cron '* 4 * * *' # cron style (run every 4 am)
79
+ self.in '30s' # run once, 30 seconds from scheduler start/restart
80
+ # "self." is required--"in" is a keyword
81
+ ```
73
82
 
74
83
  fire up the daemon in console mode to test it out
75
84
 
76
- bundle exec scheduler_daemon run
85
+ ```
86
+ bundle exec scheduler_daemon run
87
+ ```
77
88
 
78
- For production environments, add the daemon to the system start-up, and
79
- capistrano deploy scripts, etc. Something like:
89
+ For production environments, add the daemon to the system start-up, and capistrano
90
+ deploy scripts, etc. Something like:
80
91
 
81
- export RAILS_ENV=production
82
- bundle exec scheduler_daemon start
92
+ ```
93
+ export RAILS_ENV=production
94
+ bundle exec scheduler_daemon start
95
+ ```
83
96
 
84
97
  Selectively run tasks like so:
85
98
 
86
- bundle exec scheduler_daemon start -- --only=task_name1,task_name2 --except=not_me
99
+ ```
100
+ bundle exec scheduler_daemon start -- --only=task_name1,task_name2 --except=not_me
101
+ ```
87
102
 
88
- Manually create tasks
89
- =====================
103
+ ## Manually create tasks
90
104
 
91
- If you don't want to use this gem with Rails, you can manually create tasks in a scheduled_tasks/ subdirectory and start the daemon with --skip-rails (though it'll figure it out anyway if there's no config/environment.rb file in the launch directory or --dir=/path)
105
+ If you don't want to use this gem with Rails, you can manually create tasks in a
106
+ `scheduled_tasks/` subdirectory and start the daemon with `--skip-rails` (though it'll
107
+ figure it out anyway if there's no `config/environment.rb` file in the launch directory
108
+ or `--dir=/path`)
92
109
 
93
110
  Here's an example task file.
94
111
 
95
- class CleanUpTask < Scheduler::SchedulerTask
96
- every '2m'
97
-
98
- def run
99
- do_something
100
- log("I've done things")
101
- end
102
- end
112
+ ```rb
113
+ class CleanUpTask < Scheduler::SchedulerTask
114
+ every '2m'
103
115
 
104
- Specs
105
- =====
116
+ def run
117
+ do_something
118
+ log("I've done things")
119
+ end
120
+ end
121
+ ```
106
122
 
107
- See the spec for session cleaner for an idea on how to write specs for your tasks
123
+ ## Specs
108
124
 
109
- To Do
110
- =====
125
+ See [this example spec](scheduler_daemon/spec/scheduled_tasks/session_cleaner_task_spec.rb)
126
+ for an idea on how to write specs for your tasks.
127
+
128
+ ## To Do
111
129
 
112
130
  Looking for suggestions!
113
131
 
114
132
  Send requests to ssoroka78@gmail.com or on twitter, @ssoroka
115
133
 
116
- Bugs
117
- ====
134
+ ## Bugs
118
135
 
119
- Submit bugs here http://github.com/ssoroka/scheduler_daemon/issues
136
+ Submit bugs [here](http://github.com/ssoroka/scheduler_daemon/issues)
120
137
 
121
- Caveats
122
- =======
138
+ ## Caveats
123
139
 
124
- When using the cronic gem to parse dates, be careful of how it interprets your date,
125
- for example:
140
+ When using the cronic gem to parse dates, be careful of how it interprets your date, for
141
+ example:
126
142
 
127
- every '24h', :first_at => Chronic.parse('noon')
143
+ ```
144
+ every '24h', :first_at => Chronic.parse('noon')
145
+ ```
128
146
 
129
147
  will be once a day at noon, but the first time the server starts up (or restarts), noon
130
- is relative to the current time of day. Before lunch, and it's in the future. If the
131
- daemon starts up after lunch, the date is in the past, *and the task is immediately run*
132
- because it thinks it missed its last execution time. Depending on what your task is,
133
- this may or may not be a problem. If you always want the date to resolve in the future
134
- with terms like "noon", "3 am" and "midnight", prepend "next" to it. ie:
148
+ is relative to the current time of day. Before lunch, and it's in the future. If the
149
+ daemon starts up after lunch, the date is in the past, *and the task is immediately run*
150
+ because it thinks it missed its last execution time. Depending on what your task is,
151
+ this may or may not be a problem. If you always want the date to resolve in the future
152
+ with terms like "noon", "3 am" and "midnight", prepend "next" to it. ie:
135
153
 
136
- every '24h', :first_at => Chronic.parse('next noon')
154
+ ```
155
+ every '24h', :first_at => Chronic.parse('next noon')
156
+ ```
137
157
 
138
- Author
139
- ======
158
+ ## Author
140
159
 
141
160
  Steven Soroka
142
161
 
143
162
  * [@ssoroka](http://twitter.com/ssoroka)
144
163
  * [My Github repo](http://github.com/ssoroka)
145
- * [My blog](http://blog.stevensoroka.ca)
146
-
data/Rakefile CHANGED
@@ -5,8 +5,8 @@ begin
5
5
  require 'jeweler'
6
6
  Jeweler::Tasks.new do |gem|
7
7
  gem.name = "scheduler_daemon"
8
- gem.summary = %Q{Rails 3 compatible scheduler daemon. Replaces cron/rake pattern of periodically running rake tasks
9
- to perform maintenance tasks in Rails apps. Scheduler Daemon is made specifically for your Rails app,
8
+ gem.summary = %Q{Rails 3 compatible scheduler daemon. Replaces cron/rake pattern of periodically running rake tasks
9
+ to perform maintenance tasks in Rails apps. Scheduler Daemon is made specifically for your Rails app,
10
10
  and only loads the environment once, no matter how many tasks run.
11
11
 
12
12
  What's so great about it? Well, I'm glad you asked!
@@ -22,16 +22,18 @@ begin
22
22
  gem.email = "ssoroka78@gmail.com"
23
23
  gem.homepage = "http://github.com/ssoroka/scheduler_daemon"
24
24
  gem.authors = ["Steven Soroka"]
25
+ gem.add_dependency('activesupport')
25
26
  gem.add_dependency('eventmachine', '>= 0.12.8')
26
27
  gem.add_dependency('daemons', '>= 1.0.10')
27
- gem.add_dependency('rufus-scheduler', '>= 2.0.1')
28
+ gem.add_dependency('rufus-scheduler', '~> 2.0.24')
28
29
  gem.add_dependency('chronic', '>= 0.2.0')
30
+ gem.add_development_dependency('rspec', '~> 2.13.0')
29
31
 
30
32
  gem.executables = ['scheduler_daemon']
31
-
33
+
32
34
  everything_from_dirs = %w(bin lib spec)
33
35
  gem.files = everything_from_dirs.map{|d| Dir["#{d}/**/*"] }.flatten
34
- gem.files += Dir['*'] - (everything_from_dirs + ['pkg'])
36
+ gem.files += Dir['*'] - (everything_from_dirs + %w(pkg vendor))
35
37
  # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
36
38
  end
37
39
 
@@ -44,16 +46,16 @@ end
44
46
  # spec.libs << 'lib' << 'spec'
45
47
  # spec.spec_files = FileList['spec/**/*_spec.rb']
46
48
  # end
47
- #
49
+ #
48
50
  # Spec::Rake::SpecTask.new(:rcov) do |spec|
49
51
  # spec.libs << 'lib' << 'spec'
50
52
  # spec.pattern = 'spec/**/*_spec.rb'
51
53
  # spec.rcov = true
52
54
  # end
53
- #
54
- #
55
+ #
56
+ #
55
57
  # task :default => :spec
56
- #
58
+ #
57
59
  # require 'rake/rdoctask'
58
60
  # Rake::RDocTask.new do |rdoc|
59
61
  # if File.exist?('VERSION.yml')
@@ -62,10 +64,10 @@ end
62
64
  # else
63
65
  # version = ""
64
66
  # end
65
- #
67
+ #
66
68
  # rdoc.rdoc_dir = 'rdoc'
67
69
  # rdoc.title = "scheduler_daemon #{version}"
68
70
  # rdoc.rdoc_files.include('README*')
69
71
  # rdoc.rdoc_files.include('lib/**/*.rb')
70
72
  # end
71
- #
73
+ #
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.1.2
1
+ 1.1.5
data/bin/scheduler_daemon CHANGED
@@ -41,16 +41,20 @@ end
41
41
 
42
42
  app_args[:dir] ||= Dir.pwd
43
43
  app_args[:pid_dir] ||= File.expand_path(File.join(app_args[:dir], 'log'))
44
+ app_args[:log_dir] ||= File.expand_path(File.join(app_args[:dir], 'log'))
45
+ app_args[:multiple] ||= false
44
46
  scheduler = File.join(File.dirname(__FILE__), %w(.. lib loader scheduler_loader.rb))
45
47
 
46
- raise "#{pid_dir} does not exist" unless File.exist?(app_args[:pid_dir])
48
+ raise "#{app_args[:pid_dir]} does not exist" unless File.exist?(app_args[:pid_dir])
49
+ raise "#{app_args[:log_dir]} does not exist" unless File.exist?(app_args[:log_dir])
47
50
 
48
51
  app_options = {
49
52
  :app_name => 'scheduler_daemon',
50
53
  :ARGV => launch_args(app_args),
51
54
  :dir_mode => :normal,
52
55
  :dir => app_args[:pid_dir],
53
- :multiple => false,
56
+ :log_dir => app_args[:log_dir],
57
+ :multiple => app_args[:multiple],
54
58
  :backtrace => true,
55
59
  :log_output => true,
56
60
  :monitor => true
@@ -57,7 +57,7 @@ module Scheduler
57
57
  def load_rails_env
58
58
  if File.exists?('config/environment.rb') && !@options['skip_rails']
59
59
  log("loading rails environment")
60
- require 'config/environment'
60
+ require File.expand_path('./config/environment')
61
61
  @env_name = ::Rails.env
62
62
  end
63
63
  rescue
@@ -92,12 +92,13 @@ module Scheduler
92
92
 
93
93
  EventMachine::run {
94
94
  @rufus_scheduler = Rufus::Scheduler::EmScheduler.start_new
95
+ @rufus_scheduler.singleton_class.send :define_method, :log, self.method(:log).to_proc
95
96
 
96
97
  def @rufus_scheduler.handle_exception(job, exception)
97
- msg = "[#{env_name}] scheduler job #{job.job_id} (#{job.tags * ' '}) caught exception #{exception.inspect}"
98
+ msg = "[#{@env_name}] scheduler job #{job.job_id} (#{job.tags * ' '}) caught exception #{exception.inspect}"
98
99
  log msg
99
100
  log exception.backtrace.join("\n")
100
- Scheduler::ExceptionHandler.handle_exception(exception, job, message)
101
+ Scheduler::ExceptionHandler.handle_exception(exception, job, msg)
101
102
  end
102
103
 
103
104
  def @rufus_scheduler.daemon_scheduler
@@ -106,10 +107,10 @@ module Scheduler
106
107
 
107
108
  # This is where the magic happens. tasks in scheduled_tasks/*.rb are loaded up.
108
109
  tasks.each do |task|
109
- if task.should_run_in_current_environment?(env_name)
110
+ if task.should_run_in_current_environment?(@env_name)
110
111
  task.add_to(@rufus_scheduler)
111
112
  else
112
- log "[#{env_name}] #{task} not configured to run; skipping."
113
+ log "[#{@env_name}] #{task} not configured to run; skipping."
113
114
  end
114
115
  end
115
116
  }
@@ -119,7 +120,7 @@ module Scheduler
119
120
  tasks_to_run.each{|f|
120
121
  begin
121
122
  unless options[:only].any? && options[:only].all?{|m| f !~ Regexp.new(Regexp.escape(m)) }
122
- require f
123
+ require File.expand_path("./#{f}")
123
124
  filename = f.split('/').last.split('.').first
124
125
  log "Loading task #{filename}..."
125
126
  @tasks << filename.camelcase.constantize # "path/newsfeed_task.rb" => NewsfeedTask
@@ -146,4 +147,4 @@ module Scheduler
146
147
  task_files
147
148
  end
148
149
  end
149
- end
150
+ end
@@ -6,6 +6,10 @@ class SchedulerTaskGenerator < Rails::Generators::NamedBase
6
6
  readme(File.join(template_dir, 'README'))
7
7
  end
8
8
 
9
+ def self.source_root
10
+ File.dirname(File.expand_path(__FILE__))
11
+ end
12
+
9
13
  private
10
14
  def source_dir
11
15
  File.join(template_dir, 'scheduled_tasks')
@@ -19,7 +19,7 @@ module Scheduler
19
19
  ensure
20
20
  # Note: AR's ActiveRecord::Base.connection_pool.with_connection(&block) seems broken;
21
21
  # it doesn't release the connection properly.
22
- ActiveRecord::Base.connection_pool.release_connection
22
+ ActiveRecord::Base.connection_pool.release_connection if defined?(ActiveRecord)
23
23
  end
24
24
  end
25
25
  end
@@ -67,9 +67,9 @@ module Scheduler
67
67
  def run
68
68
  nil
69
69
  end
70
-
70
+
71
71
  def log(*args)
72
- daemon_scheduler.log(*args)
72
+ daemon_scheduler.log(*args) if daemon_scheduler
73
73
  end
74
74
  alias :puts :log
75
75
  end
@@ -4,14 +4,14 @@
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
- s.name = %q{scheduler_daemon}
8
- s.version = "1.1.2"
7
+ s.name = "scheduler_daemon"
8
+ s.version = "1.1.5"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Steven Soroka"]
12
- s.date = %q{2011-04-14}
13
- s.description = %q{a Rails 2.3, Rails 3, and Ruby compatible scheduler daemon. Replaces cron/rake pattern of periodically running rake tasks to perform maintenance tasks, only loading the environment ONCE.}
14
- s.email = %q{ssoroka78@gmail.com}
12
+ s.date = "2014-02-25"
13
+ s.description = "a Rails 2.3, Rails 3, and Ruby compatible scheduler daemon. Replaces cron/rake pattern of periodically running rake tasks to perform maintenance tasks, only loading the environment ONCE."
14
+ s.email = "ssoroka78@gmail.com"
15
15
  s.executables = ["scheduler_daemon"]
16
16
  s.extra_rdoc_files = [
17
17
  "README.markdown"
@@ -44,54 +44,36 @@ Gem::Specification.new do |s|
44
44
  "spec/scheduler_spec.rb",
45
45
  "spec/spec_helper.rb"
46
46
  ]
47
- s.homepage = %q{http://github.com/ssoroka/scheduler_daemon}
47
+ s.homepage = "http://github.com/ssoroka/scheduler_daemon"
48
48
  s.require_paths = ["lib"]
49
- s.rubygems_version = %q{1.7.2}
50
- s.summary = %q{Rails 3 compatible scheduler daemon. Replaces cron/rake pattern of periodically running rake tasks to perform maintenance tasks in Rails apps. Scheduler Daemon is made specifically for your Rails app, and only loads the environment once, no matter how many tasks run. What's so great about it? Well, I'm glad you asked! - Only loads your Rails environment once on daemon start, not every time a task is run - Allows you to easily deploy the scheduled tasks with your Rails app instead of depending on an administrator to update crontab - It doesn't use rake or cron! - Gets you up and running with your own daemon in under 2 minutes}
51
- s.test_files = [
52
- "spec/command_line_args_to_hash_spec.rb",
53
- "spec/scheduled_tasks/session_cleaner_task_spec.rb",
54
- "spec/scheduler_spec.rb",
55
- "spec/spec_helper.rb"
56
- ]
49
+ s.rubygems_version = "1.8.23"
50
+ s.summary = "Rails 3 compatible scheduler daemon. Replaces cron/rake pattern of periodically running rake tasks to perform maintenance tasks in Rails apps. Scheduler Daemon is made specifically for your Rails app, and only loads the environment once, no matter how many tasks run. What's so great about it? Well, I'm glad you asked! - Only loads your Rails environment once on daemon start, not every time a task is run - Allows you to easily deploy the scheduled tasks with your Rails app instead of depending on an administrator to update crontab - It doesn't use rake or cron! - Gets you up and running with your own daemon in under 2 minutes"
57
51
 
58
52
  if s.respond_to? :specification_version then
59
53
  s.specification_version = 3
60
54
 
61
55
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
62
- s.add_runtime_dependency(%q<scheduler_daemon>, [">= 0"])
63
- s.add_runtime_dependency(%q<eventmachine>, [">= 0.12.8"])
64
- s.add_runtime_dependency(%q<daemons>, [">= 1.0.10"])
65
- s.add_runtime_dependency(%q<rufus-scheduler>, [">= 2.0.1"])
66
- s.add_runtime_dependency(%q<chronic>, [">= 0.2.0"])
67
56
  s.add_runtime_dependency(%q<activesupport>, [">= 0"])
68
57
  s.add_runtime_dependency(%q<eventmachine>, [">= 0.12.8"])
69
58
  s.add_runtime_dependency(%q<daemons>, [">= 1.0.10"])
70
- s.add_runtime_dependency(%q<rufus-scheduler>, [">= 2.0.1"])
59
+ s.add_runtime_dependency(%q<rufus-scheduler>, ["~> 2.0.24"])
71
60
  s.add_runtime_dependency(%q<chronic>, [">= 0.2.0"])
61
+ s.add_development_dependency(%q<rspec>, ["~> 2.13.0"])
72
62
  else
73
- s.add_dependency(%q<scheduler_daemon>, [">= 0"])
74
- s.add_dependency(%q<eventmachine>, [">= 0.12.8"])
75
- s.add_dependency(%q<daemons>, [">= 1.0.10"])
76
- s.add_dependency(%q<rufus-scheduler>, [">= 2.0.1"])
77
- s.add_dependency(%q<chronic>, [">= 0.2.0"])
78
63
  s.add_dependency(%q<activesupport>, [">= 0"])
79
64
  s.add_dependency(%q<eventmachine>, [">= 0.12.8"])
80
65
  s.add_dependency(%q<daemons>, [">= 1.0.10"])
81
- s.add_dependency(%q<rufus-scheduler>, [">= 2.0.1"])
66
+ s.add_dependency(%q<rufus-scheduler>, ["~> 2.0.24"])
82
67
  s.add_dependency(%q<chronic>, [">= 0.2.0"])
68
+ s.add_dependency(%q<rspec>, ["~> 2.13.0"])
83
69
  end
84
70
  else
85
- s.add_dependency(%q<scheduler_daemon>, [">= 0"])
86
- s.add_dependency(%q<eventmachine>, [">= 0.12.8"])
87
- s.add_dependency(%q<daemons>, [">= 1.0.10"])
88
- s.add_dependency(%q<rufus-scheduler>, [">= 2.0.1"])
89
- s.add_dependency(%q<chronic>, [">= 0.2.0"])
90
71
  s.add_dependency(%q<activesupport>, [">= 0"])
91
72
  s.add_dependency(%q<eventmachine>, [">= 0.12.8"])
92
73
  s.add_dependency(%q<daemons>, [">= 1.0.10"])
93
- s.add_dependency(%q<rufus-scheduler>, [">= 2.0.1"])
74
+ s.add_dependency(%q<rufus-scheduler>, ["~> 2.0.24"])
94
75
  s.add_dependency(%q<chronic>, [">= 0.2.0"])
76
+ s.add_dependency(%q<rspec>, ["~> 2.13.0"])
95
77
  end
96
78
  end
97
79
 
@@ -3,7 +3,7 @@ require 'scheduler_daemon/command_line_args_to_hash'
3
3
 
4
4
  describe CommandLineArgsToHash do
5
5
  it 'should process arguments' do
6
- h = CommandLineArgsToHash.parse('--hello')
6
+ h = CommandLineArgsToHash.parse(['--hello'])
7
7
  h['hello'].should == true
8
8
  end
9
9
 
@@ -23,4 +23,4 @@ describe CommandLineArgsToHash do
23
23
  h['two'].should == 'three'
24
24
  end
25
25
 
26
- end
26
+ end
@@ -9,12 +9,12 @@ require 'scheduler_daemon/rails/generators/scheduler/templates/lib/scheduled_tas
9
9
  describe SessionCleanerTask do
10
10
  before(:each) do
11
11
  @task = SessionCleanerTask.new
12
- @task.stub!(:log)
12
+ @task.stub(:log)
13
13
  end
14
14
 
15
15
  it "should remove old sessions" do
16
16
  # this test only matters if we're using AR's session store.
17
- if defined?(ActionController) && defined?(ActiveRecord) &&
17
+ if defined?(ActionController) && defined?(ActiveRecord) &&
18
18
  ActionController::Base.session_store == ActiveRecord::SessionStore
19
19
 
20
20
  # insert old session
@@ -4,7 +4,7 @@ require 'scheduler_daemon/base'
4
4
  describe Scheduler::Base do
5
5
  before(:each) do
6
6
  @scheduler = Scheduler::Base.new(:skip_init => true, :silent => true)
7
- @scheduler.stub!(:log)
7
+ @scheduler.stub(:log)
8
8
  end
9
9
 
10
10
  describe 'decide_what_to_run' do
metadata CHANGED
@@ -1,187 +1,109 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: scheduler_daemon
3
- version: !ruby/object:Gem::Version
4
- hash: 23
5
- prerelease:
6
- segments:
7
- - 1
8
- - 1
9
- - 2
10
- version: 1.1.2
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.1.5
11
5
  platform: ruby
12
- authors:
6
+ authors:
13
7
  - Steven Soroka
14
- autorequire:
8
+ autorequire:
15
9
  bindir: bin
16
10
  cert_chain: []
17
-
18
- date: 2011-04-14 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
21
- requirement: &id001 !ruby/object:Gem::Requirement
22
- none: false
23
- requirements:
11
+ date: 2014-02-25 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: activesupport
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
24
17
  - - ">="
25
- - !ruby/object:Gem::Version
26
- hash: 3
27
- segments:
28
- - 0
29
- version: "0"
30
- version_requirements: *id001
31
- name: scheduler_daemon
32
- prerelease: false
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
33
20
  type: :runtime
34
- - !ruby/object:Gem::Dependency
35
- requirement: &id002 !ruby/object:Gem::Requirement
36
- none: false
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- hash: 63
41
- segments:
42
- - 0
43
- - 12
44
- - 8
45
- version: 0.12.8
46
- version_requirements: *id002
47
- name: eventmachine
48
21
  prerelease: false
49
- type: :runtime
50
- - !ruby/object:Gem::Dependency
51
- requirement: &id003 !ruby/object:Gem::Requirement
52
- none: false
53
- requirements:
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
54
24
  - - ">="
55
- - !ruby/object:Gem::Version
56
- hash: 3
57
- segments:
58
- - 1
59
- - 0
60
- - 10
61
- version: 1.0.10
62
- version_requirements: *id003
63
- name: daemons
64
- prerelease: false
65
- type: :runtime
66
- - !ruby/object:Gem::Dependency
67
- requirement: &id004 !ruby/object:Gem::Requirement
68
- none: false
69
- requirements:
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: eventmachine
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
70
31
  - - ">="
71
- - !ruby/object:Gem::Version
72
- hash: 13
73
- segments:
74
- - 2
75
- - 0
76
- - 1
77
- version: 2.0.1
78
- version_requirements: *id004
79
- name: rufus-scheduler
80
- prerelease: false
32
+ - !ruby/object:Gem::Version
33
+ version: 0.12.8
81
34
  type: :runtime
82
- - !ruby/object:Gem::Dependency
83
- requirement: &id005 !ruby/object:Gem::Requirement
84
- none: false
85
- requirements:
86
- - - ">="
87
- - !ruby/object:Gem::Version
88
- hash: 23
89
- segments:
90
- - 0
91
- - 2
92
- - 0
93
- version: 0.2.0
94
- version_requirements: *id005
95
- name: chronic
96
35
  prerelease: false
97
- type: :runtime
98
- - !ruby/object:Gem::Dependency
99
- requirement: &id006 !ruby/object:Gem::Requirement
100
- none: false
101
- requirements:
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
102
38
  - - ">="
103
- - !ruby/object:Gem::Version
104
- hash: 3
105
- segments:
106
- - 0
107
- version: "0"
108
- version_requirements: *id006
109
- name: activesupport
110
- prerelease: false
111
- type: :runtime
112
- - !ruby/object:Gem::Dependency
113
- requirement: &id007 !ruby/object:Gem::Requirement
114
- none: false
115
- requirements:
116
- - - ">="
117
- - !ruby/object:Gem::Version
118
- hash: 63
119
- segments:
120
- - 0
121
- - 12
122
- - 8
39
+ - !ruby/object:Gem::Version
123
40
  version: 0.12.8
124
- version_requirements: *id007
125
- name: eventmachine
126
- prerelease: false
127
- type: :runtime
128
- - !ruby/object:Gem::Dependency
129
- requirement: &id008 !ruby/object:Gem::Requirement
130
- none: false
131
- requirements:
41
+ - !ruby/object:Gem::Dependency
42
+ name: daemons
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
132
45
  - - ">="
133
- - !ruby/object:Gem::Version
134
- hash: 3
135
- segments:
136
- - 1
137
- - 0
138
- - 10
46
+ - !ruby/object:Gem::Version
139
47
  version: 1.0.10
140
- version_requirements: *id008
141
- name: daemons
142
- prerelease: false
143
48
  type: :runtime
144
- - !ruby/object:Gem::Dependency
145
- requirement: &id009 !ruby/object:Gem::Requirement
146
- none: false
147
- requirements:
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
148
52
  - - ">="
149
- - !ruby/object:Gem::Version
150
- hash: 13
151
- segments:
152
- - 2
153
- - 0
154
- - 1
155
- version: 2.0.1
156
- version_requirements: *id009
53
+ - !ruby/object:Gem::Version
54
+ version: 1.0.10
55
+ - !ruby/object:Gem::Dependency
157
56
  name: rufus-scheduler
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 2.0.24
62
+ type: :runtime
158
63
  prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 2.0.24
69
+ - !ruby/object:Gem::Dependency
70
+ name: chronic
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: 0.2.0
159
76
  type: :runtime
160
- - !ruby/object:Gem::Dependency
161
- requirement: &id010 !ruby/object:Gem::Requirement
162
- none: false
163
- requirements:
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
164
80
  - - ">="
165
- - !ruby/object:Gem::Version
166
- hash: 23
167
- segments:
168
- - 0
169
- - 2
170
- - 0
81
+ - !ruby/object:Gem::Version
171
82
  version: 0.2.0
172
- version_requirements: *id010
173
- name: chronic
83
+ - !ruby/object:Gem::Dependency
84
+ name: rspec
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 2.13.0
90
+ type: :development
174
91
  prerelease: false
175
- type: :runtime
176
- description: a Rails 2.3, Rails 3, and Ruby compatible scheduler daemon. Replaces cron/rake pattern of periodically running rake tasks to perform maintenance tasks, only loading the environment ONCE.
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 2.13.0
97
+ description: a Rails 2.3, Rails 3, and Ruby compatible scheduler daemon. Replaces
98
+ cron/rake pattern of periodically running rake tasks to perform maintenance tasks,
99
+ only loading the environment ONCE.
177
100
  email: ssoroka78@gmail.com
178
- executables:
101
+ executables:
179
102
  - scheduler_daemon
180
103
  extensions: []
181
-
182
- extra_rdoc_files:
104
+ extra_rdoc_files:
183
105
  - README.markdown
184
- files:
106
+ files:
185
107
  - Gemfile
186
108
  - Gemfile.lock
187
109
  - MIT-LICENSE
@@ -210,39 +132,31 @@ files:
210
132
  - spec/spec_helper.rb
211
133
  homepage: http://github.com/ssoroka/scheduler_daemon
212
134
  licenses: []
213
-
214
- post_install_message:
135
+ metadata: {}
136
+ post_install_message:
215
137
  rdoc_options: []
216
-
217
- require_paths:
138
+ require_paths:
218
139
  - lib
219
- required_ruby_version: !ruby/object:Gem::Requirement
220
- none: false
221
- requirements:
140
+ required_ruby_version: !ruby/object:Gem::Requirement
141
+ requirements:
222
142
  - - ">="
223
- - !ruby/object:Gem::Version
224
- hash: 3
225
- segments:
226
- - 0
227
- version: "0"
228
- required_rubygems_version: !ruby/object:Gem::Requirement
229
- none: false
230
- requirements:
143
+ - !ruby/object:Gem::Version
144
+ version: '0'
145
+ required_rubygems_version: !ruby/object:Gem::Requirement
146
+ requirements:
231
147
  - - ">="
232
- - !ruby/object:Gem::Version
233
- hash: 3
234
- segments:
235
- - 0
236
- version: "0"
148
+ - !ruby/object:Gem::Version
149
+ version: '0'
237
150
  requirements: []
238
-
239
- rubyforge_project:
240
- rubygems_version: 1.7.2
241
- signing_key:
151
+ rubygems_version: 3.4.3
152
+ signing_key:
242
153
  specification_version: 3
243
- summary: Rails 3 compatible scheduler daemon. Replaces cron/rake pattern of periodically running rake tasks to perform maintenance tasks in Rails apps. Scheduler Daemon is made specifically for your Rails app, and only loads the environment once, no matter how many tasks run. What's so great about it? Well, I'm glad you asked! - Only loads your Rails environment once on daemon start, not every time a task is run - Allows you to easily deploy the scheduled tasks with your Rails app instead of depending on an administrator to update crontab - It doesn't use rake or cron! - Gets you up and running with your own daemon in under 2 minutes
244
- test_files:
245
- - spec/command_line_args_to_hash_spec.rb
246
- - spec/scheduled_tasks/session_cleaner_task_spec.rb
247
- - spec/scheduler_spec.rb
248
- - spec/spec_helper.rb
154
+ summary: Rails 3 compatible scheduler daemon. Replaces cron/rake pattern of periodically
155
+ running rake tasks to perform maintenance tasks in Rails apps. Scheduler Daemon
156
+ is made specifically for your Rails app, and only loads the environment once, no
157
+ matter how many tasks run. What's so great about it? Well, I'm glad you asked! -
158
+ Only loads your Rails environment once on daemon start, not every time a task is
159
+ run - Allows you to easily deploy the scheduled tasks with your Rails app instead
160
+ of depending on an administrator to update crontab - It doesn't use rake or cron!
161
+ - Gets you up and running with your own daemon in under 2 minutes
162
+ test_files: []