saorin 0.3.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
data/lib/saorin/server.rb CHANGED
@@ -6,12 +6,15 @@ module Saorin
6
6
  self.load_path = 'saorin/server'
7
7
 
8
8
  class << self
9
- def new(handler, options = {}, &block)
9
+ def new(handler, options = {})
10
10
  adapter = options.delete(:adapter) || :rack
11
11
  adapter_class = guess adapter
12
- adapter_class.new handler, options, &block
12
+ adapter_class.new handler, options
13
+ end
14
+
15
+ def start(handler, options = {}, &block)
16
+ new(handler, options).start(&block)
13
17
  end
14
- alias_method :start, :new
15
18
  end
16
19
  end
17
20
  end
@@ -7,11 +7,13 @@ module Saorin
7
7
  module Server
8
8
  module Base
9
9
  attr_reader :handler, :allowed_methods
10
+ attr_reader :options
10
11
 
11
12
  def initialize(handler, options = {})
12
13
  @handler = handler
13
14
  @allowed_methods = options[:allowed_methods] || handler.public_methods(false)
14
15
  @allowed_methods.map! { |m| m.to_s }
16
+ @options = options
15
17
  end
16
18
 
17
19
  def process_request(content)
@@ -10,14 +10,25 @@ module Saorin
10
10
  'Content-Type' => 'application/json'
11
11
  }.freeze
12
12
 
13
- def initialize(handler, options = {}, &block)
14
- super handler, options
13
+ attr_reader :server
15
14
 
16
- ::Rack::Server.start({
15
+ def initialize(handler, options = {})
16
+ super
17
+ @server = ::Rack::Server.new({
17
18
  :app => self,
18
19
  :Host => options[:host],
19
20
  :Port => options[:port],
20
- }.merge(options))
21
+ }.merge(@options))
22
+ end
23
+
24
+ def start(&block)
25
+ @server.start &block
26
+ end
27
+
28
+ def shutdown
29
+ if @server.server.respond_to?(:shutdown)
30
+ @server.server.shutdonw
31
+ end
21
32
  end
22
33
 
23
34
  def call(env)
data/lib/saorin/test.rb CHANGED
@@ -49,19 +49,20 @@ module Saorin
49
49
 
50
50
  def create_test_server(options = {})
51
51
  @pid = Process.fork do
52
- @server = Saorin::Server.start(Handler.new, {
52
+ @server = Saorin::Server.new(Handler.new, {
53
53
  :host => HOST,
54
54
  :port => PORT,
55
55
  :Logger => Logger.new('/dev/null'),
56
56
  :AccessLog => [],
57
57
  }.merge(options))
58
+ @server.start
58
59
  end
59
- sleep 3
60
+ sleep 2
60
61
  end
61
62
 
62
63
  def shutdown_test_server
63
64
  Process.kill :INT, @pid
64
- sleep 3
65
+ sleep 2
65
66
  end
66
67
 
67
68
  def create_test_client(options = {})
@@ -1,3 +1,3 @@
1
1
  module Saorin
2
- VERSION = '0.3.0'
2
+ VERSION = '0.3.1'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: saorin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -140,7 +140,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
140
140
  version: '0'
141
141
  segments:
142
142
  - 0
143
- hash: 926844584898114179
143
+ hash: 1175865570057102178
144
144
  required_rubygems_version: !ruby/object:Gem::Requirement
145
145
  none: false
146
146
  requirements:
@@ -149,7 +149,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
149
149
  version: '0'
150
150
  segments:
151
151
  - 0
152
- hash: 926844584898114179
152
+ hash: 1175865570057102178
153
153
  requirements: []
154
154
  rubyforge_project:
155
155
  rubygems_version: 1.8.24