lyre 0.1.1 → 0.1.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/lyre/app.rb +15 -27
- data/lib/lyre/version.rb +1 -1
- data/spec/end_to_end_spec.rb +2 -2
- data/spec/lifecycle_spec.rb +5 -22
- metadata +2 -5
- data/lib/lyre/registry.rb +0 -27
- data/spec/registration_spec.rb +0 -20
data/lib/lyre/app.rb
CHANGED
@@ -1,12 +1,12 @@
|
|
1
|
-
require '
|
2
|
-
require '
|
1
|
+
require 'sinatra/base'
|
2
|
+
require 'capybara'
|
3
3
|
|
4
4
|
module Lyre
|
5
5
|
|
6
6
|
#NOTE: Not sure this is the right name for this class
|
7
7
|
class App < Sinatra::Base
|
8
8
|
|
9
|
-
attr_accessor :
|
9
|
+
attr_accessor :endpoint
|
10
10
|
|
11
11
|
class << self
|
12
12
|
attr_accessor :setup_block, :teardown_block
|
@@ -19,37 +19,25 @@ module Lyre
|
|
19
19
|
self.teardown_block = block
|
20
20
|
end
|
21
21
|
|
22
|
-
|
23
|
-
|
22
|
+
def boot
|
23
|
+
instance = self.new! #maybe just new
|
24
24
|
|
25
|
-
|
26
|
-
|
27
|
-
Lyre::Registry.register_and_run self
|
28
|
-
self.class.setup_block.call(self) if self.class.setup_block
|
29
|
-
self.started = true
|
30
|
-
self
|
31
|
-
end
|
25
|
+
Capybara::Server.new(instance).tap do |server|
|
26
|
+
server.boot
|
32
27
|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
self.started = false
|
38
|
-
self
|
39
|
-
end
|
28
|
+
instance.endpoint = "http://#{server.host}:#{server.port}"
|
29
|
+
|
30
|
+
setup_block.call(instance) if setup_block
|
31
|
+
end
|
40
32
|
|
41
|
-
|
42
|
-
|
33
|
+
instance
|
34
|
+
end
|
43
35
|
end
|
44
36
|
|
45
|
-
def
|
46
|
-
|
37
|
+
def shutdown
|
38
|
+
self.class.teardown_block.call(self) if self.class.teardown_block
|
47
39
|
end
|
48
40
|
|
49
|
-
private
|
50
|
-
|
51
|
-
attr_accessor :started
|
52
|
-
|
53
41
|
end
|
54
42
|
|
55
43
|
end
|
data/lib/lyre/version.rb
CHANGED
data/spec/end_to_end_spec.rb
CHANGED
@@ -3,11 +3,11 @@ require 'spec_helper'
|
|
3
3
|
describe 'End to end test - Refactor later' do
|
4
4
|
|
5
5
|
before(:all) do
|
6
|
-
@lyre = FakeServiceLyre.
|
6
|
+
@lyre = FakeServiceLyre.boot
|
7
7
|
end
|
8
8
|
|
9
9
|
after(:all) do
|
10
|
-
@lyre.
|
10
|
+
@lyre.shutdown
|
11
11
|
end
|
12
12
|
|
13
13
|
it "should mock the endpoint that FakeService tries to access" do
|
data/spec/lifecycle_spec.rb
CHANGED
@@ -3,45 +3,28 @@ require 'spec_helper'
|
|
3
3
|
describe "Lifecycle Tests" do
|
4
4
|
|
5
5
|
describe "setup and teardown are called" do
|
6
|
-
before(:each) { @lyre = LifeCycleLyre.
|
7
|
-
after(:each) { @lyre.
|
6
|
+
before(:each) { @lyre = LifeCycleLyre.boot }
|
7
|
+
after(:each) { @lyre.shutdown }
|
8
8
|
|
9
9
|
it "should call setup block when the lyre is started" do
|
10
10
|
LifeCycleLyre.setup_called.should be_true
|
11
11
|
end
|
12
12
|
|
13
13
|
it "should call teardown block when the lyre is stopped" do
|
14
|
-
@lyre.
|
14
|
+
@lyre.shutdown
|
15
15
|
|
16
16
|
LifeCycleLyre.setup_called.should be_true
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
20
|
describe "setup and teardown are optional" do
|
21
|
-
before(:each) { @lyre = NoLifeCycleLyre.create }
|
22
|
-
after(:each) { @lyre.stop }
|
23
|
-
|
24
21
|
it "should not fail if the lyre has no setup" do
|
25
|
-
|
22
|
+
NoLifeCycleLyre.boot
|
26
23
|
end
|
27
24
|
|
28
25
|
it "should not fail of the lyre has no teardown" do
|
29
|
-
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
describe "start and stop are idempotent" do
|
34
|
-
before(:each) { @lyre = NoLifeCycleLyre.create }
|
35
|
-
after(:each) { @lyre.stop }
|
36
|
-
|
37
|
-
it "should allow start to be called twice" do
|
38
|
-
@lyre.start.start
|
39
|
-
end
|
40
|
-
|
41
|
-
it "should allow stop to be called twice" do
|
42
|
-
@lyre.start.stop.stop
|
26
|
+
NoLifeCycleLyre.boot.shutdown
|
43
27
|
end
|
44
|
-
|
45
28
|
end
|
46
29
|
|
47
30
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lyre
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.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: 2013-02-
|
12
|
+
date: 2013-02-18 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: sinatra
|
@@ -123,13 +123,11 @@ files:
|
|
123
123
|
- lib/lyre.rb
|
124
124
|
- lib/lyre/app.rb
|
125
125
|
- lib/lyre/constants.rb
|
126
|
-
- lib/lyre/registry.rb
|
127
126
|
- lib/lyre/version.rb
|
128
127
|
- lyre.gemspec
|
129
128
|
- spec/end_to_end_spec.rb
|
130
129
|
- spec/fake_service_spec.rb
|
131
130
|
- spec/lifecycle_spec.rb
|
132
|
-
- spec/registration_spec.rb
|
133
131
|
- spec/spec_helper.rb
|
134
132
|
- spec/support/fake_service.rb
|
135
133
|
- spec/support/fake_service_lyre.rb
|
@@ -163,7 +161,6 @@ test_files:
|
|
163
161
|
- spec/end_to_end_spec.rb
|
164
162
|
- spec/fake_service_spec.rb
|
165
163
|
- spec/lifecycle_spec.rb
|
166
|
-
- spec/registration_spec.rb
|
167
164
|
- spec/spec_helper.rb
|
168
165
|
- spec/support/fake_service.rb
|
169
166
|
- spec/support/fake_service_lyre.rb
|
data/lib/lyre/registry.rb
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
require 'capybara'
|
2
|
-
|
3
|
-
module Lyre
|
4
|
-
module Registry
|
5
|
-
|
6
|
-
@@registry = {}
|
7
|
-
|
8
|
-
def self.register_and_run(lyre)
|
9
|
-
raise "Lyre already registered" if @@registry.has_key? lyre.class
|
10
|
-
|
11
|
-
@@registry[lyre.class] = Capybara::Server.new(lyre).tap do |server|
|
12
|
-
server.boot
|
13
|
-
|
14
|
-
lyre.host = server.host
|
15
|
-
lyre.port = server.port
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
def self.stop_and_deregister(lyre)
|
20
|
-
raise "Lyre not registered" unless @@registry.has_key? lyre.class
|
21
|
-
|
22
|
-
#server cannot be stopped
|
23
|
-
|
24
|
-
@@registry.delete(lyre.class)
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
data/spec/registration_spec.rb
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe "Lyre registration" do
|
4
|
-
|
5
|
-
before(:each) do
|
6
|
-
@lyre_one = FakeServiceLyre.create
|
7
|
-
@lyre_two = FakeServiceLyre.create
|
8
|
-
end
|
9
|
-
|
10
|
-
after(:each) do
|
11
|
-
@lyre_one.stop
|
12
|
-
@lyre_two.stop
|
13
|
-
end
|
14
|
-
|
15
|
-
it "should not allow two instances of the same lyre to run simultaneously" do
|
16
|
-
@lyre_one.start
|
17
|
-
expect { @lyre_two.start }.to raise_error('Lyre already registered')
|
18
|
-
end
|
19
|
-
|
20
|
-
end
|