rack-www 1.5.0 → 2.0.0
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 +7 -0
- data/.gitignore +2 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/CHANGELOG.md +34 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +26 -0
- data/{README.rdoc → README.md} +24 -14
- data/Rakefile +9 -0
- data/lib/rack/www.rb +8 -18
- data/rack-www.gemspec +21 -0
- data/test/helper.rb +21 -0
- data/test/predicate_test.rb +20 -0
- data/test/subdomain_test.rb +43 -0
- data/test/www_false_test.rb +27 -0
- data/test/www_true_test.rb +58 -0
- metadata +79 -25
- data/CHANGELOG.rdoc +0 -26
    
        checksums.yaml
    ADDED
    
    | @@ -0,0 +1,7 @@ | |
| 1 | 
            +
            ---
         | 
| 2 | 
            +
            SHA1:
         | 
| 3 | 
            +
              metadata.gz: c1a573de69069e3e4dba5fa155a61171e7f2a5db
         | 
| 4 | 
            +
              data.tar.gz: 1eccb6a5132455dac0d7a3e52870ef3fc8999292
         | 
| 5 | 
            +
            SHA512:
         | 
| 6 | 
            +
              metadata.gz: 793e64555ba1265be7ac95a543920aeb2156a64636153ae6f16b35bf77393b40638f886b0c38227a778c1f35f0067a44064d451eafeade87450e049332ccde64
         | 
| 7 | 
            +
              data.tar.gz: 4ae7ab8da7a192df653a069118b97db41b7b38a3f61c47c2b6f332dd4fdc9dbf3a452c1356d408d7e7d07236527c59239347bb58f0baa3a7395b6c77db3fa957
         | 
    
        data/.gitignore
    ADDED
    
    
    
        data/.ruby-gemset
    ADDED
    
    | @@ -0,0 +1 @@ | |
| 1 | 
            +
            rack-www
         | 
    
        data/.ruby-version
    ADDED
    
    | @@ -0,0 +1 @@ | |
| 1 | 
            +
            2.2.3
         | 
    
        data/CHANGELOG.md
    ADDED
    
    | @@ -0,0 +1,34 @@ | |
| 1 | 
            +
            ## 2.0
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            - Update EVERYTHING
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            ## 1.5
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            - Bug fixes
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            ## 1.4
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            - Respect server port
         | 
| 12 | 
            +
            - Body responds to :each
         | 
| 13 | 
            +
            - Rack::Lint on tests
         | 
| 14 | 
            +
             | 
| 15 | 
            +
            ## 1.3
         | 
| 16 | 
            +
             | 
