rad_core 0.2.6 → 0.2.7
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/Rakefile +2 -2
- data/bin/rad +20 -25
- data/lib/components/config.rb +1 -1
- data/lib/components/configurators.rb +2 -2
- data/lib/components/controller.rb +2 -2
- data/lib/components/conveyors.rb +2 -2
- data/lib/components/environment.rb +1 -1
- data/lib/components/environment.yml +28 -28
- data/lib/components/flash.rb +1 -1
- data/lib/components/html.rb +1 -1
- data/lib/components/http.rb +1 -1
- data/lib/components/http.yml +1 -1
- data/lib/components/logger.rb +2 -2
- data/lib/components/mailer.rb +2 -2
- data/lib/components/remote.rb +1 -1
- data/lib/components/router.rb +3 -3
- data/lib/components/template.rb +2 -2
- data/lib/components/web.rb +3 -3
- data/lib/rad.rb +1 -1
- data/lib/rad/_support/active_support.rb +7 -7
- data/lib/rad/_support/active_support/locales/ru/actionview.yml +8 -8
- data/lib/rad/_support/active_support/locales/ru/activesupport.yml +4 -4
- data/lib/rad/_support/active_support/locales/ru/datetime.yml +5 -5
- data/lib/rad/_support/active_support/time.rb +2 -2
- data/lib/rad/_support/addressable.rb +6 -6
- data/lib/rad/_support/class_loader.rb +1 -1
- data/lib/rad/_support/extensions.rb +5 -5
- data/lib/rad/_support/filters.rb +13 -13
- data/lib/rad/_support/hacks_and_fixes.rb +5 -5
- data/lib/rad/_support/mime.rb +4 -4
- data/lib/rad/_support/module.rb +11 -11
- data/lib/rad/_support/require.rb +5 -5
- data/lib/rad/_support/rson.rb +4 -4
- data/lib/rad/_support/string.rb +9 -9
- data/lib/rad/cli/helper.rb +5 -5
- data/lib/rad/configurators/_require.rb +2 -2
- data/lib/rad/configurators/abstract.rb +5 -5
- data/lib/rad/configurators/web.rb +8 -8
- data/lib/rad/controller/_abstract.rb +15 -14
- data/lib/rad/controller/_abstract/miscellaneous.rb +5 -5
- data/lib/rad/controller/_abstract/render.rb +40 -40
- data/lib/rad/controller/_abstract/responder.rb +1 -1
- data/lib/rad/controller/_context.rb +1 -1
- data/lib/rad/controller/_http.rb +11 -11
- data/lib/rad/controller/_require.rb +6 -6
- data/lib/rad/controller/processors/controller_caller.rb +3 -3
- data/lib/rad/controller/processors/controller_error_handling.rb +14 -14
- data/lib/rad/controller/processors/controller_logger.rb +1 -1
- data/lib/rad/conveyors/_conveyor.rb +9 -9
- data/lib/rad/conveyors/_conveyors.rb +4 -4
- data/lib/rad/conveyors/_params.rb +5 -5
- data/lib/rad/conveyors/_processor.rb +2 -2
- data/lib/rad/conveyors/_workspace.rb +5 -5
- data/lib/rad/conveyors/processors/conveyor_logger.rb +3 -3
- data/lib/rad/environment/_config.rb +4 -4
- data/lib/rad/environment/_environment.rb +10 -10
- data/lib/rad/environment/_files_helper.rb +5 -5
- data/lib/rad/environment/_logger.rb +9 -9
- data/lib/rad/environment/_require.rb +4 -4
- data/lib/rad/gems.rb +14 -14
- data/lib/rad/html/_flash.rb +5 -5
- data/lib/rad/html/_helpers/basic_html_helper.rb +12 -12
- data/lib/rad/html/_helpers/form_helper.rb +19 -19
- data/lib/rad/html/_helpers/javascript_helper.rb +6 -6
- data/lib/rad/html/_helpers/model_helper.rb +17 -17
- data/lib/rad/html/_require.rb +1 -1
- data/lib/rad/html/processors/prepare_flash.rb +3 -3
- data/lib/rad/html/processors/scoped_params.rb +4 -4
- data/lib/rad/http/_http.rb +4 -4
- data/lib/rad/http/_http_adapter.rb +5 -5
- data/lib/rad/http/_request.rb +11 -11
- data/lib/rad/http/_require.rb +8 -8
- data/lib/rad/http/_response.rb +5 -5
- data/lib/rad/http/_support/rack/fixes.rb +3 -3
- data/lib/rad/http/_support/rack/rack_adapter.rb +5 -5
- data/lib/rad/http/processors/evaluate_format.rb +4 -4
- data/lib/rad/http/processors/http_logger.rb +3 -3
- data/lib/rad/http/processors/http_writer.rb +7 -7
- data/lib/rad/http/processors/prepare_params.rb +5 -5
- data/lib/rad/mailer/_letter.rb +1 -1
- data/lib/rad/mailer/_mailer.rb +1 -1
- data/lib/rad/mailer/_mailer_controller.rb +6 -6
- data/lib/rad/mailer/_require.rb +1 -1
- data/lib/rad/mailer/processors/letter_builder.rb +6 -6
- data/lib/rad/profiles/mailer.rb +2 -2
- data/lib/rad/profiles/web.rb +13 -13
- data/lib/rad/remote/processors/remote_caller.rb +10 -10
- data/lib/rad/remote/processors/remote_logger.rb +1 -1
- data/lib/rad/router/_abstract_router.rb +9 -9
- data/lib/rad/router/_alias_router.rb +34 -34
- data/lib/rad/router/_basic_router.rb +12 -12
- data/lib/rad/router/_configurator.rb +6 -6
- data/lib/rad/router/_core_routing_helper.rb +4 -4
- data/lib/rad/router/_object_router.rb +45 -45
- data/lib/rad/router/_require.rb +8 -8
- data/lib/rad/router/_restful_router.rb +25 -25
- data/lib/rad/router/_router.rb +78 -78
- data/lib/rad/router/_simple_router.rb +5 -5
- data/lib/rad/router/processors/router.rb +6 -6
- data/lib/rad/spec/controller.rb +9 -9
- data/lib/rad/spec/environment.rb +7 -7
- data/lib/rad/spec/http.rb +2 -2
- data/lib/rad/spec/http_controller.rb +22 -22
- data/lib/rad/spec/mailer.rb +4 -4
- data/lib/rad/spec/remote.rb +1 -1
- data/lib/rad/spec/router.rb +4 -4
- data/lib/rad/spec/template.rb +2 -2
- data/lib/rad/tasks.rb +2 -2
- data/lib/rad/template/_context.rb +15 -15
- data/lib/rad/template/_relative_path_resolver.rb +1 -1
- data/lib/rad/template/_support/tilt.rb +17 -17
- data/lib/rad/template/_support/tilt_fixes.rb +3 -3
- data/lib/rad/template/_template.rb +47 -47
- data/lib/rad/web/_ajax_helper.rb +4 -4
- data/lib/rad/web/_controller_miscellaneous_helper.rb +5 -5
- data/lib/rad/web/_ensure_no_www.rb +5 -5
- data/lib/rad/web/_protect_from_forgery.rb +18 -18
- data/lib/rad/web/_require.rb +7 -7
- data/lib/rad/web/_router/abstract_routing_helper.rb +4 -4
- data/lib/rad/web/_router/controller_routing_helper.rb +15 -15
- data/lib/rad/web/_router/view_routing_helper.rb +12 -12
- data/readme.md +5 -5
- data/spec/controller/abstract_spec.rb +29 -29
- data/spec/controller/context_spec.rb +32 -32
- data/spec/controller/error_handling_spec.rb +31 -31
- data/spec/controller/helper_spec.rb +13 -13
- data/spec/controller/http_spec.rb +32 -32
- data/spec/controller/render_spec.rb +59 -59
- data/spec/conveyors/conveyors_spec.rb +32 -32
- data/spec/environment/config_spec.rb +6 -6
- data/spec/environment/environment_spec.rb +7 -7
- data/spec/environment/minimal_app_spec.rb +4 -4
- data/spec/environment/standard_app_spec.rb +10 -10
- data/spec/html/basic_html_helper_spec.rb +6 -6
- data/spec/html/form_helper_spec.rb +5 -5
- data/spec/html/javascript_helper_spec.rb +4 -4
- data/spec/html/model_helper_spec.rb +12 -12
- data/spec/html/scoped_params_spec.rb +2 -2
- data/spec/html/spec_helper.rb +3 -3
- data/spec/http/http_spec.rb +9 -9
- data/spec/http/miscellaneous_spec.rb +2 -2
- data/spec/mailer/mail_controller_spec.rb +23 -23
- data/spec/remote/remote_spec.rb +26 -26
- data/spec/router/alias_router_spec.rb +22 -22
- data/spec/router/basic_router_spec.rb +8 -8
- data/spec/router/configurator_spec.rb +4 -4
- data/spec/router/integration_spec.rb +17 -17
- data/spec/router/object_router_spec.rb +47 -47
- data/spec/router/persistent_params_spec.rb +18 -18
- data/spec/router/restful_router_spec.rb +39 -39
- data/spec/router/router_spec.rb +37 -37
- data/spec/router/routing_helper_spec.rb +18 -18
- data/spec/support/filters_spec.rb +11 -13
- data/spec/template/template_spec.rb +43 -45
- data/spec/template/template_spec/views/layout/content_for/content.erb +3 -1
- data/spec/template/template_spec/views/layout/content_for/layout.erb +1 -1
- data/spec/template/tilt_spec.rb +24 -24
- data/spec/web/basic_spec.rb +25 -25
- data/spec/web/controller_routing_helper_spec.rb +26 -26
- data/spec/web/flash_spec.rb +31 -31
- data/spec/web/protect_from_forgery_spec.rb +44 -44
- data/spec/web/spec_helper_spec.rb +16 -16
- data/spec/web/view_routing_helper_spec.rb +31 -31
- metadata +46 -49
- data/lib/rad/_support/callbacks.rb +0 -166
- data/lib/rad/_support/ruby_ext_with_active_support.rb +0 -4
- data/spec/support/callbacks_spec.rb +0 -157
|
@@ -4,7 +4,7 @@ describe "Persistent Params" do
|
|
|
4
4
|
after :all do
|
|
5
5
|
remove_constants %w(PathParamsRouter)
|
|
6
6
|
end
|
|
7
|
-
|
|
7
|
+
|
|
8
8
|
before do
|
|
9
9
|
@router = Rad::Router.new :class
|
|
10
10
|
|
|
@@ -13,53 +13,53 @@ describe "Persistent Params" do
|
|
|
13
13
|
|
|
14
14
|
@router.persistent_params << :l
|
|
15
15
|
end
|
|
16
|
-
|
|
17
|
-
describe 'Basics' do
|
|
18
|
-
it "global persistent params" do
|
|
16
|
+
|
|
17
|
+
describe 'Basics' do
|
|
18
|
+
it "global persistent params" do
|
|
19
19
|
@params.merge! l: 'ru', id: 1
|
|
20
20
|
|
|
21
21
|
@router.encode(Object, :send).should == ["/object/send", {l: 'ru'}]
|
|
22
22
|
@router.encode(Object, :send, l: 'en').should == ["/object/send", {l: 'en'}]
|
|
23
23
|
end
|
|
24
|
-
|
|
24
|
+
|
|
25
25
|
it "should persist params with begining underscore" do
|
|
26
26
|
@params.merge! _space: 'space_id', id: 1
|
|
27
|
-
|
|
27
|
+
|
|
28
28
|
@router.encode(Object, :send).should == ['/object/send', {}]
|
|
29
|
-
|
|
29
|
+
|
|
30
30
|
@router.persist_params do
|
|
31
31
|
@router.encode(Object, :send).should == ["/object/send", {_space: 'space_id'}]
|
|
32
32
|
@router.encode(Object, :send, _space: 'another_id').should == ["/object/send", {_space: 'another_id'}]
|
|
33
33
|
end
|
|
34
34
|
end
|
|
35
35
|
end
|
|
36
|
-
|
|
36
|
+
|
|
37
37
|
describe "Miscellaneous checks" do
|
|
38
38
|
it "should not persist special params" do
|
|
39
39
|
@params.merge! _method: 'get'
|
|
40
|
-
|
|
41
|
-
@router.persist_params do
|
|
40
|
+
|
|
41
|
+
@router.persist_params do
|
|
42
42
|
@router.encode(Object, :send).should == ["/object/send", {}]
|
|
43
43
|
end
|
|
44
|
-
end
|
|
44
|
+
end
|
|
45
45
|
end
|
|
46
|
-
|
|
46
|
+
|
|
47
47
|
it "should correctly works when params are encoded in url path" do
|
|
48
48
|
class PathParamsRouter
|
|
49
49
|
def encode klass, method, params
|
|
50
50
|
[%(#{klass.name}/#{method}#{'/' unless params.empty?}#{params.to_a.collect{|k, v| "#{k}/#{v}"}.join('/')}), {}]
|
|
51
51
|
end
|
|
52
|
-
|
|
52
|
+
|
|
53
53
|
def decode path, params
|
|
54
54
|
end
|
|
55
55
|
end
|
|
56
|
-
|
|
56
|
+
|
|
57
57
|
router = Rad::Router.new :class, [[:prefix_router, PathParamsRouter.new]]
|
|
58
|
-
router.persistent_params << :l
|
|
58
|
+
router.persistent_params << :l
|
|
59
59
|
params = Rad::Conveyors::Params.new
|
|
60
|
-
params.l = 'en'
|
|
61
|
-
router.stub(:safe_workspace).and_return({params: params}.to_openobject)
|
|
62
|
-
|
|
60
|
+
params.l = 'en'
|
|
61
|
+
router.stub(:safe_workspace).and_return({params: params}.to_openobject)
|
|
62
|
+
|
|
63
63
|
router.encode(Object, :send).should == ["Object/send/l/en", {}]
|
|
64
64
|
end
|
|
65
65
|
end
|
|
@@ -1,128 +1,128 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
2
|
|
|
3
|
-
describe "RestfulRouter" do
|
|
3
|
+
describe "RestfulRouter" do
|
|
4
4
|
before :all do
|
|
5
5
|
class ::BlogController
|
|
6
6
|
def show; end
|
|
7
|
-
end
|
|
7
|
+
end
|
|
8
8
|
end
|
|
9
|
-
|
|
9
|
+
|
|
10
10
|
after :all do
|
|
11
11
|
remove_constants %w(BlogController)
|
|
12
12
|
end
|
|
13
|
-
|
|
13
|
+
|
|
14
14
|
before do
|
|
15
15
|
@router = Rad::Router::RestfulRouter.new
|
|
16
16
|
end
|
|
17
|
-
|
|
18
|
-
describe 'core API' do
|
|
17
|
+
|
|
18
|
+
describe 'core API' do
|
|
19
19
|
it "class resource" do
|
|
20
20
|
@router.add :blogs, class_name: 'BlogController'
|
|
21
|
-
|
|
21
|
+
|
|
22
22
|
@router.encode(BlogController, :show, {}).should == ["/blogs/show", {}]
|
|
23
23
|
@router.encode_method('show_blog_path', false).should == [BlogController, :show]
|
|
24
24
|
@router.encode_method('show_blogs_path', false).should == [BlogController, :show]
|
|
25
25
|
@router.decode("/blogs/show", {}).should == [BlogController, :show, {}]
|
|
26
26
|
end
|
|
27
|
-
|
|
27
|
+
|
|
28
28
|
it "object resource" do
|
|
29
29
|
@router.add :blogs, class_name: 'BlogController'
|
|
30
|
-
|
|
30
|
+
|
|
31
31
|
@router.encode(BlogController, :show, id: '10', view: 'full').should == ["/blogs/10/show", {view: 'full'}]
|
|
32
32
|
@router.encode_method('show_blog_path', true).should == [BlogController, :show]
|
|
33
33
|
@router.encode_method('show_blogs_path', true).should == [BlogController, :show]
|
|
34
34
|
@router.decode("/blogs/10/show", {view: 'full'}).should == [BlogController, :show, {id: '10', view: 'full'}]
|
|
35
|
-
end
|
|
35
|
+
end
|
|
36
36
|
end
|
|
37
|
-
|
|
37
|
+
|
|
38
38
|
describe "prefixes" do
|
|
39
39
|
it "class resource" do
|
|
40
40
|
@router.add :blogs, class_name: 'BlogController', prefix: [:l, :space]
|
|
41
|
-
|
|
41
|
+
|
|
42
42
|
@router.encode(BlogController, :show, l: 'en', space: 'personal').should == ["/en/personal/blogs/show", {}]
|
|
43
43
|
@router.decode("/en/personal/blogs/show", {}).should == [BlogController, :show, {l: 'en', space: 'personal'}]
|
|
44
44
|
end
|
|
45
|
-
|
|
45
|
+
|
|
46
46
|
it "object resource" do
|
|
47
47
|
@router.add :blogs, class_name: 'BlogController', prefix: [:l, :space]
|
|
48
|
-
|
|
48
|
+
|
|
49
49
|
@router.encode(BlogController, :show, id: '10', l: 'en', space: 'personal').should == ["/en/personal/blogs/10/show", {}]
|
|
50
50
|
@router.decode("/en/personal/blogs/10/show", {}).should == [BlogController, :show, {id: '10', l: 'en', space: 'personal'}]
|
|
51
51
|
end
|
|
52
|
-
|
|
53
|
-
it "should raise error or return nil if prefixes not provided" do
|
|
52
|
+
|
|
53
|
+
it "should raise error or return nil if prefixes not provided" do
|
|
54
54
|
@router.add :blogs, class_name: 'BlogController', prefix: :l
|
|
55
|
-
|
|
56
|
-
lambda{@router.encode(BlogController, :show, {})}.should raise_error(/prefix/)
|
|
55
|
+
|
|
56
|
+
lambda{@router.encode(BlogController, :show, {})}.should raise_error(/prefix/)
|
|
57
57
|
@router.decode('/blogs/show', {}).should be_nil
|
|
58
|
-
|
|
59
|
-
lambda{@router.encode(BlogController, :show, id: '10')}.should raise_error(/prefix/)
|
|
58
|
+
|
|
59
|
+
lambda{@router.encode(BlogController, :show, id: '10')}.should raise_error(/prefix/)
|
|
60
60
|
@router.decode('/blogs/10/show', {}).should be_nil
|
|
61
61
|
end
|
|
62
|
-
|
|
62
|
+
|
|
63
63
|
it "should works with :url_root" do
|
|
64
64
|
@router.add :blogs, class_name: 'BlogController', prefix: :l, url_root: '/users'
|
|
65
|
-
|
|
65
|
+
|
|
66
66
|
@router.encode(BlogController, :show, l: 'en').should == ["/en/blogs/show", {url_root: '/users'}]
|
|
67
67
|
@router.decode("/users/en/blogs/show", {}).should == [BlogController, :show, {l: 'en'}]
|
|
68
|
-
|
|
68
|
+
|
|
69
69
|
@router.encode(BlogController, :show, id: '10', l: 'en').should == ["/en/blogs/10/show", {url_root: '/users'}]
|
|
70
70
|
@router.decode("/users/en/blogs/10/show", {}).should == [BlogController, :show, {id: '10', l: 'en'}]
|
|
71
71
|
end
|
|
72
|
-
|
|
72
|
+
|
|
73
73
|
it "should be able to use alias for prefix parameter" do
|
|
74
74
|
@router.add :blogs, class_name: 'BlogController', prefix: [:l, :space_id]
|
|
75
|
-
|
|
75
|
+
|
|
76
76
|
@router.encode(BlogController, :show, l: 'en', space_id: 'personal').should == ["/en/personal/blogs/show", {}]
|
|
77
77
|
@router.decode("/en/personal/blogs/show", {}).should == [BlogController, :show, {l: 'en', space_id: 'personal'}]
|
|
78
78
|
end
|
|
79
79
|
end
|
|
80
|
-
|
|
81
|
-
describe "miscellaneous check" do
|
|
82
|
-
it "should allow only plural form in resource definition" do
|
|
80
|
+
|
|
81
|
+
describe "miscellaneous check" do
|
|
82
|
+
it "should allow only plural form in resource definition" do
|
|
83
83
|
lambda{@router.add :blog, class_name: 'BlogController'}.should raise_error(/plural/)
|
|
84
84
|
@router.add :blogs, class_name: 'BlogController'
|
|
85
85
|
end
|
|
86
|
-
|
|
86
|
+
|
|
87
87
|
it "shouldn't allow slashes in resource name" do
|
|
88
88
|
lambda{@router.add '/admin/blogs', class_name: 'BlogController'}.should raise_error(/\//)
|
|
89
89
|
end
|
|
90
|
-
|
|
90
|
+
|
|
91
91
|
it "should correctly works with unknown routes" do
|
|
92
92
|
@router.encode(BlogController, :show, {}).should be_nil
|
|
93
93
|
@router.encode_method('show_blog_path', false).should be_nil
|
|
94
94
|
@router.encode_method('show_blogs_path', false).should be_nil
|
|
95
95
|
@router.decode("/blogs/show", {}).should be_nil
|
|
96
|
-
|
|
96
|
+
|
|
97
97
|
@router.encode(BlogController, :show, id: '10', view: 'full').should be_nil
|
|
98
98
|
@router.encode_method('show_blog_path', true).should be_nil
|
|
99
99
|
@router.encode_method('show_blogs_path', true).should be_nil
|
|
100
100
|
@router.decode("/blogs/10/show", view: 'full').should be_nil
|
|
101
101
|
end
|
|
102
102
|
end
|
|
103
|
-
|
|
103
|
+
|
|
104
104
|
describe ":url_root" do
|
|
105
105
|
it "should use :url_root" do
|
|
106
106
|
@router.add :blogs, class_name: 'BlogController', url_root: '/users'
|
|
107
|
-
|
|
107
|
+
|
|
108
108
|
@router.encode(BlogController, :show, {}).should == ["/blogs/show", {url_root: '/users'}]
|
|
109
109
|
@router.decode("/users/blogs/show", {}).should == [BlogController, :show, {}]
|
|
110
|
-
|
|
110
|
+
|
|
111
111
|
@router.encode(BlogController, :show, id: '10').should == ["/blogs/10/show", {url_root: '/users'}]
|
|
112
112
|
@router.decode("/users/blogs/10/show", {}).should == [BlogController, :show, {id: '10'}]
|
|
113
|
-
end
|
|
114
|
-
|
|
113
|
+
end
|
|
114
|
+
|
|
115
115
|
it "should ignore slash" do
|
|
116
116
|
@router.add :blogs, class_name: 'BlogController', url_root: '/'
|
|
117
|
-
|
|
117
|
+
|
|
118
118
|
@router.encode(BlogController, :show, {}).should == ["/blogs/show", {}]
|
|
119
119
|
@router.decode("/blogs/show", {}).should == [BlogController, :show, {}]
|
|
120
120
|
end
|
|
121
121
|
end
|
|
122
|
-
|
|
122
|
+
|
|
123
123
|
it "input validation" do
|
|
124
124
|
lambda{@router.add :blogs, class_name: 'BlogController', invalid: 'value'}.should raise_error(/unknown/)
|
|
125
|
-
lambda{@router.add :blogs}.should raise_error(/class/)
|
|
125
|
+
lambda{@router.add :blogs}.should raise_error(/class/)
|
|
126
126
|
lambda{@router.add :blogs, class_name: 'BlogController', url_root: 'users'}.should raise_error(/\//)
|
|
127
127
|
end
|
|
128
128
|
end
|
data/spec/router/router_spec.rb
CHANGED
|
@@ -1,111 +1,111 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
2
|
|
|
3
|
-
describe "Router Basic" do
|
|
4
|
-
before :all do
|
|
3
|
+
describe "Router Basic" do
|
|
4
|
+
before :all do
|
|
5
5
|
class ::BlogsController
|
|
6
6
|
include Rad::Router::CoreRoutingHelper
|
|
7
|
-
|
|
7
|
+
|
|
8
8
|
def show; end
|
|
9
9
|
end
|
|
10
10
|
end
|
|
11
|
-
|
|
11
|
+
|
|
12
12
|
after :all do
|
|
13
13
|
remove_constants %w(BlogsController)
|
|
14
14
|
end
|
|
15
|
-
|
|
15
|
+
|
|
16
16
|
before do
|
|
17
17
|
@router = Rad::Router.new :class
|
|
18
|
-
|
|
18
|
+
|
|
19
19
|
@params = Rad::Conveyors::Params.new
|
|
20
20
|
@router.stub(:safe_workspace).and_return({params: @params}.to_openobject)
|
|
21
21
|
end
|
|
22
|
-
|
|
22
|
+
|
|
23
23
|
it "encode" do
|
|
24
24
|
@router.encode(BlogsController, :show, format: 'json').should == ["/blogs_controller/show.json", {}]
|
|
25
25
|
end
|
|
26
|
-
|
|
26
|
+
|
|
27
27
|
it "encode_method" do
|
|
28
|
-
lambda{@router.encode_method :some_method, false}.should raise_error(/route method/)
|
|
29
|
-
first_router_in_chain = @router.routers.to_a[0][1]
|
|
28
|
+
lambda{@router.encode_method :some_method, false}.should raise_error(/route method/)
|
|
29
|
+
first_router_in_chain = @router.routers.to_a[0][1]
|
|
30
30
|
first_router_in_chain.should_receive(:encode_method).and_return([BlogsController, :show])
|
|
31
31
|
@router.encode_method(:some_method, false).should == [BlogsController, :show]
|
|
32
32
|
end
|
|
33
|
-
|
|
34
|
-
it "decode" do
|
|
33
|
+
|
|
34
|
+
it "decode" do
|
|
35
35
|
@router.decode("/blogs_controller/show", {}).should == [BlogsController, :show, {}]
|
|
36
|
-
end
|
|
37
|
-
|
|
36
|
+
end
|
|
37
|
+
|
|
38
38
|
describe "url_for" do
|
|
39
39
|
it "should convert complex params to json" do
|
|
40
40
|
@router.url_for(BlogsController, :show, a: :b, as_json: true).should == %(/blogs_controller/show?json=%7B%22a%22%3A%22b%22%7D)
|
|
41
41
|
end
|
|
42
|
-
|
|
42
|
+
|
|
43
43
|
it "should works with full url" do
|
|
44
44
|
@router.url_for('http://google.com').should == "http://google.com"
|
|
45
45
|
end
|
|
46
|
-
|
|
46
|
+
|
|
47
47
|
it "should not allow to use url_root/params/format with full url (http://)" do
|
|
48
|
-
lambda{@router.url_for('http://google.com', {a: 'b'})}.should raise_error(/can't use option/)
|
|
48
|
+
lambda{@router.url_for('http://google.com', {a: 'b'})}.should raise_error(/can't use option/)
|
|
49
49
|
end
|
|
50
|
-
|
|
50
|
+
|
|
51
51
|
it "should escape params" do
|
|
52
52
|
@router.url_for(BlogsController, :show, a: 'b/c').should == "/blogs_controller/show?a=b%2Fc"
|
|
53
53
|
end
|
|
54
|
-
|
|
54
|
+
|
|
55
55
|
it "url_for" do
|
|
56
56
|
@router.stub(:current_class).and_return(BlogsController)
|
|
57
|
-
|
|
58
|
-
@router.url_for(BlogsController, :show, format: 'json').should == "/blogs_controller/show.json"
|
|
57
|
+
|
|
58
|
+
@router.url_for(BlogsController, :show, format: 'json').should == "/blogs_controller/show.json"
|
|
59
59
|
@router.url_for(:show, format: 'json').should == "/blogs_controller/show.json"
|
|
60
|
-
|
|
60
|
+
|
|
61
61
|
@router.url_for(BlogsController, :show).should == "/blogs_controller/show"
|
|
62
62
|
@router.url_for(:show).should == "/blogs_controller/show"
|
|
63
63
|
@router.url_for(:show).should == "/blogs_controller/show"
|
|
64
64
|
end
|
|
65
|
-
|
|
65
|
+
|
|
66
66
|
it "url_for_path should recognize first slash as to use url_for_path" do
|
|
67
67
|
@router.url_for('/some_path', key: :value).should == "/some_path?key=value"
|
|
68
68
|
@router.url_for('/some_path').should == "/some_path"
|
|
69
69
|
end
|
|
70
|
-
|
|
70
|
+
|
|
71
71
|
it "should mark url string with format" do
|
|
72
|
-
@router.stub(:current_class).and_return(BlogsController)
|
|
72
|
+
@router.stub(:current_class).and_return(BlogsController)
|
|
73
73
|
@router.url_for(:show, format: 'js').marks.format.should == 'js'
|
|
74
|
-
|
|
74
|
+
|
|
75
75
|
@router.url_for('/path').marks.format.should be_nil
|
|
76
76
|
@router.url_for('/path', format: 'js').marks.format.should == 'js'
|
|
77
77
|
end
|
|
78
|
-
|
|
78
|
+
|
|
79
79
|
it "shouldn't modify arguments (from error)" do
|
|
80
80
|
options = {format: :js}
|
|
81
81
|
@router.url_for(BlogsController, :show, options).should == "/blogs_controller/show.js"
|
|
82
82
|
options.should == {format: :js}
|
|
83
83
|
end
|
|
84
|
-
|
|
84
|
+
|
|
85
85
|
# it "should check for false :url_root (from error)" do
|
|
86
86
|
# config.set! :url_root, '/bag'
|
|
87
|
-
#
|
|
87
|
+
#
|
|
88
88
|
# @router.url_for("/some_url", url_root: false).should == "/some_url"
|
|
89
|
-
# end
|
|
89
|
+
# end
|
|
90
90
|
end
|
|
91
|
-
|
|
91
|
+
|
|
92
92
|
describe "persistent params" do
|
|
93
93
|
before do
|
|
94
94
|
@router.persistent_params << :l
|
|
95
95
|
end
|
|
96
|
-
|
|
97
|
-
it "global persistent params" do
|
|
96
|
+
|
|
97
|
+
it "global persistent params" do
|
|
98
98
|
@params.l, @params.id = 'ru', 1
|
|
99
99
|
|
|
100
|
-
@router.url_for(BlogsController, :show).should == "/blogs_controller/show?l=ru"
|
|
100
|
+
@router.url_for(BlogsController, :show).should == "/blogs_controller/show?l=ru"
|
|
101
101
|
@router.url_for(BlogsController, :show, l: 'en').should == "/blogs_controller/show?l=en"
|
|
102
102
|
end
|
|
103
|
-
|
|
103
|
+
|
|
104
104
|
it "should persist params with begining underscore" do
|
|
105
105
|
@params._space, @params.id = 'space_id', 1
|
|
106
|
-
|
|
106
|
+
|
|
107
107
|
@router.url_for(BlogsController, :show).should == '/blogs_controller/show'
|
|
108
|
-
|
|
108
|
+
|
|
109
109
|
@router.persist_params do
|
|
110
110
|
@router.url_for(BlogsController, :show).should == '/blogs_controller/show?_space=space_id'
|
|
111
111
|
@router.url_for(BlogsController, :show, _space: 'another_id').should == '/blogs_controller/show?_space=another_id'
|
|
@@ -1,54 +1,54 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
2
|
|
|
3
|
-
describe "Routing Helper" do
|
|
3
|
+
describe "Routing Helper" do
|
|
4
4
|
before :all do
|
|
5
5
|
class ::BlogsController
|
|
6
6
|
include Rad::Router::CoreRoutingHelper
|
|
7
|
-
|
|
7
|
+
|
|
8
8
|
def show; end
|
|
9
9
|
end
|
|
10
10
|
end
|
|
11
|
-
|
|
11
|
+
|
|
12
12
|
after :all do
|
|
13
13
|
remove_constants %w(BlogsController)
|
|
14
14
|
end
|
|
15
|
-
|
|
15
|
+
|
|
16
16
|
before do
|
|
17
17
|
@router = Rad::Router.new :class
|
|
18
|
-
|
|
18
|
+
|
|
19
19
|
@params = Rad::Conveyors::Params.new
|
|
20
20
|
@router.stub(:safe_workspace).and_return({params: @params}.to_openobject)
|
|
21
|
-
|
|
21
|
+
|
|
22
22
|
@controller = BlogsController.new
|
|
23
23
|
@controller.stub(:router).and_return(@router)
|
|
24
24
|
end
|
|
25
|
-
|
|
26
|
-
it "basic" do
|
|
27
|
-
@router.stub(:encode_method).and_return([BlogsController, :show])
|
|
25
|
+
|
|
26
|
+
it "basic" do
|
|
27
|
+
@router.stub(:encode_method).and_return([BlogsController, :show])
|
|
28
28
|
@controller.show_blogs_path.should == "/blogs_controller/show"
|
|
29
29
|
end
|
|
30
|
-
|
|
30
|
+
|
|
31
31
|
it "correct works if there's no route" do
|
|
32
32
|
lambda{@controller.undefined_path}.should raise_error(/no route for/)
|
|
33
|
-
lambda{@controller.show_blogs}.should raise_error(/undefined method/)
|
|
33
|
+
lambda{@controller.show_blogs}.should raise_error(/undefined method/)
|
|
34
34
|
end
|
|
35
|
-
|
|
35
|
+
|
|
36
36
|
it "argument parsing" do
|
|
37
|
-
@router.stub(:encode_method).and_return([BlogsController, :show])
|
|
38
|
-
|
|
37
|
+
@router.stub(:encode_method).and_return([BlogsController, :show])
|
|
38
|
+
|
|
39
39
|
@controller.show_blogs_path.should == "/blogs_controller/show"
|
|
40
40
|
@controller.show_blogs_path(a: 'b').should == "/blogs_controller/show?a=b"
|
|
41
|
-
@controller.show_blogs_path(10, a: 'b').should == "/blogs_controller/show?a=b&id=10"
|
|
41
|
+
@controller.show_blogs_path(10, a: 'b').should == "/blogs_controller/show?a=b&id=10"
|
|
42
42
|
end
|
|
43
|
-
|
|
44
|
-
it "helper_method should take any object as :id" do
|
|
43
|
+
|
|
44
|
+
it "helper_method should take any object as :id" do
|
|
45
45
|
class IdStub
|
|
46
46
|
def to_param
|
|
47
47
|
'some_id'
|
|
48
48
|
end
|
|
49
49
|
end
|
|
50
50
|
|
|
51
|
-
@router.stub(:encode_method).and_return([BlogsController, :show])
|
|
51
|
+
@router.stub(:encode_method).and_return([BlogsController, :show])
|
|
52
52
|
@controller.show_blogs_path(IdStub.new, a: 'b').should == "/blogs_controller/show?a=b&id=some_id"
|
|
53
53
|
end
|
|
54
54
|
end
|