passages 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +2 -0
- data/.travis.yml +7 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +119 -0
- data/LICENSE.txt +22 -0
- data/README.md +20 -0
- data/app/assets/javascripts/passages/application.js +74 -0
- data/app/assets/stylesheets/passages/application.css +20 -0
- data/app/controllers/passages/routes_controller.rb +49 -0
- data/app/views/passages/routes/_route.html.erb +7 -0
- data/app/views/passages/routes/_routes_header.html.erb +5 -0
- data/app/views/passages/routes/routes.html.erb +59 -0
- data/config/initializers/assets.rb +1 -0
- data/config/routes.rb +3 -0
- data/lib/passages/engine.rb +11 -0
- data/lib/passages/engine_route.rb +13 -0
- data/lib/passages/engine_route_collection.rb +10 -0
- data/lib/passages/mount_route.rb +12 -0
- data/lib/passages/route.rb +44 -0
- data/lib/passages/route_collection.rb +23 -0
- data/lib/passages.rb +5 -0
- data/passages.gemspec +24 -0
- data/spec/controllers/passages/routes_controller_spec.rb +46 -0
- data/spec/lib/passages/engine_route_collection_spec.rb +42 -0
- data/spec/lib/passages/mount_route_spec.rb +29 -0
- data/spec/lib/passages/route_collection_spec.rb +50 -0
- data/spec/lib/passages/route_spec.rb +64 -0
- data/spec/spec_helper.rb +4 -0
- data/vendor/assets/fonts/glyphicons-halflings-regular.eot +0 -0
- data/vendor/assets/fonts/glyphicons-halflings-regular.svg +288 -0
- data/vendor/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
- data/vendor/assets/fonts/glyphicons-halflings-regular.woff +0 -0
- data/vendor/assets/fonts/glyphicons-halflings-regular.woff2 +0 -0
- data/vendor/assets/javascripts/bootstrap.min.js +7 -0
- data/vendor/assets/javascripts/jquery-2.1.4.min.js +4 -0
- data/vendor/assets/stylesheets/bootstrap-theme.min.css +5 -0
- data/vendor/assets/stylesheets/bootstrap.min.css +5 -0
- data/version.rb +7 -0
- metadata +118 -0
@@ -0,0 +1,29 @@
|
|
1
|
+
require_relative '../../spec_helper'
|
2
|
+
require_relative '../../../lib/passages/mount_route'
|
3
|
+
|
4
|
+
module Passages
|
5
|
+
describe MountRoute do
|
6
|
+
subject { described_class.new(anything, anything) }
|
7
|
+
|
8
|
+
describe '#initialize' do
|
9
|
+
it 'sets the @app ivar' do
|
10
|
+
expect(subject.instance_variable_get(:@app)).to_not be_nil
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
describe '#engine_name' do
|
15
|
+
it 'calls name on the app ivar' do
|
16
|
+
expect(subject.instance_variable_get(:@app)).to receive(:name)
|
17
|
+
subject.engine_name
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
[:internal?, :path].each do |method|
|
22
|
+
describe "##{ method }" do
|
23
|
+
it "responds to #{ method }" do
|
24
|
+
expect(subject).to respond_to(method)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
require_relative '../../spec_helper'
|
2
|
+
require_relative '../../../lib/passages/route_collection'
|
3
|
+
|
4
|
+
module Passages
|
5
|
+
describe RouteCollection do
|
6
|
+
let(:fake_route) { instance_double(Passages::Route) }
|
7
|
+
|
8
|
+
before do
|
9
|
+
allow_any_instance_of(described_class).to receive(:main_app_name) { 'SomeGreatApp' }
|
10
|
+
allow(fake_route).to receive(:internal?) { false }
|
11
|
+
end
|
12
|
+
|
13
|
+
subject { described_class.new([fake_route]) }
|
14
|
+
|
15
|
+
it 'is behaves like an enumerable' do
|
16
|
+
expect(subject.respond_to?(:each)).to eq(true)
|
17
|
+
end
|
18
|
+
|
19
|
+
describe '#initialize' do
|
20
|
+
subject { described_class.new([fake_route]) }
|
21
|
+
|
22
|
+
it 'sets the @routes variable' do
|
23
|
+
expect(subject.instance_variable_get(:@routes)).to_not be_nil
|
24
|
+
end
|
25
|
+
|
26
|
+
context 'route is internal' do
|
27
|
+
before do
|
28
|
+
allow(fake_route).to receive(:internal?) { true }
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'does not add it to @routes' do
|
32
|
+
expect(subject.routes).to be_empty
|
33
|
+
end
|
34
|
+
|
35
|
+
context 'internal and external routes exist' do
|
36
|
+
let(:another_fake_route) { instance_double(Passages::Route) }
|
37
|
+
subject { described_class.new([fake_route, another_fake_route])}
|
38
|
+
|
39
|
+
before do
|
40
|
+
allow(another_fake_route).to receive(:internal?) { false }
|
41
|
+
end
|
42
|
+
|
43
|
+
it 'only adds the external route' do
|
44
|
+
expect(subject.routes).to eq([another_fake_route])
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
require_relative '../../spec_helper'
|
2
|
+
require_relative '../../../lib/passages/route'
|
3
|
+
|
4
|
+
module Passages
|
5
|
+
describe Route do
|
6
|
+
subject { described_class.new(anything) }
|
7
|
+
|
8
|
+
describe '#name' do
|
9
|
+
it 'calls name on the __getobj__' do
|
10
|
+
expect(subject.__getobj__).to receive(:name)
|
11
|
+
subject.name
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
describe '#verb' do
|
16
|
+
it 'calls verb on the __getobj__' do
|
17
|
+
expect(subject.__getobj__).to receive(:verb)
|
18
|
+
subject.verb
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
describe '#controller' do
|
23
|
+
it 'calls controller on the __getobj__' do
|
24
|
+
expect(subject.__getobj__).to receive(:controller)
|
25
|
+
subject.controller
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
describe '#action' do
|
30
|
+
it 'calls action on the __getobj__' do
|
31
|
+
expect(subject.__getobj__).to receive(:action)
|
32
|
+
subject.action
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
describe '#path' do
|
37
|
+
it 'calls path on the __getobj__' do
|
38
|
+
expect(subject.__getobj__).to receive(:path)
|
39
|
+
subject.path
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
describe '.from_raw_route' do
|
44
|
+
let(:raw_route) { anything }
|
45
|
+
before { allow(described_class).to receive(:mount_route_class) { mount_class } }
|
46
|
+
|
47
|
+
context 'mount class is present' do
|
48
|
+
let(:mount_class) { anything }
|
49
|
+
it 'instantiates and returns a new MountRoute' do
|
50
|
+
expect(MountRoute).to receive(:new).with(raw_route, mount_class)
|
51
|
+
described_class.from_raw_route(raw_route)
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
context 'mount class is nil' do
|
56
|
+
let(:mount_class) { nil }
|
57
|
+
it 'instantiates and returns a new Route' do
|
58
|
+
expect(described_class).to receive(:new).with(raw_route)
|
59
|
+
described_class.from_raw_route(raw_route)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
data/spec/spec_helper.rb
ADDED
Binary file
|