sanford 0.4.0 → 0.6.0

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.
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sanford
3
3
  version: !ruby/object:Gem::Version
4
- hash: 15
4
+ hash: 7
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 4
8
+ - 6
9
9
  - 0
10
- version: 0.4.0
10
+ version: 0.6.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Collin Redding
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2013-01-28 00:00:00 Z
19
+ date: 2013-02-21 00:00:00 Z
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
22
  prerelease: false
@@ -25,32 +25,17 @@ dependencies:
25
25
  requirements:
26
26
  - - ~>
27
27
  - !ruby/object:Gem::Version
28
- hash: 13
29
- segments:
30
- - 1
31
- - 1
32
- version: "1.1"
33
- requirement: *id001
34
- name: daemons
35
- type: :runtime
36
- - !ruby/object:Gem::Dependency
37
- prerelease: false
38
- version_requirements: &id002 !ruby/object:Gem::Requirement
39
- none: false
40
- requirements:
41
- - - ~>
42
- - !ruby/object:Gem::Version
43
- hash: 9
28
+ hash: 15
44
29
  segments:
45
30
  - 0
46
- - 1
47
- version: "0.1"
48
- requirement: *id002
31
+ - 2
32
+ version: "0.2"
33
+ requirement: *id001
49
34
  name: dat-tcp
50
35
  type: :runtime
51
36
  - !ruby/object:Gem::Dependency
52
37
  prerelease: false
53
- version_requirements: &id003 !ruby/object:Gem::Requirement
38
+ version_requirements: &id002 !ruby/object:Gem::Requirement
54
39
  none: false
55
40
  requirements:
56
41
  - - ~>
@@ -60,12 +45,12 @@ dependencies:
60
45
  - 1
61
46
  - 0
62
47
  version: "1.0"
63
- requirement: *id003
48
+ requirement: *id002
64
49
  name: ns-options
65
50
  type: :runtime
66
51
  - !ruby/object:Gem::Dependency
67
52
  prerelease: false
68
- version_requirements: &id004 !ruby/object:Gem::Requirement
53
+ version_requirements: &id003 !ruby/object:Gem::Requirement
69
54
  none: false
70
55
  requirements:
71
56
  - - ~>
@@ -75,12 +60,12 @@ dependencies:
75
60
  - 0
76
61
  - 5
77
62
  version: "0.5"
78
- requirement: *id004
63
+ requirement: *id003
79
64
  name: sanford-protocol
80
65
  type: :runtime
81
66
  - !ruby/object:Gem::Dependency
82
67
  prerelease: false
83
- version_requirements: &id005 !ruby/object:Gem::Requirement
68
+ version_requirements: &id004 !ruby/object:Gem::Requirement
84
69
  none: false
85
70
  requirements:
86
71
  - - ~>
@@ -90,12 +75,12 @@ dependencies:
90
75
  - 1
91
76
  - 0
92
77
  version: "1.0"
93
- requirement: *id005
78
+ requirement: *id004
94
79
  name: assert
95
80
  type: :development
96
81
  - !ruby/object:Gem::Dependency
97
82
  prerelease: false
98
- version_requirements: &id006 !ruby/object:Gem::Requirement
83
+ version_requirements: &id005 !ruby/object:Gem::Requirement
99
84
  none: false
100
85
  requirements:
101
86
  - - ~>
@@ -105,15 +90,15 @@ dependencies:
105
90
  - 1
106
91
  - 0
107
92
  version: "1.0"
108
- requirement: *id006
93
+ requirement: *id005
109
94
  name: assert-mocha
110
95
  type: :development
111
96
  description: Simple hosts for Sanford services.
112
97
  email:
113
98
  - collin.redding@me.com
114
99
  - kelly@kellyredding.com
115
- executables: []
116
-
100
+ executables:
101
+ - sanford
117
102
  extensions: []
118
103
 
119
104
  extra_rdoc_files: []
@@ -129,14 +114,13 @@ files:
129
114
  - bench/runner.rb
130
115
  - bench/services.rb
131
116
  - bench/tasks.rb
117
+ - bin/sanford
132
118
  - lib/sanford.rb
119
+ - lib/sanford/cli.rb
133
120
  - lib/sanford/error_handler.rb
134
- - lib/sanford/exceptions.rb
135
121
  - lib/sanford/host.rb
136
122
  - lib/sanford/host_data.rb
137
123
  - lib/sanford/logger.rb
138
- - lib/sanford/manager.rb
139
- - lib/sanford/rake.rb
140
124
  - lib/sanford/runner.rb
141
125
  - lib/sanford/server.rb
142
126
  - lib/sanford/service_handler.rb
