rails_legacy_mapper 1.0.0

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.
@@ -0,0 +1,48 @@
1
+ require 'test/unit'
2
+ require 'mocha'
3
+ require 'action_controller'
4
+ require 'fake_controllers'
5
+ require 'rails_legacy_mapper'
6
+
7
+ ROUTING = ActionDispatch::Routing
8
+
9
+ class MockController
10
+ def self.build(helpers)
11
+ Class.new do
12
+ def url_for(options)
13
+ options[:protocol] ||= "http"
14
+ options[:host] ||= "test.host"
15
+
16
+ super(options)
17
+ end
18
+
19
+ include helpers
20
+ end
21
+ end
22
+ end
23
+
24
+ module RoutingTestHelpers
25
+ def extra_keys(options, recall = {})
26
+ set.extra_keys(options, recall)
27
+ end
28
+
29
+ def generate_extras(options, recall = {})
30
+ set.generate_extras(options, recall)
31
+ end
32
+
33
+ def recognize_path(path, env = {})
34
+ set.recognize_path(path, env)
35
+ end
36
+
37
+ def request
38
+ @request ||= ActionDispatch::TestRequest.new
39
+ end
40
+
41
+ def set
42
+ @set ||= ROUTING::RouteSet.new
43
+ end
44
+
45
+ def url_for(options, recall = nil)
46
+ set.send(:url_for, options.merge(:only_path => true, :_path_segments => recall))
47
+ end
48
+ end
@@ -0,0 +1,54 @@
1
+ require 'test_helper'
2
+
3
+ # See RFC 3986, section 3.3 for allowed path characters.
4
+ class UriReservedCharactersRoutingTest < Test::Unit::TestCase
5
+ include RoutingTestHelpers
6
+
7
+ def setup
8
+ set.draw { |map| map.connect ':controller/:action/:variable/*additional' }
9
+
10
+ safe, unsafe = %w(: @ & = + $ , ;), %w(^ ? # [ ])
11
+ hex = unsafe.map { |char| '%' + char.unpack('H2').first.upcase }
12
+
13
+ @segment = "#{safe.join}#{unsafe.join}".freeze
14
+ @escaped = "#{safe.join}#{hex.join}".freeze
15
+ end
16
+
17
+ def test_route_generation_escapes_unsafe_path_characters
18
+ url_for(
19
+ :controller => "content",
20
+ :action => "act#{@segment}ion",
21
+ :variable => "variable",
22
+ :additional => "foo"
23
+ )
24
+
25
+ assert_equal "/content/act#{@escaped}ion/var#{@escaped}iable/add#{@escaped}itional-1/add#{@escaped}itional-2",
26
+ url_for(
27
+ :controller => "content",
28
+ :action => "act#{@segment}ion",
29
+ :variable => "var#{@segment}iable",
30
+ :additional => ["add#{@segment}itional-1", "add#{@segment}itional-2"]
31
+ )
32
+ end
33
+
34
+ def test_route_recognition_unescapes_path_components
35
+ options = {
36
+ :controller => "content",
37
+ :action => "act#{@segment}ion",
38
+ :variable => "var#{@segment}iable",
39
+ :additional => ["add#{@segment}itional-1", "add#{@segment}itional-2"]
40
+ }
41
+
42
+ assert_equal options, recognize_path("/content/act#{@escaped}ion/var#{@escaped}iable/add#{@escaped}itional-1/add#{@escaped}itional-2")
43
+ end
44
+
45
+ def test_route_generation_allows_passing_non_string_values_to_generated_helper
46
+ assert_equal "/content/action/variable/1/2",
47
+ url_for(
48
+ :controller => "content",
49
+ :action => "action",
50
+ :variable => "variable",
51
+ :additional => [1, 2]
52
+ )
53
+ end
54
+ end
metadata ADDED
@@ -0,0 +1,158 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rails_legacy_mapper
3
+ version: !ruby/object:Gem::Version
4
+ hash: 23
5
+ prerelease:
6
+ segments:
7
+ - 1
8
+ - 0
9
+ - 0
10
+ version: 1.0.0
11
+ platform: ruby
12
+ authors:
13
+ - Andrew White
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-03-29 00:00:00 +01:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ version_requirements: &id001 !ruby/object:Gem::Requirement
23
+ none: false
24
+ requirements:
25
+ - - ~>
26
+ - !ruby/object:Gem::Version
27
+ hash: 31098233
28
+ segments:
29
+ - 3
30
+ - 1
31
+ - 0
32
+ - beta
33
+ version: 3.1.0.beta
34
+ prerelease: false
35
+ type: :runtime
36
+ requirement: *id001
37
+ name: rails
38
+ - !ruby/object:Gem::Dependency
39
+ version_requirements: &id002 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ~>
43
+ - !ruby/object:Gem::Version
44
+ hash: 3
45
+ segments:
46
+ - 1
47
+ - 0
48
+ - 10
49
+ version: 1.0.10
50
+ prerelease: false
51
+ type: :development
52
+ requirement: *id002
53
+ name: bundler
54
+ - !ruby/object:Gem::Dependency
55
+ version_requirements: &id003 !ruby/object:Gem::Requirement
56
+ none: false
57
+ requirements:
58
+ - - ~>
59
+ - !ruby/object:Gem::Version
60
+ hash: 43
61
+ segments:
62
+ - 0
63
+ - 9
64
+ - 8
65
+ version: 0.9.8
66
+ prerelease: false
67
+ type: :development
68
+ requirement: *id003
69
+ name: mocha
70
+ - !ruby/object:Gem::Dependency
71
+ version_requirements: &id004 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ~>
75
+ - !ruby/object:Gem::Version
76
+ hash: 49
77
+ segments:
78
+ - 0
79
+ - 8
80
+ - 7
81
+ version: 0.8.7
82
+ prerelease: false
83
+ type: :development
84
+ requirement: *id004
85
+ name: rake
86
+ description: |
87
+ This gem provides an extraction of the DeprecatedMapper from Rails 3.0.
88
+ If you have a legacy application with an old style routes.rb file this
89
+ allows you to get your application running quickly in Rails 3.1.
90
+
91
+ email:
92
+ - andyw@pixeltrix.co.uk
93
+ executables: []
94
+
95
+ extensions: []
96
+
97
+ extra_rdoc_files: []
98
+
99
+ files:
100
+ - .gemtest
101
+ - CHANGELOG
102
+ - LICENSE
103
+ - README
104
+ - Rakefile
105
+ - lib/rails_legacy_mapper.rb
106
+ - lib/rails_legacy_mapper/mapper.rb
107
+ - lib/rails_legacy_mapper/route_set_extensions.rb
108
+ - lib/rails_legacy_mapper/version.rb
109
+ - rails_legacy_mapper.gemspec
110
+ - test/fake_controllers.rb
111
+ - test/legacy_route_set_test.rb
112
+ - test/rack_mount_integration_test.rb
113
+ - test/resources_test.rb
114
+ - test/route_set_test.rb
115
+ - test/test_helper.rb
116
+ - test/uri_reserved_characters_routing_test.rb
117
+ has_rdoc: true
118
+ homepage: https://github.com/pixeltrix/rails_legacy_mapper/
119
+ licenses: []
120
+
121
+ post_install_message:
122
+ rdoc_options: []
123
+
124
+ require_paths:
125
+ - lib
126
+ required_ruby_version: !ruby/object:Gem::Requirement
127
+ none: false
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ hash: 3
132
+ segments:
133
+ - 0
134
+ version: "0"
135
+ required_rubygems_version: !ruby/object:Gem::Requirement
136
+ none: false
137
+ requirements:
138
+ - - ">="
139
+ - !ruby/object:Gem::Version
140
+ hash: 3
141
+ segments:
142
+ - 0
143
+ version: "0"
144
+ requirements: []
145
+
146
+ rubyforge_project:
147
+ rubygems_version: 1.6.2
148
+ signing_key:
149
+ specification_version: 3
150
+ summary: Old style routes for Rails 3.1
151
+ test_files:
152
+ - test/fake_controllers.rb
153
+ - test/legacy_route_set_test.rb
154
+ - test/rack_mount_integration_test.rb
155
+ - test/resources_test.rb
156
+ - test/route_set_test.rb
157
+ - test/test_helper.rb
158
+ - test/uri_reserved_characters_routing_test.rb