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 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