daemon_objects 0.2.1 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/daemon_objects/base.rb +3 -12
- data/lib/daemon_objects/{tasks/daemon_objects.rake → rake.rb} +8 -3
- data/lib/daemon_objects/version.rb +1 -1
- data/lib/daemon_objects.rb +9 -1
- data/spec/lib/daemon_objects/base_spec.rb +1 -43
- data/spec/lib/daemon_objects_spec.rb +42 -0
- data/spec/spec_helper.rb +1 -0
- metadata +3 -3
data/lib/daemon_objects/base.rb
CHANGED
@@ -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
|
42
|
-
|
43
|
-
|
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"
|
data/lib/daemon_objects.rb
CHANGED
@@ -4,7 +4,15 @@ require 'daemons'
|
|
4
4
|
require 'logger'
|
5
5
|
require 'bunny'
|
6
6
|
|
7
|
-
module DaemonObjects;
|
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
|
-
|
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
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.
|
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-
|
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/
|
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
|