rewritten 0.9.0 → 0.9.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/rack/html.rb +9 -2
- data/lib/rewritten/version.rb +1 -1
- data/test/rack/rewritten_html_test.rb +49 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 37841f437483adb3768e967970d71867cb642c7f
|
4
|
+
data.tar.gz: 9e3f522b3cf8f71f1ca71a5d4b1283fdfda63e58
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ccd2858e30f1b317f3d2b879ee8e246090203713a0047f0fa67183075fa7feb927d61ba5ba72ef98b59a0652bd020d4901c7aa110ccc1a8a72eeb49f1736f730
|
7
|
+
data.tar.gz: f0223d07fd9ebdafb2f6e9835d99f4bba4fa45e7d99a7088d891f3500496de033198f2fc57cf2851b53c35b568361e3d0de0fe35bb0b530b1bfdad1c23ae71d4
|
data/lib/rack/html.rb
CHANGED
@@ -20,8 +20,15 @@ module Rack
|
|
20
20
|
links = line.scan(/href="([^"]+)"/).flatten.uniq
|
21
21
|
res = line
|
22
22
|
links.each do |link|
|
23
|
-
|
24
|
-
|
23
|
+
|
24
|
+
if ::Rewritten.exist_translation_for?(link)
|
25
|
+
t = ::Rewritten.get_current_translation(link)
|
26
|
+
res.gsub!(%Q|href="#{link}"|, %Q|href="#{t}"|) if t
|
27
|
+
res.gsub!(%Q|href='#{link}'|, %Q|href='#{t}'|) if t
|
28
|
+
res.gsub!(%Q|href="#{link}?|, %Q|href="#{t}?|) if t
|
29
|
+
res.gsub!(%Q|href='#{link}?|, %Q|href='#{t}?|) if t
|
30
|
+
end
|
31
|
+
|
25
32
|
end
|
26
33
|
new_response << res
|
27
34
|
end
|
data/lib/rewritten/version.rb
CHANGED
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
describe Rack::Rewritten::Url do
|
4
|
+
|
5
|
+
before {
|
6
|
+
Rewritten.add_translation '/foo/bar', '/products/1'
|
7
|
+
Rewritten.add_translation '/foo/baz', '/products/1'
|
8
|
+
Rewritten.add_translation '/foo/with/params', '/products/2?w=1'
|
9
|
+
}
|
10
|
+
|
11
|
+
describe "substition behavior" do
|
12
|
+
|
13
|
+
before {
|
14
|
+
@html_body = <<-HTML
|
15
|
+
<html>
|
16
|
+
<body>
|
17
|
+
<a href="/">home</a>
|
18
|
+
<a href="/foo">foo</a>
|
19
|
+
<a href="/foo?d=1">foo</a>
|
20
|
+
<a href='/foo?s=1'>foo</a>
|
21
|
+
<a href='/foolmenot'>fool</a>
|
22
|
+
<a href="#">nolink</a>
|
23
|
+
<a href="/bookings/new?booking[starts]=1371623400&booking[ends]=1371624300&booking[calendar_id]=50ed77ffed284b0002000008&booking[problem_id]=4d7dfc412696e7790f00002d&booking[service_ids][]=50ed77ffed284b000200000f&insurance=public">time</a>
|
24
|
+
</body>
|
25
|
+
</html>
|
26
|
+
HTML
|
27
|
+
|
28
|
+
@rack = Rack::Rewritten::Html.new(lambda{|env| [200, {}, [@html_body]]})
|
29
|
+
}
|
30
|
+
|
31
|
+
it "must ignore everything" do
|
32
|
+
res,env,body = @rack.call({})
|
33
|
+
html = body.join("")
|
34
|
+
html.must_equal @html_body
|
35
|
+
end
|
36
|
+
|
37
|
+
it "must replace links with translations" do
|
38
|
+
Rewritten.add_translation('/bar', '/foo')
|
39
|
+
res,env,body = @rack.call({})
|
40
|
+
html = body.join("")
|
41
|
+
assert ! (html =~ (/foo\??["']/) ), "didn't replace all /foo links"
|
42
|
+
assert html.include? "/bar"
|
43
|
+
assert html.include?("/foolmenot"), "must not mess with similar links"
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
|
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.9.
|
4
|
+
version: 0.9.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: 2013-
|
11
|
+
date: 2013-06-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: redis-namespace
|
@@ -179,6 +179,7 @@ files:
|
|
179
179
|
- lib/rewritten/server/views/translations.erb
|
180
180
|
- lib/rewritten/version.rb
|
181
181
|
- rewritten.gemspec
|
182
|
+
- test/rack/rewritten_html_test.rb
|
182
183
|
- test/rack/rewritten_url_test.rb
|
183
184
|
- test/rewritten_test.rb
|
184
185
|
- test/test_helper.rb
|