daemon_objects 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -21,10 +21,6 @@ class DaemonObjects::Base
21
21
  @app_directory ||= (defined? Rails) ? Rails.root : Rake.original_dir
22
22
  end
23
23
 
24
- def self.environment
25
- @environment ||= (defined? Rails) ? Rails.env : (ENV["DAEMON_ENV"] || "development")
26
- end
27
-
28
24
  def self.pid_directory
29
25
  File.join(app_directory, "tmp/pids")
30
26
  end
@@ -38,14 +34,9 @@ class DaemonObjects::Base
38
34
  end
39
35
 
40
36
  def self.get_consumer
41
- consumer_class.new(:logger => logger, :app_directory => app_directory, :environment => environment)
42
- rescue Exception => e
43
- logger.error("An exception occured while instantiating the consumer #{consumer_class}. Startup will be aborted.")
44
- logger.error("Error: #{e.class}")
45
- logger.error("Message: #{e.message}")
46
- logger.error(e.backtrace.join("\n"))
47
- Airbrake.notify(e) if defined?(Airbrake)
48
- raise e
37
+ consumer_class.new(:logger => logger,
38
+ :app_directory => app_directory,
39
+ :environment => DaemonObjects.environment)
49
40
  end
50
41
 
51
42
  def self.run
@@ -1,3 +1,4 @@
1
+ require_relative 'loader'
1
2
  namespace :daemon do
2
3
 
3
4
  # create tasks for each daemon to start/stop/restart/run
@@ -8,10 +9,14 @@ namespace :daemon do
8
9
  desc "starts the #{description}; can substitute stop or restart for start, " +
9
10
  "or use run to run the daemon in the foreground"
10
11
 
11
- [:start, :stop, :run].each do |action|
12
- task action do
13
- Rake::Task[:environment].invoke if Rake::Task.task_defined?(:environment)
14
12
 
13
+ task :daemon_environment do
14
+ Rake::Task[:environment].invoke if Rake::Task.task_defined?(:environment)
15
+ DaemonObjects.initialize_environment
16
+ end
17
+
18
+ [:start, :stop, :run].each do |action|
19
+ task action => [:daemon_environment] do
15
20
  require "daemon_objects"
16
21
  require "#{DaemonObjects.daemon_path}/#{daemon}_daemon.rb"
17
22
  require "#{DaemonObjects.daemon_path}/#{daemon}_consumer.rb"
@@ -1,3 +1,3 @@
1
1
  module DaemonObjects
2
- VERSION = "0.2.1"
2
+ VERSION = "0.2.2"
3
3
  end
@@ -4,7 +4,15 @@ require 'daemons'
4
4
  require 'logger'
5
5
  require 'bunny'
6
6
 
7
- module DaemonObjects; end
7
+ module DaemonObjects;
8
+ class << self
9
+ attr_accessor :environment
10
+
11
+ def initialize_environment
12
+ @environment = (defined? Rails) ? Rails.env : (ENV["DAEMON_ENV"] || "development")
13
+ end
14
+ end
15
+ end
8
16
 
9
17
  require 'daemon_objects/loader'
10
18
  require 'daemon_objects/amqp'
@@ -42,45 +42,6 @@ describe DaemonObjects::Base do
42
42
  end
43
43
  end
44
44
 
45
- describe '#environment' do
46
- context 'Rails' do
47
- before :each do
48
- Rails = Module.new do
49
- def self.env
50
- "railsenv"
51
- end
52
- end
53
- end
54
-
55
- after :each do
56
- Object.send(:remove_const, :Rails)
57
- end
58
-
59
- it 'should use Rails.env if Rails is defined' do
60
- MyDaemon = Class.new(DaemonObjects::Base)
61
- MyDaemon.environment.should == Rails.env
62
- end
63
- end
64
-
65
- context 'Env variable set' do
66
- before :each do
67
- ENV["DAEMON_ENV"] = "daemonenv"
68
- end
69
- after :each do
70
- ENV["DAEMON_ENV"] = nil
71
- end
72
- it 'should use environment variable if Rails is not defined' do
73
- MyDaemon = Class.new(DaemonObjects::Base)
74
- MyDaemon.environment.should == ENV["DAEMON_ENV"]
75
- end
76
- end
77
-
78
- it 'should be development if not Rails and no environment set' do
79
- MyDaemon = Class.new(DaemonObjects::Base)
80
- MyDaemon.environment.should == "development"
81
- end
82
- end
83
-
84
45
  describe '#extends' do
85
46
  it 'should extend logging' do
86
47
  MyDaemon = Class.new(DaemonObjects::Base)
@@ -173,10 +134,7 @@ describe DaemonObjects::Base do
173
134
  end
174
135
 
175
136
  it 'should set environment' do
176
- def MyDaemon.environment
177
- "theenv"
178
- end
179
-
137
+ DaemonObjects.environment = "theenv"
180
138
  consumer.environment.should == "theenv"
181
139
  end
182
140
 
@@ -14,4 +14,46 @@ describe DaemonObjects do
14
14
  DaemonObjects.get_daemon_name(path).should == "daemon_one"
15
15
  end
16
16
  end
17
+
18
+ describe '#environment' do
19
+ before :each do
20
+ DaemonObjects.initialize_environment
21
+ end
22
+
23
+ context 'Rails' do
24
+ before :each do
25
+ Rails = Module.new do
26
+ def self.env
27
+ "railsenv"
28
+ end
29
+ end
30
+ DaemonObjects.initialize_environment
31
+ end
32
+
33
+ after :each do
34
+ Object.send(:remove_const, :Rails)
35
+ end
36
+
37
+ it 'should use Rails.env if Rails is defined' do
38
+ DaemonObjects.environment.should == Rails.env
39
+ end
40
+ end
41
+
42
+ context 'Env variable set' do
43
+ before :each do
44
+ ENV["DAEMON_ENV"] = "daemonenv"
45
+ DaemonObjects.initialize_environment
46
+ end
47
+ after :each do
48
+ ENV["DAEMON_ENV"] = nil
49
+ end
50
+ it 'should use environment variable if Rails is not defined' do
51
+ DaemonObjects.environment.should == ENV["DAEMON_ENV"]
52
+ end
53
+ end
54
+
55
+ it 'should be development if not Rails and no environment set' do
56
+ DaemonObjects.environment.should == "development"
57
+ end
58
+ end
17
59
  end
data/spec/spec_helper.rb CHANGED
@@ -26,3 +26,4 @@ end
26
26
 
27
27
  require 'rake'
28
28
  require File.join(File.dirname(__FILE__), "../lib/daemon_objects.rb")
29
+ DaemonObjects.initialize_environment
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: daemon_objects
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-11-17 00:00:00.000000000 Z
12
+ date: 2014-11-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: daemons
@@ -149,7 +149,7 @@ files:
149
149
  - lib/daemon_objects/loader.rb
150
150
  - lib/daemon_objects/logging.rb
151
151
  - lib/daemon_objects/railtie.rb
152
- - lib/daemon_objects/tasks/daemon_objects.rake
152
+ - lib/daemon_objects/rake.rb
153
153
  - lib/daemon_objects/version.rb
154
154
  - spec/fixtures/daemon_path_spec/daemon_one_daemon.rb
155
155
  - spec/fixtures/daemon_path_spec/daemon_two_daemon.rb