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.
|