rack-canonical-host 0.2.2 → 0.2.3

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: afbfedb96e0996ded4ce9b2d21532dcbda77bded
4
- data.tar.gz: 47d412e723522d44bf530af57fa03107fef9b745
3
+ metadata.gz: d3d9c586fbafde39480ab18a92bdb843db3b156c
4
+ data.tar.gz: 3c250e72ab7a6d4a6ff449a36f4a7377166e8f82
5
5
  SHA512:
6
- metadata.gz: 83e23130511d87ee922ea34ed3f87384179fde266f818c04aace1c0d19a98b389380fcc250db824a06894cb53921eb3c4fd9dc079c48058ead99d61b7d3c56ce
7
- data.tar.gz: 0c8d2c995d2f341bd63d1b51e8ffc6d5d7161236263ee2eda932b95edd847ee59beb6af002c805b08e3c3a5e8d66333bb5599efe1489c3937058f030e22dca29
6
+ metadata.gz: c845c4018a0eee4a644ab6ab008ca5f79efbbdc63af07852804f4c27583812eb4226fff89d70e7f6615eb7d1091a538e382f36848512dce3c799a659ee29fb56
7
+ data.tar.gz: fcd94a1908c05108707ce73dc22ff3a746ff637adb11af607b8554d05075cceec0e2af9490a0c6f4c71debc4495a92c90b8680b8da833896290fcec4afa3a98e
data/.travis.yml CHANGED
@@ -2,8 +2,22 @@ language: ruby
2
2
  cache: bundler
3
3
  script: bundle exec rspec
4
4
  sudo: false
5
+
6
+ gemfile:
7
+ - gemfiles/rack_1.5.gemfile
8
+ - gemfiles/rack_1.6.gemfile
9
+ - gemfiles/rack_2.0.gemfile
10
+
5
11
  rvm:
6
- - 1.9.3
7
12
  - 2.0.0
8
- - 2.1.0
9
- - 2.1.1
13
+ - 2.1.10
14
+ - 2.2.7
15
+ - 2.3.4
16
+ - 2.4.1
17
+
18
+ matrix:
19
+ exclude:
20
+ - rvm: 2.0.0
21
+ gemfile: gemfiles/rack_2.0.gemfile
22
+ - rvm: 2.1.10
23
+ gemfile: gemfiles/rack_2.0.gemfile
data/Appraisals ADDED
@@ -0,0 +1,11 @@
1
+ appraise 'rack-1.5' do
2
+ gem 'rack', '~> 1.5'
3
+ end
4
+
5
+ appraise 'rack-1.6' do
6
+ gem 'rack', '~> 1.6'
7
+ end
8
+
9
+ appraise 'rack-2.0' do
10
+ gem 'rack', '~> 2.0'
11
+ end
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.2.3 (2017-04-20)
4
+
5
+ * Add regexp support for `:ignore` option ([Daniel Searles][squaresurf])
6
+
3
7
  ## 0.2.2 (2016-05-17)
4
8
 
5
9
  * Add `:cache_control` option ([Pete Nicholls][Aupajo])
@@ -69,6 +73,7 @@
69
73
  [jschuur]: http://github.com/jschuur
70
74
  [nbibler]: http://github.com/nbibler
71
75
  [rubymaverick]: http://github.com/ericallam
76
+ [squaresurfSearles]: https://github.com/squaresurf
72
77
  [tma]: http://github.com/tma
73
78
  [tylerhunt]: http://github.com/tylerhunt
74
79
  [zoso10]: http://github.com/zoso10
data/README.md CHANGED
@@ -11,9 +11,9 @@ the canonical host.
11
11
 
12
12
  ## Installation
13
13
 
14
- Add this line to your application's `Gemfile`:
14
+ Add this line to your applications `Gemfile`:
15
15
 
16
- ``` ruby
16
+ ```ruby
17
17
  gem 'rack-canonical-host'
