rewritten 0.12.1 → 0.13.0

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: 34a5c63d94e26e835807498f850cf45eecb6a846
4
- data.tar.gz: dc27dfb93fd4a561fde220961a6d1d09c5019268
3
+ metadata.gz: f04c056a99d6a3acda82865046870011d45869e6
4
+ data.tar.gz: 2e1e1d2551c2303756f1ea6c4f6dc29dd0e74614
5
5
  SHA512:
6
- metadata.gz: afe1017ab7ec13d289b1f2107f4f0931b878c356686aadad6018cf933a646c0b0a7d98696098600bfc2b7ee487a286b7a6906f057d58eead5428394e77163667
7
- data.tar.gz: 84c441c885be0a95a9a5e00a5cbdaa068fd24264c8c16c8afe7348ae1f3cbb3d739286a066d7076f5c1d900c2b94a6d21f29c24832da8fe0717ff00b402db749
6
+ metadata.gz: 5d86aca2260d03f7855526b6a5bf8bcafab65739318900eb79dd7f2a6a0eabba67b5aca00b002914c69059d27d6bd15252ddff210f6cd47dbc3e9fe5b6a91ddf
7
+ data.tar.gz: 1b3f8c5c56a42fe6e62237bfd5abc96df833b61cf1054e10e1e987d11b5a1d8a780fc660632ad4619971d0b17880d0b71b8f5efa93f5ba3a9b59d93801985d7b
data/lib/rack/url.rb CHANGED
@@ -29,6 +29,7 @@ module Rack
29
29
 
30
30
  current_path = ::Rewritten.get_current_translation(to)
31
31
  current_path = current_path.split(":").last
32
+ current_path = current_path.split('?')[0]
32
33
 
33
34
  if current_path == req.path_info or ::Rewritten.has_flag?(path, 'L')
34
35
  # if this is the current path, rewrite path and parameters
data/lib/rewritten.rb CHANGED
@@ -187,9 +187,24 @@ module Rewritten
187
187
  end
188
188
 
189
189
  def get_current_translation(path)
190
+
191
+ uri = URI.parse(path)
192
+
190
193
  translation = Rewritten.z_range("to:#{path}", -1)
191
- return translation if translation
192
- return path
194
+
195
+ unless translation
196
+ translation = Rewritten.z_range("to:#{uri.path}", -1)
197
+ end
198
+
199
+ translation = path unless translation
200
+
201
+
202
+ translated_uri = URI.parse(translation)
203
+
204
+ uri.path = translated_uri.path
205
+ uri.query = [translated_uri.query, uri.query].compact.join('&')
206
+ uri.query = nil if uri.query == ''
207
+ uri.to_s
193
208
  end
194
209
 
195
210
  def get_flag_string(from)
@@ -1,4 +1,4 @@
1
1
  module Rewritten
2
- VERSION = "0.12.1"
2
+ VERSION = "0.13.0"
3
3
  end
4
4
 
@@ -11,6 +11,27 @@ describe Rewritten do
11
11
  Rewritten.add_translation('/with/flags [L12]', '/to3')
12
12
  }
13
13
 
14
+ describe 'Rewritten.get_current_translation' do
15
+
16
+ it "must give current_translation" do
17
+ Rewritten.get_current_translation('/to').must_equal '/from2'
18
+ Rewritten.get_current_translation('/to2').must_equal '/from3'
19
+ Rewritten.get_current_translation('/to3').must_equal '/with/flags'
20
+ Rewritten.get_current_translation('/n/a').must_equal '/n/a'
21
+ end
22
+
23
+ it "must find the translation if parameters are added" do
24
+ Rewritten.add_translation('/from_without_params', '/to_without_params')
25
+ Rewritten.get_current_translation('/to_without_params?some=param').must_equal '/from_without_params?some=param'
26
+ end
27
+
28
+ it "must translate if protocol and host are given" do
29
+ Rewritten.add_translation('/from_without_params', '/to_without_params')
30
+ Rewritten.get_current_translation('http://localhost:3000/to_without_params').must_equal 'http://localhost:3000/from_without_params'
31
+ end
32
+
33
+ end
34
+
14
35
  describe "basic interface" do
15
36
 
16
37
  it "must translate froms" do
@@ -20,13 +41,6 @@ describe Rewritten do
20
41
  Rewritten.translate('/with/flags').must_equal '/to3'
21
42
  end
22
43
 
23
- it "must give current_translation" do
24
- Rewritten.get_current_translation('/to').must_equal '/from2'
25
- Rewritten.get_current_translation('/to2').must_equal '/from3'
26
- Rewritten.get_current_translation('/to3').must_equal '/with/flags'
27
- Rewritten.get_current_translation('/n/a').must_equal '/n/a'
28
- end
29
-
30
44
  it "must return the complete line with flags" do
31
45
  Rewritten.full_line('/from').must_equal '/from'
32
46
  Rewritten.full_line('/with/flags').must_equal '/with/flags [L12]'
metadata CHANGED
@@ -1,125 +1,125 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rewritten
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.1
4
+ version: 0.13.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kai Rubarth
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-19 00:00:00.000000000 Z
11
+ date: 2014-08-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: redis-namespace
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: vegas
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: 0.1.2
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ~>
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: 0.1.2
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: sinatra
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: 0.9.2
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: 0.9.2
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: multi_json
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ~>
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
61
  version: '1.0'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ~>
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '1.0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rake
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - '>='
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - '>='
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: minitest
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - '>='
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - '>='
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: pry
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - '>='
101
+ - - ">="
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - '>='
108
+ - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: coveralls
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - '>='
115
+ - - ">="
116
116
  - !ruby/object:Gem::Version
117
117
  version: '0'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - '>='
122
+ - - ">="
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  description: |2
@@ -148,7 +148,7 @@ executables:
148
148
  extensions: []
149
149
  extra_rdoc_files: []
150
150
  files:
151
- - .gitignore
151
+ - ".gitignore"
152
152
  - Gemfile
153
153
  - HISTORY.rdoc
154
154
  - README.md
@@ -211,17 +211,17 @@ require_paths:
211
211
  - lib
212
212
  required_ruby_version: !ruby/object:Gem::Requirement
213
213
  requirements:
214
- - - '>='
214
+ - - ">="
215
215
  - !ruby/object:Gem::Version
216
216
  version: '0'
217
217
  required_rubygems_version: !ruby/object:Gem::Requirement
218
218
  requirements:
219
- - - '>='
219
+ - - ">="
220
220
  - !ruby/object:Gem::Version
221
221
  version: '0'
222
222
  requirements: []
223
223
  rubyforge_project: rewritten
224
- rubygems_version: 2.0.3
224
+ rubygems_version: 2.2.2
225
225
  signing_key:
226
226
  specification_version: 4
227
227
  summary: A redis-based URL rewriting engine