excursion 0.0.12 → 0.0.13
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.
- checksums.yaml +4 -4
- data/lib/excursion/pool/application.rb +9 -3
- data/lib/excursion/pool/dsl.rb +30 -0
- data/lib/excursion/pool.rb +35 -7
- data/lib/excursion/version.rb +1 -1
- data/spec/dummy/config/application.rb +1 -1
- data/spec/dummy/config/environments/development.rb +2 -2
- data/spec/dummy/config/environments/test.rb +1 -1
- data/spec/dummy/log/development.log +46193 -0
- data/spec/excursion/pool/dsl_spec.rb +99 -0
- data/spec/excursion/pool_spec.rb +47 -2
- metadata +7 -2
@@ -0,0 +1,99 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'Excursion::Pool::DSL' do
|
4
|
+
|
5
|
+
context 'when an application is provided' do
|
6
|
+
let(:dummy_app) { Excursion::Pool::Application.new('dummy', {}) }
|
7
|
+
|
8
|
+
it 'should use the provided application' do
|
9
|
+
expect(Excursion::Pool::DSL.block_eval(dummy_app)).to eql(dummy_app)
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'should allow overriding the name of the application' do
|
13
|
+
modified = Excursion::Pool::DSL.block_eval(dummy_app) do
|
14
|
+
name 'modified'
|
15
|
+
end
|
16
|
+
expect(modified.name).to eql('modified')
|
17
|
+
expect(modified).to eql(dummy_app)
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'should allow overriding the default_url_options for the application' do
|
21
|
+
url_opts = {host: 'dummy.local', port: 1234}
|
22
|
+
modified = Excursion::Pool::DSL.block_eval(dummy_app) do
|
23
|
+
default_url_options url_opts
|
24
|
+
end
|
25
|
+
expect(modified.default_url_options).to eql(url_opts)
|
26
|
+
expect(modified).to eql(dummy_app)
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'should allow overriding the routes for the application' do
|
30
|
+
dummy_routes = {root: '/', other_route: '/other/route', another_route: '/another/route'}
|
31
|
+
modified = Excursion::Pool::DSL.block_eval(dummy_app) do
|
32
|
+
routes dummy_routes
|
33
|
+
end
|
34
|
+
dummy_routes.each do |key,val|
|
35
|
+
expect(modified.route(key).path.spec.to_s).to eql(val)
|
36
|
+
end
|
37
|
+
expect(modified).to eql(dummy_app)
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'should allow adding a route to the application' do
|
41
|
+
dummy_routes = {root: '/', other_route: '/other/route', another_route: '/another/route'}
|
42
|
+
modified = Excursion::Pool::DSL.block_eval(dummy_app) do
|
43
|
+
dummy_routes.each do |key,val|
|
44
|
+
route key, val
|
45
|
+
end
|
46
|
+
end
|
47
|
+
dummy_routes.each do |key,val|
|
48
|
+
expect(modified.route(key).path.spec.to_s).to eql(val)
|
49
|
+
end
|
50
|
+
expect(modified).to eql(dummy_app)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
context 'when an application is not provided' do
|
55
|
+
it 'should create a new application' do
|
56
|
+
expect(Excursion::Pool::DSL.block_eval { name 'dummy' }).to be_an_instance_of(Excursion::Pool::Application)
|
57
|
+
end
|
58
|
+
|
59
|
+
it 'should require setting the name of the application' do
|
60
|
+
expect(Excursion::Pool::DSL.block_eval { name 'dummy' }.name).to eql('dummy')
|
61
|
+
expect { Excursion::Pool::DSL.block_eval }.to raise_exception(RuntimeError)
|
62
|
+
end
|
63
|
+
|
64
|
+
it 'should allow setting the default_url_options for the application' do
|
65
|
+
url_opts = {host: 'dummy.local', port: 1234}
|
66
|
+
modified = Excursion::Pool::DSL.block_eval do
|
67
|
+
name 'dummy'
|
68
|
+
default_url_options url_opts
|
69
|
+
end
|
70
|
+
expect(modified.default_url_options).to eql(url_opts)
|
71
|
+
end
|
72
|
+
|
73
|
+
it 'should allow setting the routes for the application' do
|
74
|
+
dummy_routes = {root: '/', other_route: '/other/route', another_route: '/another/route'}
|
75
|
+
modified = Excursion::Pool::DSL.block_eval do
|
76
|
+
name 'dummy'
|
77
|
+
routes dummy_routes
|
78
|
+
end
|
79
|
+
dummy_routes.each do |key,val|
|
80
|
+
expect(modified.route(key).path.spec.to_s).to eql(val)
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
it 'should allow adding a route to the application' do
|
85
|
+
dummy_routes = {root: '/', other_route: '/other/route', another_route: '/another/route'}
|
86
|
+
modified = Excursion::Pool::DSL.block_eval do
|
87
|
+
name 'dummy'
|
88
|
+
dummy_routes.each do |key,val|
|
89
|
+
route key, val
|
90
|
+
end
|
91
|
+
end
|
92
|
+
dummy_routes.each do |key,val|
|
93
|
+
expect(modified.route(key).path.spec.to_s).to eql(val)
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
|
99
|
+
end
|
data/spec/excursion/pool_spec.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe 'Excursion::Pool' do
|
4
|
+
DUMMY_HASH = {name: 'dummy', default_url_options: {host: 'dummy.local', port: 3000}, routes: {root: '/', other_route: '/other/route'}}
|
4
5
|
|
5
6
|
describe '::datastore' do
|
6
7
|
cleaner = Proc.new do
|
@@ -58,7 +59,7 @@ describe 'Excursion::Pool' do
|
|
58
59
|
end
|
59
60
|
end
|
60
61
|
end
|
61
|
-
|
62
|
+
|
62
63
|
describe '::register_application' do
|
63
64
|
before(:each) do
|
64
65
|
Excursion::Pool.class_variable_set(:@@applications, {})
|
@@ -79,13 +80,16 @@ describe 'Excursion::Pool' do
|
|
79
80
|
end
|
80
81
|
end
|
81
82
|
|
82
|
-
it 'should require a rails application
|
83
|
+
it 'should require a rails application and/or a block' do
|
83
84
|
expect { Excursion::Pool.register_application }.to raise_exception(ArgumentError)
|
84
85
|
expect { Excursion::Pool.register_application 'string arg' }.to raise_exception(ArgumentError)
|
85
86
|
expect { Excursion::Pool.register_application 123 }.to raise_exception(ArgumentError)
|
86
87
|
expect { Excursion::Pool.register_application :symbol_arg }.to raise_exception(ArgumentError)
|
87
88
|
expect { Excursion::Pool.register_application Object }.to raise_exception(ArgumentError)
|
88
89
|
expect { Excursion::Pool.register_application Object.new }.to raise_exception(ArgumentError)
|
90
|
+
expect { Excursion::Pool.register_application Rails.application }.to_not raise_exception
|
91
|
+
expect { Excursion::Pool.register_application { name 'dummy' } }.to_not raise_exception
|
92
|
+
expect { Excursion::Pool.register_application(Rails.application) do; end }.to_not raise_exception
|
89
93
|
end
|
90
94
|
|
91
95
|
it 'should add the application to the local hash pool' do
|
@@ -101,6 +105,47 @@ describe 'Excursion::Pool' do
|
|
101
105
|
end
|
102
106
|
end
|
103
107
|
|
108
|
+
describe '::register_hash' do
|
109
|
+
before(:each) do
|
110
|
+
Excursion::Pool.class_variable_set(:@@applications, {})
|
111
|
+
File.unlink(Excursion::Specs::DUMMY_POOL_FILE) if File.exists?(Excursion::Specs::DUMMY_POOL_FILE)
|
112
|
+
Excursion.configure do |config|
|
113
|
+
config.datastore = :file
|
114
|
+
config.datastore_file = Excursion::Specs::DUMMY_POOL_FILE
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
after(:each) do
|
119
|
+
Excursion::Pool.class_variable_set(:@@applications, {})
|
120
|
+
File.unlink(Excursion::Specs::DUMMY_POOL_FILE) if File.exists?(Excursion::Specs::DUMMY_POOL_FILE)
|
121
|
+
Excursion.configure do |config|
|
122
|
+
config.datastore = nil
|
123
|
+
config.datastore_file = nil
|
124
|
+
config.memcache_server = nil
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
128
|
+
it 'should require a hash with a :name key' do
|
129
|
+
expect { Excursion::Pool.register_hash }.to raise_exception(ArgumentError)
|
130
|
+
expect { Excursion::Pool.register_hash {} }.to raise_exception(ArgumentError)
|
131
|
+
expect { Excursion::Pool.register_hash 'string arg' }.to raise_exception(ArgumentError)
|
132
|
+
expect { Excursion::Pool.register_hash 123 }.to raise_exception(ArgumentError)
|
133
|
+
expect { Excursion::Pool.register_hash :symbol_arg }.to raise_exception(ArgumentError)
|
134
|
+
end
|
135
|
+
|
136
|
+
it 'should add the application to the local hash pool' do
|
137
|
+
Excursion::Pool.class_variable_get(:@@applications).should_not have_key('dummy')
|
138
|
+
Excursion::Pool.register_hash(DUMMY_HASH)
|
139
|
+
Excursion::Pool.class_variable_get(:@@applications).should have_key('dummy')
|
140
|
+
end
|
141
|
+
|
142
|
+
it 'should set the application in the datastore pool' do
|
143
|
+
Excursion::Pool.datastore.get('dummy').should be_nil
|
144
|
+
Excursion::Pool.register_hash(DUMMY_HASH)
|
145
|
+
Excursion::Pool.datastore.get('dummy').should_not be_nil
|
146
|
+
end
|
147
|
+
end
|
148
|
+
|
104
149
|
describe '::remove_application' do
|
105
150
|
before(:each) do
|
106
151
|
Excursion::Pool.class_variable_set(:@@applications, {})
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: excursion
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mark Rebec
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-09-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -81,6 +81,7 @@ files:
|
|
81
81
|
- lib/excursion/exceptions/active_record.rb
|
82
82
|
- lib/excursion/exceptions/memcache.rb
|
83
83
|
- lib/excursion/pool/dummy_application.rb
|
84
|
+
- lib/excursion/pool/dsl.rb
|
84
85
|
- lib/excursion/pool/application.rb
|
85
86
|
- lib/excursion/railtie.rb
|
86
87
|
- lib/excursion/configuration.rb
|
@@ -130,6 +131,7 @@ files:
|
|
130
131
|
- spec/dummy/db/schema.rb
|
131
132
|
- spec/dummy/config.ru
|
132
133
|
- spec/dummy/README.rdoc
|
134
|
+
- spec/dummy/log/development.log
|
133
135
|
- spec/dummy/script/rails
|
134
136
|
- spec/dummy/doc/README_FOR_APP
|
135
137
|
- spec/dummy/app/views/layouts/application.html.erb
|
@@ -142,6 +144,7 @@ files:
|
|
142
144
|
- spec/support/mocks.rb
|
143
145
|
- spec/excursion/helpers_spec.rb
|
144
146
|
- spec/excursion/route_pool_spec.rb
|
147
|
+
- spec/excursion/pool/dsl_spec.rb
|
145
148
|
- spec/excursion/pool/application_spec.rb
|
146
149
|
- spec/excursion/pool/dummy_application_spec.rb
|
147
150
|
- spec/excursion/pool_spec.rb
|
@@ -208,6 +211,7 @@ test_files:
|
|
208
211
|
- spec/dummy/db/schema.rb
|
209
212
|
- spec/dummy/config.ru
|
210
213
|
- spec/dummy/README.rdoc
|
214
|
+
- spec/dummy/log/development.log
|
211
215
|
- spec/dummy/script/rails
|
212
216
|
- spec/dummy/doc/README_FOR_APP
|
213
217
|
- spec/dummy/app/views/layouts/application.html.erb
|
@@ -220,6 +224,7 @@ test_files:
|
|
220
224
|
- spec/support/mocks.rb
|
221
225
|
- spec/excursion/helpers_spec.rb
|
222
226
|
- spec/excursion/route_pool_spec.rb
|
227
|
+
- spec/excursion/pool/dsl_spec.rb
|
223
228
|
- spec/excursion/pool/application_spec.rb
|
224
229
|
- spec/excursion/pool/dummy_application_spec.rb
|
225
230
|
- spec/excursion/pool_spec.rb
|