18
18
  ```
19
19
 
@@ -31,10 +31,10 @@ Or install it yourself as:
31
31
  For most applications, you can insert the middleware into the `config.ru` file
32
32
  in the root of the application.
33
33
 
34
- Here's a simple example of what the `config.ru` in a Rails application might
34
+ Heres a simple example of what the `config.ru` in a Rails application might
35
35
  look like after adding the `Rack::CanonicalHost` middleware.
36
36
 
37
- ``` ruby
37
+ ```ruby
38
38
  require ::File.expand_path('../config/environment', __FILE__)
39
39
 
40
40
  use Rack::CanonicalHost, 'example.com'
@@ -57,7 +57,7 @@ With Heroku, you would do this like so:
57
57
 
58
58
  Then, can configure the middleware like this:
59
59
 
60
- ``` ruby
60
+ ```ruby
61
61
  use Rack::CanonicalHost, ENV['CANONICAL_HOST'] if ENV['CANONICAL_HOST']
62
62
  ```
63
63
 
@@ -66,11 +66,11 @@ Now, the middleware will only be used if a canonical host has been defined.
66
66
 
67
67
  ### Options
68
68
 
69
- If you'd like the middleware to ignore certain hosts, use the `:ignore`
70
- option:
69
+ If youd like the middleware to ignore certain hosts, use the `:ignore`
70
+ option, which accepts a string, a regular expression, or an array of either.
71
71
 
72
- ``` ruby
73
- use Rack::CanonicalHost, 'example.com', ignore: ['api.example.com']
72
+ ```ruby
73
+ use Rack::CanonicalHost, 'example.com', ignore: 'api.example.com'
74
74
  ```
75
75
 
76
76
  In this case, requests for the host `api.example.com` will not be redirected.
@@ -78,7 +78,7 @@ In this case, requests for the host `api.example.com` will not be redirected.
78
78
  Alternatively, you can pass a block whose return value will be used as the
79
79
  canonical host name.
80
80
 
81
- ``` ruby
81
+ ```ruby
82
82
  use Rack::CanonicalHost do |env|
83
83
  case env['RACK_ENV'].to_sym
84
84
  when :staging then 'staging.example.com'
@@ -87,10 +87,11 @@ use Rack::CanonicalHost do |env|
87
87
  end
88
88
  ```
89
89
 
90
- If you want it to react only on specific hosts for multi-domain environment use `:if`,
91
- it accepts string, regexp or an array.
90
+ If you want it to react only on specific hosts within a multi-domain
91
+ environment, use the `:if` option, which accepts a string, a regular
92
+ expression, or an array of either.
92
93
 
93
- ``` ruby
94
+ ```ruby
94
95
  use Rack::CanonicalHost, 'example.com', if: /.*\.example\.com/
95
96
  use Rack::CanonicalHost, 'example.ru', if: /.*\.example\.ru/
