rewritten 0.16.0 → 0.16.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|