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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1c46c2783b6c6c0b7513137ee064d35204d248a8
4
- data.tar.gz: e30fe5d81af0086b38aca82dbd03e0a38b9833ef
3
+ metadata.gz: bc8f7c951c788595d33a51ef61a2c0816bce4434
4
+ data.tar.gz: 6c9b8f754364a3085b625de88771d773e858de76
5
5
  SHA512:
6
- metadata.gz: d04627b4246a02ffb960087a07e54ac2a9d5f33196ef32d78b65e3b2ccaabe3515384a88f7536ed8305c9f5ceeb800bcf4c1fac8e9a1f109203839466727d113
7
- data.tar.gz: 92736611e92c52327f5faa2754668c9cc97578f806c5aa145b2a7963c3616c0c137fb5c0333679b5312c1e61ecf2f30289494554b014b9599afa7cb92f878eb2
6
+ metadata.gz: e16d7961db76c0ba4e6f39d6304339fe3acce5e3ef430a2a0f01b2c60099da0f820ea1a55be72d6c816074e618ba77a3901de1fb4d9b2d44357b55ee45a95463
7
+ data.tar.gz: 89162c04f68b099dda7b8d5499160e06dc693029fff79d7e48d71f387ea97dd09e817c72fb4553aa9ec0ac873cdc6a080b523460c3c044a054da1265e5a20e9c
data/HISTORY.rdoc CHANGED
@@ -1,3 +1,7 @@
1
+ == 0.16.1
2
+
3
+ * include exception list for reverse translations
4
+
1
5
  == 0.16.0
2
6
 
3
7
  * Makes rewritten work with fullpath. Example: Matching on '/some/url?q=1' will work now
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
@@ -1,3 +1,3 @@
1
1
  module Rewritten
2
- VERSION = '0.16.0'
2
+ VERSION = '0.16.1'
3
3
  end
@@ -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.0
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-07-31 00:00:00.000000000 Z
11
+ date: 2015-12-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: redis-namespace