96
97
  ```
@@ -101,7 +102,7 @@ To avoid browsers indefinitely caching a `301` redirect, it’s a sensible idea
101
102
  to set an expiry on each redirect, to hedge against the chance you may need to
102
103
  change that redirect in the future.
103
104
 
104
- ``` ruby
105
+ ```ruby
105
106
  # Leave caching up to the browser (which could cache it indefinitely):
106
107
  use Rack::CanonicalHost, 'example.com'
107
108
 
@@ -136,10 +137,11 @@ suggestions:
136
137
  * [Nathaniel Bibler](https://github.com/nbibler)
137
138
  * [Eric Allam](https://github.com/ericallam)
138
139
  * [Fabrizio Regini](https://github.com/freegenie)
140
+ * [Daniel Searles](https://github.com/squaresurf)
139
141
 
140
142
 
141
143
  ## Copyright
142
144
 
143
- Copyright © 2009-2016 Tyler Hunt.
145
+ Copyright © 2009-2017 Tyler Hunt.
144
146
 
145
147
  Released under the terms of the MIT license. See LICENSE for details.
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rack", "~> 1.5"
6
+
7
+ gemspec path: "../"
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rack", "~> 1.6"
6
+
7
+ gemspec path: "../"
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rack", "~> 2.0"
6
+
7
+ gemspec path: "../"
@@ -62,7 +62,10 @@ module Rack
62
62
  end
63
63
 
64
64
  def ignored?
65
- ignore.include?(request_uri.host)
65
+ return false if ignore.empty?
66
+
67
+ ignore.include?(request_uri.host) ||
68
+ any_match?(ignore, request_uri.host)
66
69
  end
67
70
 
68
71
  def known?
@@ -1,5 +1,5 @@
1
1
  module Rack
2
2
  class CanonicalHost
3
- VERSION = '0.2.2'
3
+ VERSION = '0.2.3'
4
4
  end
5
5
  end
@@ -9,6 +9,7 @@ Gem::Specification.new do |gem|
9
9
 
10
10
  gem.add_dependency 'addressable', '> 0', '< 3'
11
11
  gem.add_dependency 'rack', ['>= 1.0.0', '< 3']
12
+ gem.add_development_dependency 'appraisal', '~> 2.2'
12
13
  gem.add_development_dependency 'rake'
13
14
  gem.add_development_dependency 'rspec', '~> 3.0'
14
15
 
@@ -110,7 +110,7 @@ RSpec.describe Rack::CanonicalHost do
110
110
  include_context 'a matching request'
111
111
  end
112
112
 
113
- context 'with :ignore option' do
113
+ context 'with :ignore string option' do
114
114
  let(:app) { build_app('example.com', :ignore => 'example.net') }
115
115
 
116
116
  include_context 'a matching request'
@@ -128,6 +128,24 @@ RSpec.describe Rack::CanonicalHost do
128
128
  end
129
129
  end
130
130
 
131
+ context 'with :ignore regex option' do
132
+ let(:app) { build_app('example.com', :ignore => /ex.*\.net/) }
133
+
134
+ include_context 'a matching request'
135
+ include_context 'a non-matching request'
136
+
137
+ context 'with a request to an ignored host' do
138
+ let(:url) { 'http://example.net/full/path' }
139
+
140
+ it { should_not be_redirect }
141
+
142
+ it 'calls the inner app' do
143
+ expect(inner_app).to receive(:call).with(env)
144
+ call_app
145
+ end
146
+ end
147
+ end
148
+
131
149
  context 'with :if option' do
132
150
  let(:app) { build_app('example.com', :if => 'www.example.net') }
133
151
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack-canonical-host
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tyler Hunt
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-05-17 00:00:00.000000000 Z
11
+ date: 2017-04-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -50,6 +50,20 @@ dependencies:
50
50
  - - "<"
51
51
  - !ruby/object:Gem::Version
52
52
  version: '3'
53
+ - !ruby/object:Gem::Dependency
54
+ name: appraisal
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - "~>"
58
+ - !ruby/object:Gem::Version
59
+ version: '2.2'
60
+ type: :development
61
+ prerelease: false
62
+ version_requirements: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - "~>"
65
+ - !ruby/object:Gem::Version
66
+ version: '2.2'
53
67
  - !ruby/object:Gem::Dependency
54
68
  name: rake
55
69
  requirement: !ruby/object:Gem::Requirement
@@ -87,11 +101,15 @@ files:
87
101
  - ".gitignore"
88
102
  - ".rspec"
89
103
  - ".travis.yml"
104
+ - Appraisals
90
105
  - CHANGELOG.md
91
106
  - Gemfile
92
107
  - LICENSE
93
108
  - README.md
94
109
  - Rakefile
110
+ - gemfiles/rack_1.5.gemfile
111
+ - gemfiles/rack_1.6.gemfile
112
+ - gemfiles/rack_2.0.gemfile
95
113
  - lib/rack-canonical-host.rb
96
114
  - lib/rack/canonical_host.rb
97
115
  - lib/rack/canonical_host/redirect.rb
@@ -120,7 +138,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
120
138
  version: '0'
121
139
  requirements: []
122
140
  rubyforge_project:
123
- rubygems_version: 2.4.5
141
+ rubygems_version: 2.6.8
124
142
  signing_key:
125
143
  specification_version: 4
126
144
  summary: Rack middleware for defining a canonical host name.