daemons-rails 1.1.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.markdown CHANGED
@@ -5,7 +5,7 @@ To get it work just add dependency to this gem in your Gemfile.
5
5
 
6
6
  ## NOTES ##
7
7
 
8
- If you switching from version before 1.1 you may need to move script/daemons file to lib/daemons directory.
8
+ **If you are switching from earlier version to 1.1 you may need to move script/daemons file to lib/daemons directory.**
9
9
 
10
10
  ## GENERATOR ##
11
11
 
@@ -29,7 +29,7 @@ Examples:
29
29
 
30
30
  App-wide control script:
31
31
 
32
- ./script/daemons [start|stop|restart]
32
+ ./lib/daemons/daemons [start|stop|restart|status]
33
33
  rake daemons:(start|stop|status)
34
34
 
35
35
  ## MONITORING API ##
@@ -45,7 +45,7 @@ App-wide control script:
45
45
  controller.app_name # => test.rb
46
46
  controller.start # => starts daemon
47
47
  controller.stop # => stops daemon
48
- controller.status # => :not_exists or :running
48
+ controller.status # => :not_exists or :running
49
49
 
50
50
  ## CONFIGURATION ##
51
51
 
@@ -63,8 +63,22 @@ If you want to use directory other than default lib/daemons then you should add
63
63
  If you change your mind, you can easily move content of this directory to other place and change config.
64
64
  Notice: this feature available only from version 1.1 and old generated daemons can't be free moved, because uses hard-coded path to lib/daemons. So, you can generate daemons with same names and then move client code to generated templates.
65
65
 
66
+ ## USING MULTIPLE DAEMON SETS ##
67
+
68
+ At this moment it is not supported at generators and rake tasks levels, but you can generate daemon to default location and move to different folder (you should also copy *daemons* script to same directory). Then you will be able to operate with them using following scripts:
69
+
70
+ other/daemons/location/daemons [start|stop|restart|status]
71
+ other/daemons/location/<daemon_name>_ctl [start|stop|restart|status]
72
+
73
+ To access the daemons with Monitoring API you can use configured instance of *Daemons::Rails::Monitoring*:
74
+
75
+ Daemons::Rails::Monitoring.new("other/daemons/location")
76
+
77
+ and same set of methods. Effectively, *Daemons::Rails::Monitoring* just delegates all method calls to *Daemons::Rails::Monitoring.default* initialized with configured daemons path.
78
+
66
79
  ## CHANGES ##
67
80
 
81
+ * 1.1.1 - fix dependencies, clean-up specs
68
82
  * 1.1.0 - supported custom directory for daemons, support multiple daemons directories
69
83
  * 1.0.0 - changed api for Daemons::Rails::Monitoring, fixed path in template for script, improved documentation, added RSpec
70
84
  * 0.0.3 - added rake for running script without daemonization (rake daemon:\<name\>)
@@ -19,5 +19,5 @@ Gem::Specification.new do |gem|
19
19
  gem.add_dependency 'daemons'
20
20
  gem.add_dependency 'multi_json', '~>1.0'
21
21
  gem.add_development_dependency "rake"
22
- gem.add_development_dependency 'rspec', '~>2.7.0'
22
+ gem.add_development_dependency 'rspec', '>=2.12'
23
23
  end
@@ -1,5 +1,6 @@
1
1
  require 'yaml'
2
2
  require 'erb'
3
+ require 'pathname'
3
4
 
4
5
  require 'daemons/rails'
5
6
 
@@ -1,3 +1,6 @@
1
+ require 'pathname'
2
+ require 'fileutils'
3
+
1
4
  module Daemons
2
5
  module Rails
3
6
  class Configuration
@@ -1,22 +1,24 @@
1
1
  require "daemons"
2
+ require "pathname"
3
+ require "forwardable"
2
4
  require "daemons/rails"
3
5
  require "daemons/rails/config"
4
6
  require "daemons/rails/controller"
5
- require "active_support/core_ext/module/delegation.rb"
6
7
 
7
8
  module Daemons
8
9
  module Rails
9
10
  class Monitoring
11
+ singleton_class.extend Forwardable
12
+ singleton_class.def_delegators :default, :daemons_path=, :daemons_path, :controller, :controllers, :statuses, :start, :stop
13
+
10
14
  def self.default
11
15
  @default ||= self.new
12
16
  end
13
17
 
14
- def initialize(daemons_path = Daemons::Rails.configuration.daemons_path)
18
+ def initialize(daemons_path = nil)
15
19
  @daemons_path = daemons_path
16
20
  end
17
21
 
18
- singleton_class.delegate :daemons_path=, :daemons_path, :controller, :controllers, :statuses, :start, :stop, :to => :default
19
-
20
22
  # @deprecate use Daemons::Rails::Monitoring#daemons_path=
21
23
  def self.daemons_directory=(value)
22
24
  self.daemons_path = value
@@ -1,5 +1,5 @@
1
1
  module Daemons
2
2
  module Rails
3
- VERSION = "1.1.0"
3
+ VERSION = "1.1.1"
4
4
  end
5
5
  end
@@ -10,7 +10,6 @@ describe Daemons::Rails::Configuration do
10
10
  describe "rails env" do
11
11
  its(:root) { should == Rails.root }
12
12
  its(:daemons_path) { should == Rails.root.join('lib', 'daemons') }
13
- its(:daemons_path) { should == Pathname.new('lib').join('daemons') }
14
13
  end