| 17 | 
            +
            - Added possibility to redirects to any given :subdomain [Ryan Weald (https://github.com/rweald)]
         | 
| 18 | 
            +
            - Added more tests
         | 
| 19 | 
            +
             | 
| 20 | 
            +
            ## 1.2
         | 
| 21 | 
            +
             | 
| 22 | 
            +
            - Redirects to the right url without calling the app
         | 
| 23 | 
            +
            - Keep the path when redirecting
         | 
| 24 | 
            +
            - Keep the query string when redirecting
         | 
| 25 | 
            +
            - Added more tests
         | 
| 26 | 
            +
             | 
| 27 | 
            +
            ## 1.1
         | 
| 28 | 
            +
             | 
| 29 | 
            +
            - Added possibility to redirects with www or without www
         | 
| 30 | 
            +
            - Added possibility to set a param :message to show while redirecting
         | 
| 31 | 
            +
             | 
| 32 | 
            +
            ## 1.0
         | 
| 33 | 
            +
             | 
| 34 | 
            +
            - Redirects all traffic to www
         | 
    
        data/Gemfile
    ADDED
    
    
    
        data/Gemfile.lock
    ADDED
    
    | @@ -0,0 +1,26 @@ | |
| 1 | 
            +
            PATH
         | 
| 2 | 
            +
              remote: .
         | 
| 3 | 
            +
              specs:
         | 
| 4 | 
            +
                rack-www (2.0.0)
         | 
| 5 | 
            +
                  rack (~> 1.0)
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            GEM
         | 
| 8 | 
            +
              remote: https://rubygems.org/
         | 
| 9 | 
            +
              specs:
         | 
| 10 | 
            +
                minitest (5.8.3)
         | 
| 11 | 
            +
                rack (1.6.4)
         | 
| 12 | 
            +
                rack-test (0.6.3)
         | 
| 13 | 
            +
                  rack (>= 1.0)
         | 
| 14 | 
            +
                rake (10.4.2)
         | 
| 15 | 
            +
             | 
| 16 | 
            +
            PLATFORMS
         | 
| 17 | 
            +
              ruby
         | 
| 18 | 
            +
             | 
| 19 | 
            +
            DEPENDENCIES
         | 
| 20 | 
            +
              minitest (~> 5.8)
         | 
| 21 | 
            +
              rack-test (~> 0.6)
         | 
| 22 | 
            +
              rack-www!
         | 
| 23 | 
            +
              rake (~> 10.4)
         | 
| 24 | 
            +
             | 
| 25 | 
            +
            BUNDLED WITH
         | 
| 26 | 
            +
               1.10.6
         | 
    
        data/{README.rdoc → README.md}
    RENAMED
    
    | @@ -1,55 +1,65 @@ | |
| 1 | 
            -
             | 
| 1 | 
            +
            ## rack-www
         | 
| 2 2 |  | 
| 3 | 
            -
            Rack middleware to force subdomain redirects, e.g: www | 
| 3 | 
            +
            Rack middleware to force subdomain redirects, e.g: www or www2
         | 
| 4 4 |  | 
| 5 | 
            -
             | 
| 5 | 
            +
            ### Installation
         | 
| 6 6 |  | 
| 7 | 
            +
            ```ruby
         | 
| 7 8 | 
             
              #default installation
         | 
| 8 9 | 
             
              gem install rack-www
         | 
| 9 10 |  | 
| 10 11 | 
             
              #when using bundler
         | 
| 11 12 | 
             
              gem 'rack-www'
         | 
| 13 | 
            +
            ```
         | 
| 12 14 |  | 
| 13 | 
            -
             | 
| 14 | 
            -
            === Usage
         | 
| 15 | 
            +
            ### Usage
         | 
| 15 16 |  | 
| 16 17 | 
             
            Default usage (by default will redirect all requests to www subdomain):
         | 
| 17 18 |  | 
| 19 | 
            +
            ```ruby
         | 
| 18 20 | 
             
              #redirects all traffic to www subdomain
         | 
| 19 21 | 
             
              config.middleware.use Rack::WWW
         | 
| 22 | 
            +
            ```
         | 
| 20 23 |  | 
| 21 24 | 
             
            Customizing the :www option to true or false:
         | 
| 22 25 |  | 
| 26 | 
            +
            ```ruby
         | 
| 23 27 | 
             
              #redirects all traffic to www
         | 
| 24 | 
            -
              config.middleware.use Rack::WWW, : | 
| 28 | 
            +
              config.middleware.use Rack::WWW, www: true
         | 
| 25 29 |  | 
| 26 30 |  | 
| 27 31 | 
             
              #redirects all traffic to the same domain without www
         | 
| 28 | 
            -
              config.middleware.use Rack::WWW, : | 
| 32 | 
            +
              config.middleware.use Rack::WWW, www: false
         | 
| 33 | 
            +
            ```
         | 
| 29 34 |  | 
| 30 35 | 
             
            Redirecting to a given subdomain:
         | 
| 31 36 |  | 
| 37 | 
            +
            ```ruby
         | 
| 32 38 | 
             
              #redirects all traffic to the 'secure' subdomain
         | 
| 33 39 | 
             
              config.middleware.use Rack::WWW, :subdomain => "secure"
         | 
| 40 | 
            +
            ```
         | 
| 34 41 |  | 
| 35 42 | 
             
            If you like it's also possible to show a message while redirecting the user:
         | 
| 36 43 |  | 
| 44 | 
            +
            ```ruby
         | 
| 37 45 | 
             
              config.middleware.use Rack::WWW, :www => false, :message => "You are being redirected..."
         | 
| 46 | 
            +
            ```
         | 
| 38 47 |  | 
| 39 48 | 
             
            You can optionally specify predicate to determine if redirect should take place:
         | 
| 40 49 |  | 
| 50 | 
            +
            ```ruby
         | 
| 41 51 | 
             
              config.middleware.use Rack::WWW, :predicate => lambda { |env|
         | 
| 42 52 | 
             
                !Rack::Request.new(env).params.has_key? "noredirect"
         | 
| 43 53 | 
             
              }
         | 
| 54 | 
            +
            ```
         | 
| 44 55 |  | 
| 56 | 
            +
            ### Options
         | 
| 45 57 |  | 
| 46 | 
            -
             | 
| 47 | 
            -
             | 
| 48 | 
            -
             | 
| 49 | 
            -
            * :subdomain => redirects to any given subdomain;
         | 
| 50 | 
            -
            * :message => display a message while redirecting;
         | 
| 58 | 
            +
            - :www => default is true, redirects all traffic to www;
         | 
| 59 | 
            +
            - :subdomain => redirects to any given subdomain;
         | 
| 60 | 
            +
            - :message => display a message while redirecting;
         | 
| 51 61 |  | 
| 52 62 |  | 
| 53 | 
            -
             | 
| 63 | 
            +
            ### License
         | 
| 54 64 |  | 
| 55 | 
            -
            MIT License. Copyright 2011 Jhimy Fernandes Villar | 
| 65 | 
            +
            MIT License. Copyright 2011 Jhimy Fernandes Villar http://stjhimy.com
         | 
    
        data/Rakefile
    ADDED
    
    
    
        data/lib/rack/www.rb
    CHANGED
    
    | @@ -4,11 +4,10 @@ require 'rack/request' | |
| 4 4 | 
             
            module Rack
         | 
| 5 5 | 
             
              class WWW
         | 
| 6 6 | 
             
                def initialize(app, options = {})
         | 
| 7 | 
            -
                  @options = {:subdomain => "www" | 
| 7 | 
            +
                  @options = {:subdomain => "www"}.merge(options)
         | 
| 8 8 | 
             
                  @app = app
         | 
| 9 9 |  | 
| 10 | 
            -
                  @redirect = true
         | 
| 11 | 
            -
                  @redirect = @options[:www] if @options[:www] != nil
         | 
| 10 | 
            +
                  @redirect = @options[:www] != nil ? @options[:www] : true
         | 
| 12 11 | 
             
                  @message = @options[:message]
         | 
| 13 12 | 
             
                  @subdomain = @options[:subdomain]
         | 
| 14 13 | 
             
                  @predicate = @options[:predicate]
         | 
| @@ -23,7 +22,6 @@ module Rack | |
| 23 22 | 
             
                end
         | 
| 24 23 |  | 
| 25 24 | 
             
                private
         | 
| 26 | 
            -
             | 
| 27 25 | 
             
                def redirect(env)
         | 
| 28 26 | 
             
                  url = prepare_url(env)
         | 
| 29 27 | 
             
                  headers = {"Content-Type" => "text/html", "location" => url}
         | 
| @@ -50,29 +48,20 @@ module Rack | |
| 50 48 |  | 
| 51 49 | 
             
                def change_subdomain?(env)
         | 
| 52 50 | 
             
                  @redirect && !already_subdomain?(env) ||
         | 
| 53 | 
            -
             | 
| 51 | 
            +
                    !@redirect && already_subdomain?(env)
         | 
| 54 52 | 
             
                end
         | 
| 55 53 |  | 
| 56 54 | 
             
                def already_subdomain?(env)
         | 
| 57 | 
            -
                  env["HTTP_HOST"].downcase =~ /^(#{@subdomain} | 
| 55 | 
            +
                  env["HTTP_HOST"].to_s.downcase =~ /^(#{@subdomain}\.)/
         | 
| 58 56 | 
             
                end
         | 
| 59 57 |  | 
| 60 58 | 
             
                def prepare_url(env)
         | 
| 61 59 | 
             
                  scheme = env["rack.url_scheme"]
         | 
| 62 | 
            -
             | 
| 63 | 
            -
                   | 
| 64 | 
            -
                  host = host.gsub(/^(www.)/, "")
         | 
| 65 | 
            -
             | 
| 66 | 
            -
                  if env['SERVER_PORT'] == '80'
         | 
| 67 | 
            -
                    port = ''
         | 
| 68 | 
            -
                  else
         | 
| 69 | 
            -
                    port = ":#{env['SERVER_PORT']}"
         | 
| 70 | 
            -
                  end
         | 
| 71 | 
            -
             | 
| 60 | 
            +
                  host = env["SERVER_NAME"].to_s.gsub(/^(#{@subdomain}\.)/, "").gsub(/^(www\.)/, "")
         | 
| 61 | 
            +
                  port = env['SERVER_PORT'] == '80' ? '' : ":#{env['SERVER_PORT']}"
         | 
| 72 62 | 
             
                  path = env["PATH_INFO"]
         | 
| 73 63 |  | 
| 74 | 
            -
                   | 
| 75 | 
            -
                  if !env["QUERY_STRING"].empty?
         | 
| 64 | 
            +
                  unless env["QUERY_STRING"].empty?
         | 
| 76 65 | 
             
                    query_string = "?" + env["QUERY_STRING"]
         | 
| 77 66 | 
             
                  end
         | 
| 78 67 |  | 
| @@ -81,6 +70,7 @@ module Rack | |
| 81 70 | 
             
                  else
         | 
| 82 71 | 
             
                    host = "://" + host
         | 
| 83 72 | 
             
                  end
         | 
| 73 | 
            +
             | 
| 84 74 | 
             
                  "#{scheme}#{host}#{port}#{path}#{query_string}"
         | 
| 85 75 | 
             
                end
         | 
| 86 76 | 
             
              end
         | 
    
        data/rack-www.gemspec
    ADDED
    
    | @@ -0,0 +1,21 @@ | |
| 1 | 
            +
            Gem::Specification.new do |s|
         | 
| 2 | 
            +
              s.name        = 'rack-www'
         | 
| 3 | 
            +
              s.version     = '2.0.0'
         | 
| 4 | 
            +
              s.date        = '2015-12-02'
         | 
| 5 | 
            +
              s.homepage    = "https://github.com/stjhimy/rack-www"
         | 
| 6 | 
            +
              s.email       = "stjhimy@gmail.com"
         | 
| 7 | 
            +
              s.summary     = "Force redirects to a any given subdomain, example: www or www2"
         | 
| 8 | 
            +
              s.description = "Rack middleware to force subdomain redirects."
         | 
| 9 | 
            +
              s.licenses    = ["MIT"]
         | 
| 10 | 
            +
              s.authors     = ["Jhimy Fernandes Villar"]
         | 
| 11 | 
            +
             | 
| 12 | 
            +
              s.files         = `git ls-files`.split("\n")
         | 
| 13 | 
            +
              s.test_files    = `git ls-files -- test/*`.split("\n")
         | 
| 14 | 
            +
              s.require_paths = ["lib"]
         | 
| 15 | 
            +
              s.required_ruby_version = '>= 1.9.3'
         | 
| 16 | 
            +
             | 
| 17 | 
            +
              s.add_runtime_dependency 'rack', '~> 1.0'
         | 
| 18 | 
            +
              s.add_development_dependency 'rake', '~> 10.4'
         | 
| 19 | 
            +
              s.add_development_dependency 'rack-test', '~> 0.6'
         | 
| 20 | 
            +
              s.add_development_dependency 'minitest', '~> 5.8'
         | 
| 21 | 
            +
            end
         | 
    
        data/test/helper.rb
    ADDED
    
    | @@ -0,0 +1,21 @@ | |
| 1 | 
            +
            require "rack/www"
         | 
| 2 | 
            +
            require 'minitest/autorun'
         | 
| 3 | 
            +
            require 'rack/test'
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            class TestClass < MiniTest::Test
         | 
| 6 | 
            +
              include Rack::Test::Methods
         | 
| 7 | 
            +
             | 
| 8 | 
            +
              def default_app
         | 
| 9 | 
            +
                lambda { |env|
         | 
| 10 | 
            +
                  headers = {'Content-Type' => "text/html"}
         | 
| 11 | 
            +
                  headers['Set-Cookie'] = "id=1; path=/\ntoken=abc; path=/; secure; HttpOnly"
         | 
| 12 | 
            +
                  [200, headers, ["default body"]]
         | 
| 13 | 
            +
                }
         | 
| 14 | 
            +
              end
         | 
| 15 | 
            +
             | 
| 16 | 
            +
              def app
         | 
| 17 | 
            +
                @app ||= Rack::Lint.new(Rack::WWW.new(default_app))
         | 
| 18 | 
            +
              end
         | 
| 19 | 
            +
             | 
| 20 | 
            +
              attr_writer :app
         | 
| 21 | 
            +
            end
         | 
| @@ -0,0 +1,20 @@ | |
| 1 | 
            +
            require "helper"
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            class PredicateTest < TestClass
         | 
| 4 | 
            +
              def test_predicate_false
         | 
| 5 | 
            +
                self.app = Rack::WWW.new(default_app, :predicate => lambda { |env| false } )
         | 
| 6 | 
            +
                get_example
         | 
| 7 | 
            +
                assert_equal last_response.status, 200
         | 
| 8 | 
            +
              end
         | 
| 9 | 
            +
             | 
| 10 | 
            +
              def test_predicate_true
         | 
| 11 | 
            +
                self.app = Rack::WWW.new(default_app, :predicate => lambda { |env| true } )
         | 
| 12 | 
            +
                get_example
         | 
| 13 | 
            +
                assert_equal "http://www.example.com/", last_response.headers['Location']
         | 
| 14 | 
            +
              end
         | 
| 15 | 
            +
             | 
| 16 | 
            +
              private
         | 
| 17 | 
            +
              def get_example
         | 
| 18 | 
            +
                get "http://example.com/"
         | 
| 19 | 
            +
              end
         | 
| 20 | 
            +
            end
         | 
| @@ -0,0 +1,43 @@ | |
| 1 | 
            +
            require "helper"
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            class SubdomainTest < TestClass
         | 
| 4 | 
            +
              def setup
         | 
| 5 | 
            +
                self.app = Rack::WWW.new(default_app, :subdomain => "secure")
         | 
| 6 | 
            +
              end
         | 
| 7 | 
            +
             | 
| 8 | 
            +
              def test_if_allow_custom_subdomain
         | 
| 9 | 
            +
                get 'http://example.com'
         | 
| 10 | 
            +
                assert_equal 'http://secure.example.com/', last_response.headers['Location']
         | 
| 11 | 
            +
              end
         | 
| 12 | 
            +
             | 
| 13 | 
            +
              def test_custom_subdomain_with_path
         | 
| 14 | 
            +
                get "http://example.com/path/1"
         | 
| 15 | 
            +
                assert_equal "http://secure.example.com/path/1", last_response.headers['Location']
         | 
| 16 | 
            +
              end
         | 
| 17 | 
            +
             | 
| 18 | 
            +
              def test_custom_subdomain_with_path_and_www
         | 
| 19 | 
            +
                get "http://www.example.com/path/1"
         | 
| 20 | 
            +
                assert_equal "http://secure.example.com/path/1", last_response.headers['Location']
         | 
| 21 | 
            +
              end
         | 
| 22 | 
            +
             | 
| 23 | 
            +
              def test_custom_subdomain_with_query
         | 
| 24 | 
            +
                get "http://example.com/path/1?test=true"
         | 
| 25 | 
            +
                assert_equal "http://secure.example.com/path/1?test=true", last_response.headers['Location']
         | 
| 26 | 
            +
              end
         | 
| 27 | 
            +
             | 
| 28 | 
            +
              def test_custom_subdomain_with_query_and_www
         | 
| 29 | 
            +
                get "http://www.example.com/path/1?test=true"
         | 
| 30 | 
            +
                assert_equal "http://secure.example.com/path/1?test=true", last_response.headers['Location']
         | 
| 31 | 
            +
              end
         | 
| 32 | 
            +
             | 
| 33 | 
            +
              def test_body_with_custom_subdomain_and_message
         | 
| 34 | 
            +
                self.app = Rack::WWW.new(default_app, :subdomain => "secure", :message => "redirecting now!")
         | 
| 35 | 
            +
                get "http://example.com/"
         | 
| 36 | 
            +
                assert_equal last_response.body, "redirecting now!"
         | 
| 37 | 
            +
              end
         | 
| 38 | 
            +
             | 
| 39 | 
            +
              def test_body_with_custom_subdomain_without_message
         | 
| 40 | 
            +
                get "http://example.com/"
         | 
| 41 | 
            +
                assert_equal last_response.body, ""
         | 
| 42 | 
            +
              end
         | 
| 43 | 
            +
            end
         | 
| @@ -0,0 +1,27 @@ | |
| 1 | 
            +
            require "helper"
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            class FalseWWW < TestClass
         | 
| 4 | 
            +
              def setup
         | 
| 5 | 
            +
                self.app = Rack::WWW.new(default_app, :www => false)
         | 
| 6 | 
            +
              end
         | 
| 7 | 
            +
             | 
| 8 | 
            +
              def test_www_false
         | 
| 9 | 
            +
                get "http://www.example.com/"
         | 
| 10 | 
            +
                assert_equal "http://example.com/", last_response.headers['Location']
         | 
| 11 | 
            +
              end
         | 
| 12 | 
            +
             | 
| 13 | 
            +
              def test_www_false_with_path
         | 
| 14 | 
            +
                get "http://www.example.com/path/1"
         | 
| 15 | 
            +
                assert_equal "http://example.com/path/1", last_response.headers['Location']
         | 
| 16 | 
            +
              end
         | 
| 17 | 
            +
             | 
| 18 | 
            +
              def test_www_false_with_query
         | 
| 19 | 
            +
                get "http://www.example.com/path/1?param=test"
         | 
| 20 | 
            +
                assert_equal "http://example.com/path/1?param=test", last_response.headers['Location']
         | 
| 21 | 
            +
              end
         | 
| 22 | 
            +
             | 
| 23 | 
            +
              def test_www_false_non_www
         | 
| 24 | 
            +
                get "http://example.com/"
         | 
| 25 | 
            +
                assert last_response.ok?
         | 
| 26 | 
            +
              end
         | 
| 27 | 
            +
            end
         | 
| @@ -0,0 +1,58 @@ | |
| 1 | 
            +
            require "helper"
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            class TrueWWW < TestClass
         | 
| 4 | 
            +
              def setup
         | 
| 5 | 
            +
                self.app = Rack::WWW.new(default_app, :www => true)
         | 
| 6 | 
            +
              end
         | 
| 7 | 
            +
             | 
| 8 | 
            +
              def test_response_200
         | 
| 9 | 
            +
                get "http://www.example.com"
         | 
| 10 | 
            +
                assert_equal last_response.status, 200
         | 
| 11 | 
            +
              end
         | 
| 12 | 
            +
             | 
| 13 | 
            +
              def test_response_301
         | 
| 14 | 
            +
                get "http://example.com"
         | 
| 15 | 
            +
                assert_equal last_response.status, 301
         | 
| 16 | 
            +
              end
         | 
| 17 | 
            +
             | 
| 18 | 
            +
              def test_redirects
         | 
| 19 | 
            +
                get "http://example.com/"
         | 
| 20 | 
            +
                assert_equal "http://www.example.com/", last_response.headers['Location']
         | 
| 21 | 
            +
              end
         | 
| 22 | 
            +
             | 
| 23 | 
            +
              def test_www_true
         | 
| 24 | 
            +
                get "http://example.com/"
         | 
| 25 | 
            +
                assert_equal "http://www.example.com/", last_response.headers['Location']
         | 
| 26 | 
            +
              end
         | 
| 27 | 
            +
             | 
| 28 | 
            +
              def test_www_true_with_path
         | 
| 29 | 
            +
                get "http://example.com/path/1"
         | 
| 30 | 
            +
                assert_equal "http://www.example.com/path/1", last_response.headers['Location']
         | 
| 31 | 
            +
              end
         | 
| 32 | 
            +
             | 
| 33 | 
            +
              def test_www_true_with_query
         | 
| 34 | 
            +
                get "http://example.com/path/1?param=test"
         | 
| 35 | 
            +
                assert_equal "http://www.example.com/path/1?param=test", last_response.headers['Location']
         | 
| 36 | 
            +
              end
         | 
| 37 | 
            +
             | 
| 38 | 
            +
              def test_body_with_message
         | 
| 39 | 
            +
                self.app = Rack::WWW.new(default_app, :www => true, :message => "redirecting now!")
         | 
| 40 | 
            +
                get "http://example.com/"
         | 
| 41 | 
            +
                assert_equal last_response.body, "redirecting now!"
         | 
| 42 | 
            +
              end
         | 
| 43 | 
            +
             | 
| 44 | 
            +
              def test_body_without_message
         | 
| 45 | 
            +
                get "http://example.com/"
         | 
| 46 | 
            +
                assert_equal last_response.body, ""
         | 
| 47 | 
            +
              end
         | 
| 48 | 
            +
             | 
| 49 | 
            +
              def test_server_port
         | 
| 50 | 
            +
                get "http://example.com:8080/"
         | 
| 51 | 
            +
                assert_equal "http://www.example.com:8080/",last_response.headers['Location']
         | 
| 52 | 
            +
              end
         | 
| 53 | 
            +
             | 
| 54 | 
            +
              def test_server_port_80
         | 
| 55 | 
            +
                get "http://example.com:80/"
         | 
| 56 | 
            +
                assert_equal "http://www.example.com/",last_response.headers['Location']
         | 
| 57 | 
            +
              end
         | 
| 58 | 
            +
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,67 +1,121 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: rack-www
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version:  | 
| 5 | 
            -
              prerelease: 
         | 
| 4 | 
            +
              version: 2.0.0
         | 
| 6 5 | 
             
            platform: ruby
         | 
| 7 6 | 
             
            authors:
         | 
| 8 7 | 
             
            - Jhimy Fernandes Villar
         | 
| 9 8 | 
             
            autorequire: 
         | 
| 10 9 | 
             
            bindir: bin
         | 
| 11 10 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date:  | 
| 11 | 
            +
            date: 2015-12-02 00:00:00.000000000 Z
         | 
| 13 12 | 
             
            dependencies:
         | 
| 14 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 14 | 
             
              name: rack
         | 
| 16 15 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 17 | 
            -
                none: false
         | 
| 18 16 | 
             
                requirements:
         | 
| 19 | 
            -
                - -  | 
| 17 | 
            +
                - - "~>"
         | 
| 20 18 | 
             
                  - !ruby/object:Gem::Version
         | 
| 21 | 
            -
                    version: '0'
         | 
| 19 | 
            +
                    version: '1.0'
         | 
| 22 20 | 
             
              type: :runtime
         | 
| 23 21 | 
             
              prerelease: false
         | 
| 24 22 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 25 | 
            -
                none: false
         | 
| 26 23 | 
             
                requirements:
         | 
| 27 | 
            -
                - -  | 
| 24 | 
            +
                - - "~>"
         | 
| 28 25 | 
             
                  - !ruby/object:Gem::Version
         | 
| 29 | 
            -
                    version: '0'
         | 
| 30 | 
            -
             | 
| 31 | 
            -
             | 
| 32 | 
            -
             | 
| 26 | 
            +
                    version: '1.0'
         | 
| 27 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 28 | 
            +
              name: rake
         | 
| 29 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 | 
            +
                requirements:
         | 
| 31 | 
            +
                - - "~>"
         | 
| 32 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 33 | 
            +
                    version: '10.4'
         | 
| 34 | 
            +
              type: :development
         | 
| 35 | 
            +
              prerelease: false
         | 
| 36 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 | 
            +
                requirements:
         | 
| 38 | 
            +
                - - "~>"
         | 
| 39 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 40 | 
            +
                    version: '10.4'
         | 
| 41 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 42 | 
            +
              name: rack-test
         | 
| 43 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 44 | 
            +
                requirements:
         | 
| 45 | 
            +
                - - "~>"
         | 
| 46 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 47 | 
            +
                    version: '0.6'
         | 
| 48 | 
            +
              type: :development
         | 
| 49 | 
            +
              prerelease: false
         | 
| 50 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 51 | 
            +
                requirements:
         | 
| 52 | 
            +
                - - "~>"
         | 
| 53 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 54 | 
            +
                    version: '0.6'
         | 
| 55 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 56 | 
            +
              name: minitest
         | 
| 57 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 58 | 
            +
                requirements:
         | 
| 59 | 
            +
                - - "~>"
         | 
| 60 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 61 | 
            +
                    version: '5.8'
         | 
| 62 | 
            +
              type: :development
         | 
| 63 | 
            +
              prerelease: false
         | 
| 64 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 65 | 
            +
                requirements:
         | 
| 66 | 
            +
                - - "~>"
         | 
| 67 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 68 | 
            +
                    version: '5.8'
         | 
| 69 | 
            +
            description: Rack middleware to force subdomain redirects.
         | 
| 33 70 | 
             
            email: stjhimy@gmail.com
         | 
| 34 71 | 
             
            executables: []
         | 
| 35 72 | 
             
            extensions: []
         | 
| 36 73 | 
             
            extra_rdoc_files: []
         | 
| 37 74 | 
             
            files:
         | 
| 75 | 
            +
            - ".gitignore"
         | 
| 76 | 
            +
            - ".ruby-gemset"
         | 
| 77 | 
            +
            - ".ruby-version"
         | 
| 78 | 
            +
            - CHANGELOG.md
         | 
| 79 | 
            +
            - Gemfile
         | 
| 80 | 
            +
            - Gemfile.lock
         | 
| 81 | 
            +
            - LICENSE
         | 
| 82 | 
            +
            - README.md
         | 
| 83 | 
            +
            - Rakefile
         | 
| 38 84 | 
             
            - lib/rack-www.rb
         | 
| 39 85 | 
             
            - lib/rack/www.rb
         | 
| 40 | 
            -
            -  | 
| 41 | 
            -
            -  | 
| 42 | 
            -
            -  | 
| 86 | 
            +
            - rack-www.gemspec
         | 
| 87 | 
            +
            - test/helper.rb
         | 
| 88 | 
            +
            - test/predicate_test.rb
         | 
| 89 | 
            +
            - test/subdomain_test.rb
         | 
| 90 | 
            +
            - test/www_false_test.rb
         | 
| 91 | 
            +
            - test/www_true_test.rb
         | 
| 43 92 | 
             
            homepage: https://github.com/stjhimy/rack-www
         | 
| 44 | 
            -
            licenses: | 
| 93 | 
            +
            licenses:
         | 
| 94 | 
            +
            - MIT
         | 
| 95 | 
            +
            metadata: {}
         | 
| 45 96 | 
             
            post_install_message: 
         | 
| 46 97 | 
             
            rdoc_options: []
         | 
| 47 98 | 
             
            require_paths:
         | 
| 48 99 | 
             
            - lib
         | 
| 49 100 | 
             
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 50 | 
            -
              none: false
         | 
| 51 101 | 
             
              requirements:
         | 
| 52 | 
            -
              - -  | 
| 102 | 
            +
              - - ">="
         | 
| 53 103 | 
             
                - !ruby/object:Gem::Version
         | 
| 54 | 
            -
                  version:  | 
| 104 | 
            +
                  version: 1.9.3
         | 
| 55 105 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 56 | 
            -
              none: false
         | 
| 57 106 | 
             
              requirements:
         | 
| 58 | 
            -
              - -  | 
| 107 | 
            +
              - - ">="
         | 
| 59 108 | 
             
                - !ruby/object:Gem::Version
         | 
| 60 109 | 
             
                  version: '0'
         | 
| 61 110 | 
             
            requirements: []
         | 
| 62 111 | 
             
            rubyforge_project: 
         | 
| 63 | 
            -
            rubygems_version:  | 
| 112 | 
            +
            rubygems_version: 2.4.5.1
         | 
| 64 113 | 
             
            signing_key: 
         | 
| 65 | 
            -
            specification_version:  | 
| 66 | 
            -
            summary:  | 
| 67 | 
            -
            test_files: | 
| 114 | 
            +
            specification_version: 4
         | 
| 115 | 
            +
            summary: 'Force redirects to a any given subdomain, example: www or www2'
         | 
| 116 | 
            +
            test_files:
         | 
| 117 | 
            +
            - test/helper.rb
         | 
| 118 | 
            +
            - test/predicate_test.rb
         | 
| 119 | 
            +
            - test/subdomain_test.rb
         | 
| 120 | 
            +
            - test/www_false_test.rb
         | 
| 121 | 
            +
            - test/www_true_test.rb
         | 
    
        data/CHANGELOG.rdoc
    DELETED
    
    | @@ -1,26 +0,0 @@ | |
| 1 | 
            -
            == 1.4
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            * Respect server port
         | 
| 4 | 
            -
            * Body responds to :each
         | 
| 5 | 
            -
            * Rack::Lint on tests
         | 
| 6 | 
            -
             | 
| 7 | 
            -
            == 1.3
         | 
| 8 | 
            -
             | 
| 9 | 
            -
            * Added possibility to redirects to any given :subdomain [Ryan Weald (https://github.com/rweald)].
         | 
| 10 | 
            -
            * Added more tests
         | 
| 11 | 
            -
             | 
| 12 | 
            -
            == 1.2
         | 
| 13 | 
            -
             | 
| 14 | 
            -
            * Redirects to the right url without calling the app
         | 
| 15 | 
            -
            * Keep the path when redirecting
         | 
| 16 | 
            -
            * Keep the query string when redirecting
         | 
| 17 | 
            -
            * Added more tests
         | 
| 18 | 
            -
             | 
| 19 | 
            -
            == 1.1
         | 
| 20 | 
            -
             | 
| 21 | 
            -
            * Added possibility to redirects with www or without www.
         | 
| 22 | 
            -
            * Added possibility to set a param :message to show while redirecting.
         | 
| 23 | 
            -
             | 
| 24 | 
            -
            == 1.0
         | 
| 25 | 
            -
             | 
| 26 | 
            -
            * Redirects all traffic to www.
         |