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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e1abdc39d5f840f0792d1f903d000b5d6d36e95b
4
- data.tar.gz: 2746b966bf4d31bb8254fc1a452951a59cdb451c
3
+ metadata.gz: 37841f437483adb3768e967970d71867cb642c7f
4
+ data.tar.gz: 9e3f522b3cf8f71f1ca71a5d4b1283fdfda63e58
5
5
  SHA512:
6
- metadata.gz: 56b3daa7c907ffc0c845bb341d8348201eb486d08729882c574cf9469e7f8c3c314d4a7cd3e9d26338df6c58c6e425f1505e96f122c4fd06bf583862232bb57d
7
- data.tar.gz: f6613822fafe35ccffa7a85b705395a9646421dabdf6cd1a0d5341b7ab234c9eb035916b1e0a085c8b3b475636a1d1ed6d1a18e565930cb5faa2ff57080aa7f0
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
- t = ::Rewritten.get_current_translation(link)
24
- res.gsub!(/href="#{link}"/, %Q|href="#{t}"|) if t
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
@@ -1,4 +1,4 @@
1
1
  module Rewritten
2
- VERSION = "0.9.0"
2
+ VERSION = "0.9.1"
3
3
  end
4
4
 
@@ -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&amp;booking[ends]=1371624300&amp;booking[calendar_id]=50ed77ffed284b0002000008&amp;booking[problem_id]=4d7dfc412696e7790f00002d&amp;booking[service_ids][]=50ed77ffed284b000200000f&amp;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.0
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-05-15 00:00:00.000000000 Z
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