15
14
 
16
15
  describe "no rails" do
@@ -26,7 +25,6 @@ describe Daemons::Rails::Configuration do
26
25
  end
27
26
  its(:root) { should == Rails_.root }
28
27
  its(:daemons_path) { should == Rails_.root.join('lib', 'daemons') }
29
- its(:daemons_path) { should == Pathname.new('lib').join('daemons') }
30
28
  end
31
29
  end
32
30
 
@@ -42,11 +40,10 @@ describe Daemons::Rails::Configuration do
42
40
  end
43
41
 
44
42
  its(:daemons_path) { should == Rails.root.join('daemons') }
45
- its(:daemons_path) { should == Pathname.new('daemons') }
46
43
 
47
44
  it "should override daemons directory" do
48
45
  Daemons::Rails::Monitoring.daemons_path.should == Rails.root.join('daemons')
49
46
  Daemons::Rails::Monitoring.controllers.map(&:app_name).should == %w(test2.rb)
50
47
  end
51
48
  end
52
- end
49
+ end
data/spec/spec_helper.rb CHANGED
@@ -2,10 +2,4 @@ class Rails
2
2
  def Rails.root
3
3
  @root ||= Pathname.new(File.absolute_path(File.dirname(__FILE__))).join('fixtures')
4
4
  end
5
- end
6
-
7
- RSpec.configure do |config|
8
- config.treat_symbols_as_metadata_keys_with_true_values = true
9
- config.run_all_when_everything_filtered = true
10
- config.filter_run :focus
11
- end
5
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: daemons-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,88 +9,88 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-09-06 00:00:00.000000000 Z
12
+ date: 2013-01-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: rails
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
21
19
  version: '3.0'
20
+ none: false
22
21
  type: :runtime
23
- prerelease: false
22
+ name: rails
24
23
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
24
  requirements:
27
25
  - - ~>
28
26
  - !ruby/object:Gem::Version
29
27
  version: '3.0'
28
+ none: false
29
+ prerelease: false
30
30
  - !ruby/object:Gem::Dependency
31
- name: daemons
32
31
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
32
  requirements:
35
33
  - - ! '>='
36
34
  - !ruby/object:Gem::Version
37
35
  version: '0'
36
+ none: false
38
37
  type: :runtime
39
- prerelease: false
38
+ name: daemons
40
39
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
40
  requirements:
43
41
  - - ! '>='
44
42
  - !ruby/object:Gem::Version
45
43
  version: '0'
44
+ none: false
45
+ prerelease: false
46
46
  - !ruby/object:Gem::Dependency
47
- name: multi_json
48
47
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
48
  requirements:
51
49
  - - ~>
52
50
  - !ruby/object:Gem::Version
53
51
  version: '1.0'
52
+ none: false
54
53
  type: :runtime
55
- prerelease: false
54
+ name: multi_json
56
55
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
56
  requirements:
59
57
  - - ~>
60
58
  - !ruby/object:Gem::Version
61
59
  version: '1.0'
60
+ none: false
61
+ prerelease: false
62
62
  - !ruby/object:Gem::Dependency
63
- name: rake
64
63
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
64
  requirements:
67
65
  - - ! '>='
68
66
  - !ruby/object:Gem::Version
69
67
  version: '0'
68
+ none: false
70
69
  type: :development
71
- prerelease: false
70
+ name: rake
72
71
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
72
  requirements:
75
73
  - - ! '>='
76
74
  - !ruby/object:Gem::Version
77
75
  version: '0'
76
+ none: false
77
+ prerelease: false
78
78
  - !ruby/object:Gem::Dependency
79
- name: rspec
80
79
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
80
  requirements:
83
- - - ~>
81
+ - - ! '>='
84
82
  - !ruby/object:Gem::Version
85
- version: 2.7.0
83
+ version: '2.12'
84
+ none: false
86
85
  type: :development
87
- prerelease: false
86
+ name: rspec
88
87
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
88
  requirements:
91
- - - ~>
89
+ - - ! '>='
92
90
  - !ruby/object:Gem::Version
93
- version: 2.7.0
91
+ version: '2.12'
92
+ none: false
93
+ prerelease: false
94
94
  description: daemons gem support for Rails 3
95
95
  email: []
96
96
  executables: []
@@ -135,17 +135,23 @@ rdoc_options: []
135
135
  require_paths:
136
136
  - lib
137
137
  required_ruby_version: !ruby/object:Gem::Requirement
138
- none: false
139
138
  requirements:
140
139
  - - ! '>='
141
140
  - !ruby/object:Gem::Version
141
+ hash: -1919585855362980352
142
142
  version: '0'
143
- required_rubygems_version: !ruby/object:Gem::Requirement
143
+ segments:
144
+ - 0
144
145
  none: false
146
+ required_rubygems_version: !ruby/object:Gem::Requirement
145
147
  requirements:
146
148
  - - ! '>='
147
149
  - !ruby/object:Gem::Version
150
+ hash: -1919585855362980352
148
151
  version: '0'
152
+ segments:
153
+ - 0
154
+ none: false
149
155
  requirements: []
150
156
  rubyforge_project:
151
157
  rubygems_version: 1.8.24
@@ -153,4 +159,3 @@ signing_key:
153
159
  specification_version: 3
154
160
  summary: daemons gem support for Rails 3
155
161
  test_files: []
156
- has_rdoc: