hireling 0.1.5 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -6,7 +6,7 @@ specification = Gem::Specification.new do |s|
6
6
  s.platform = Gem::Platform::RUBY
7
7
  s.name = "hireling"
8
8
  s.summary = "Simple scheduled process structure for Rails apps."
9
- s.version = "0.1.5"
9
+ s.version = "0.2.1"
10
10
  s.author = "David Vollbracht, Scott Conley"
11
11
  s.description = s.summary
12
12
  s.email = "scott.conley@flipstone.com"
data/bin/hirelings_ctl CHANGED
@@ -2,8 +2,6 @@
2
2
  require 'rubygems'
3
3
  require "daemons"
4
4
 
5
- options = {:dir => "log/", :monitor => false, :multiple => false, :dir_mode => :normal}
6
-
7
- ENV["foo"] ||= Dir.pwd
5
+ options = {:dir => "log/", :monitor => false, :multiple => false, :dir_mode => :normal, :rails_root => Dir.pwd}
8
6
 
9
7
  Daemons.run File.dirname(__FILE__) + '/../lib/hireling/hirelings.rb', options
data/lib/hireling.rb CHANGED
@@ -1,2 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # This file is loaded by Rails during gem initialization
4
+ #
1
5
  require 'hireling/hireling'
2
- require 'hireling/hirelings'
@@ -5,15 +5,18 @@ class Hireling
5
5
  attr_accessor :schedule
6
6
  end
7
7
 
8
- def self.each_app_hireling_name
9
- Dir[File.join(Rails.root, %w(app hirelings *.rb))].each do |hireling_file|
8
+ def self.each_app_hireling_name(rails_root)
9
+ hireling_classes ||= Dir[File.join(rails_root, %w(app hirelings *.rb))]
10
+ hireling_classes ||= Dir[File.join(%w(app hirelings *.rb))]
11
+ hireling_classes.each do |hireling_file|
12
+ require hireling_file
10
13
  hireling_name = File.basename(hireling_file, '.rb')
11
14
  yield hireling_name.to_sym
12
15
  end
13
16
  end
14
17
 
15
18
  def self.schedule_with_scheduler(scheduler)
16
- NewHire.schedule.schedule(scheduler, new)
19
+ Hireling.schedule.schedule(scheduler, new)
17
20
  info "scheduled"
18
21
  end
19
22
 
@@ -39,7 +42,7 @@ class Hireling
39
42
  end
40
43
 
41
44
  def self.info(message)
42
- Rails.logger.info "WorkingGirl #{name} at #{Time.now}: #{message}"
45
+ Rails.logger.info "Hireling #{name} at #{Time.now}: #{message}"
43
46
  end
44
47
 
45
48
  class Schedule
@@ -52,8 +55,8 @@ class Hireling
52
55
 
53
56
  def schedule(rufus_scheduler, hireling)
54
57
  proxy = @proxies[hireling.class.name.underscore.to_sym]
55
- raise "No schedule found for #{hireling.class}" unless proxy
56
- proxy.replay(rufus_scheduler,\nling)
58
+ raise "No schedule found for #{hireling.class.name.underscore.to_sym}" unless proxy
59
+ proxy.replay(rufus_scheduler,hireling)
57
60
  end
58
61
  end
59
62
 
@@ -1,14 +1,20 @@
1
1
  #!/usr/bin/env ruby
2
2
  #
3
+ # This file is invoked by the Daemons.run and launches the hirelings.
4
+ # Hireling control relies on the Rails environment for:
5
+ # - config/initializers/hirelings_schedule.rb
6
+ # - app/hirelings/<your_hirelings>.rb
7
+ #
3
8
  ENV["RAILS_ENV"] ||= "development"
4
9
 
5
- require "#{ENV['foo']}/config/environment"
10
+ require "daemons"
6
11
  require 'rufus/scheduler'
12
+ require "#{Daemons.controller.options[:rails_root]}/config/environment"
7
13
 
8
14
  scheduler = Rufus::Scheduler.start_new
9
15
 
10
- Hireling.each_app_hireling_name do |hireling_name|
11
- hireling_class = hireling_name.to_s.classify.constantize
16
+ Hireling.each_app_hireling_name(Daemons.controller.options[:rails_root]) do |hireling_name|
17
+ hireling_class = hireling_name.to_s.camelize.constantize
12
18
  hireling_class.schedule_with_scheduler scheduler
13
19
  end
14
20
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hireling
3
3
  version: !ruby/object:Gem::Version
4
- hash: 17
4
+ hash: 21
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
+ - 2
8
9
  - 1
9
- - 5
10
- version: 0.1.5
10
+ version: 0.2.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - David Vollbracht, Scott Conley