rewritten 0.16.0 → 0.16.1
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/HISTORY.rdoc +4 -0
- data/lib/rack/url.rb +11 -3
- data/lib/rewritten/version.rb +1 -1
- data/test/rack/rewritten_url_test.rb +13 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bc8f7c951c788595d33a51ef61a2c0816bce4434
|
4
|
+
data.tar.gz: 6c9b8f754364a3085b625de88771d773e858de76
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e16d7961db76c0ba4e6f39d6304339fe3acce5e3ef430a2a0f01b2c60099da0f820ea1a55be72d6c816074e618ba77a3901de1fb4d9b2d44357b55ee45a95463
|
7
|
+
data.tar.gz: 89162c04f68b099dda7b8d5499160e06dc693029fff79d7e48d71f387ea97dd09e817c72fb4553aa9ec0ac873cdc6a080b523460c3c044a054da1265e5a20e9c
|
data/HISTORY.rdoc
CHANGED
data/lib/rack/url.rb
CHANGED
@@ -8,6 +8,7 @@ module Rack
|
|
8
8
|
def initialize(app, &block)
|
9
9
|
@app = app
|
10
10
|
@translate_backwards = false
|
11
|
+
@translate_backwards_exceptions = []
|
11
12
|
@downcase_before_lookup = false
|
12
13
|
@translate_partial = false
|
13
14
|
@base_url = ''
|
@@ -36,7 +37,7 @@ module Rack
|
|
36
37
|
r = Rack::Response.new
|
37
38
|
r.redirect(target_url, 301)
|
38
39
|
r.finish
|
39
|
-
elsif ::Rewritten.includes?(req.fullpath) || ::Rewritten.includes?(path.chomp('/')) || backwards = (translate_backwards? && ::Rewritten.exist_translation_for?(path))
|
40
|
+
elsif ::Rewritten.includes?(req.fullpath) || ::Rewritten.includes?(path.chomp('/')) || backwards = (translate_backwards?(path) && ::Rewritten.exist_translation_for?(path))
|
40
41
|
|
41
42
|
to = ::Rewritten.includes?(req.fullpath)
|
42
43
|
to ||= ::Rewritten.includes?(path.chomp('/')) || path
|
@@ -80,11 +81,18 @@ module Rack
|
|
80
81
|
|
81
82
|
private
|
82
83
|
|
83
|
-
def translate_backwards?
|
84
|
-
@translate_backwards
|
84
|
+
def translate_backwards?(path)
|
85
|
+
return false unless @translate_backwards
|
86
|
+
|
87
|
+
@translate_backwards_exceptions.each do |exception|
|
88
|
+
return false if path.index(exception) == 0
|
89
|
+
end
|
90
|
+
|
91
|
+
true
|
85
92
|
end
|
86
93
|
|
87
94
|
attr_writer :translate_backwards
|
95
|
+
attr_accessor :translate_backwards_exceptions
|
88
96
|
|
89
97
|
def downcase_before_lookup?
|
90
98
|
@downcase_before_lookup
|
data/lib/rewritten/version.rb
CHANGED
@@ -181,6 +181,19 @@ describe Rack::Rewritten::Url do
|
|
181
181
|
ret[0].must_equal 301
|
182
182
|
ret[1]['Location'].must_equal 'http://www.example.org/foo/baz'
|
183
183
|
end
|
184
|
+
|
185
|
+
it 'must not redirect from resource url to nice url if enabled but in exceptions' do
|
186
|
+
@rack = Rack::Rewritten::Url.new(@app) do
|
187
|
+
self.translate_backwards = true
|
188
|
+
self.translate_backwards_exceptions = ['/products']
|
189
|
+
end
|
190
|
+
|
191
|
+
@app.expect :call, [200, { 'Content-Type' => 'text/plain' }, ['']], [Hash]
|
192
|
+
ret = @rack.call request_url('/products/1')
|
193
|
+
@app.verify
|
194
|
+
ret[0].must_equal 200
|
195
|
+
end
|
196
|
+
|
184
197
|
end
|
185
198
|
|
186
199
|
describe 'flag behavior' do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rewritten
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.16.
|
4
|
+
version: 0.16.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kai Rubarth
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-12-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: redis-namespace
|