@@ -160,6 +144,7 @@ files:
160
144
  - test/unit/host_test.rb
161
145
  - test/unit/host_version_group_test.rb
162
146
  - test/unit/hosts_test.rb
147
+ - test/unit/manager_pid_file_test.rb
163
148
  - test/unit/manager_test.rb
164
149
  - test/unit/runner_test.rb
165
150
  - test/unit/server_test.rb
@@ -214,6 +199,7 @@ test_files:
214
199
  - test/unit/host_test.rb
215
200
  - test/unit/host_version_group_test.rb
216
201
  - test/unit/hosts_test.rb
202
+ - test/unit/manager_pid_file_test.rb
217
203
  - test/unit/manager_test.rb
218
204
  - test/unit/runner_test.rb
219
205
  - test/unit/server_test.rb
@@ -1,37 +0,0 @@
1
- module Sanford
2
-
3
- BaseError = Class.new(RuntimeError)
4
-
5
- NotFoundError = Class.new(RuntimeError)
6
-
7
- class NoHostError < BaseError
8
-
9
- def initialize(host_name)
10
- message = if Sanford.hosts.empty?
11
- "No hosts have been defined. Please define a host before trying to run Sanford."
12
- else
13
- "A host couldn't be found with the name #{host_name.inspect}. "
14
- end
15
- super message
16
- end
17
-
18
- end
19
-
20
- class InvalidHostError < BaseError
21
-
22
- def initialize(host)
23
- super "A port must be configured or provided to run a server for '#{host}'"
24
- end
25
-
26
- end
27
-
28
- class NoHandlerClassError < BaseError
29
-
30
- def initialize(handler_class_name)
31
- super "Sanford couldn't find the service handler '#{handler_class_name}'. " \
32
- "It doesn't exist or hasn't been required in yet."
33
- end
34
-
35
- end
36
-
37
- end
@@ -1,49 +0,0 @@
1
- require 'daemons'
2
-
3
- require 'sanford/host_data'
4
- require 'sanford/server'
5
-
6
- module Sanford
7
-
8
- class Manager
9
-
10
- def self.call(action, options = nil)
11
- options ||= {}
12
- options[:ip] ||= ENV['SANFORD_IP']
13
- options[:port] ||= ENV['SANFORD_PORT']
14
-
15
- name = options.delete(:host) || ENV['SANFORD_HOST']
16
- service_host = name ? Sanford.hosts.find(name) : Sanford.hosts.first
17
- raise(Sanford::NoHostError.new(name)) if !service_host
18
-
19
- self.new(service_host, options).call(action)
20
- end
21
-
22
- attr_reader :host_data, :process_name
23
-
24
- def initialize(service_host, options = {})
25
- @host_data = Sanford::HostData.new(service_host, options)
26
- @process_name = [ self.host_data.ip, self.host_data.port, self.host_data.name ].join('_')
27
- end
28
-
29
- def call(action)
30
- daemons_options = self.default_options.merge({ :ARGV => [ action.to_s ] })
31
- FileUtils.mkdir_p(daemons_options[:dir])
32
- ::Daemons.run_proc(self.process_name, daemons_options) do
33
- server = Sanford::Server.new(self.host_data)
34
- server.start
35
- server.join_thread
36
- end
37
- end
38
-
39
- protected
40
-
41
- def default_options
42
- { :dir_mode => :normal,
43
- :dir => self.host_data.pid_dir
44
- }
45
- end
46
-
47
- end
48
-
49
- end
data/lib/sanford/rake.rb DELETED
@@ -1,42 +0,0 @@
1
- module Sanford::Rake
2
-
3
- class Tasks
4
- extend ::Rake::DSL
5
-
6
- def self.load
7
- namespace :sanford do
8
-
9
- task :load_manager do
10
- require 'sanford'
11
- require 'sanford/manager'
12
- Sanford.init
13
- end
14
-
15
- desc "Start a Sanford server and daemonize the process"
16
- task :start => :load_manager do
17
- Sanford::Manager.call :start
18
- end
19
-
20
- desc "Stop a daemonized Sanford server process"
21
- task :stop => :load_manager do
22
- Sanford::Manager.call :stop
23
- end
24
-
25
- desc "Restart a daemonized Sanford server process"
26
- task :restart => :load_manager do
27
- Sanford::Manager.call :restart
28
- end
29
-
30
- desc "Run a Sanford server (not daemonized)"
31
- task :run => :load_manager do
32
- Sanford::Manager.call :run
33
- end
34
-
35
- end
36
- end
37
-
38
- end
39
-
40
- end
41
-
42
- Sanford::Rake::Tasks.load