rewritten 0.9.0 → 0.9.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 +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
         
     |