rack-subdomain 0.2.1 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: eb8698dabd7a346578bee0b70ad7cfad99a922e1e5430bd3235ffa772275e7cf
4
+ data.tar.gz: a1bec06a3ea859f8074cf94074bc7dbe24caf3c686c70a23ef9c4252ad25b832
5
+ SHA512:
6
+ metadata.gz: 779a34cb3e6bed260d7e95fdaf007835c4909422440e42dd9207ae267091890d7089f13ecf0c86d92ec4758a2c75c15e96d37d1d5d39d71579f3ddfb0bd525b5
7
+ data.tar.gz: 49ebf73dac7826e54768b893266c9e5df29746c0a3b7651c4ffa564d3d07093ab0ebaaca304411046412ebdf3ef1aed3b2fd2a6e1b67e13fb97f4ff68e674398
data/Gemfile CHANGED
@@ -1,3 +1,3 @@
1
- source :rubygems
1
+ source "https://rubygems.org"
2
2
 
3
3
  gemspec
data/Gemfile.lock CHANGED
@@ -1,25 +1,43 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rack-subdomain (0.2.1)
5
- rack (>= 1.2.0, <= 2.0.0)
4
+ rack-subdomain (0.5.0)
5
+ ipaddress (~> 0.8.0)
6
+ rack (>= 1.2)
6
7
 
7
8
  GEM
8
- remote: http://rubygems.org/
9
+ remote: https://rubygems.org/
9
10
  specs:
10
- minitest (2.11.4)
11
- rack (1.4.1)
12
- rack-test (0.6.1)
13
- rack (>= 1.0)
14
- rake (0.9.2.2)
15
- rspec (0.6.4)
11
+ diff-lcs (1.4.4)
12
+ ipaddress (0.8.3)
13
+ minitest (2.12.1)
14
+ rack (2.2.3)
15
+ rack-test (0.8.3)
16
+ rack (>= 1.0, < 3)
17
+ rake (13.0.3)
18
+ rspec (3.10.0)
19
+ rspec-core (~> 3.10.0)
20
+ rspec-expectations (~> 3.10.0)
21
+ rspec-mocks (~> 3.10.0)
22
+ rspec-core (3.10.1)
23
+ rspec-support (~> 3.10.0)
24
+ rspec-expectations (3.10.1)
25
+ diff-lcs (>= 1.2.0, < 2.0)
26
+ rspec-support (~> 3.10.0)
27
+ rspec-mocks (3.10.2)
28
+ diff-lcs (>= 1.2.0, < 2.0)
29
+ rspec-support (~> 3.10.0)
30
+ rspec-support (3.10.2)
16
31
 
17
32
  PLATFORMS
18
33
  ruby
19
34
 
20
35
  DEPENDENCIES
21
- minitest (~> 2.11.4)
36
+ minitest (~> 2.11)
22
37
  rack-subdomain!
23
- rack-test (~> 0.6.1)
24
- rake (~> 0.9.2)
25
- rspec (~> 0.6.1)
38
+ rack-test (~> 0.6)
39
+ rake
40
+ rspec
41
+
42
+ BUNDLED WITH
43
+ 2.1.4
@@ -1,4 +1,4 @@
1
- Copyright (c) 2012 Mattt Thompson (http://mattt.me/)
1
+ Copyright (c) 2012 – 2019 Mattt (https://mat.tt/)
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  of this software and associated documentation files (the "Software"), to deal
data/README.md CHANGED
@@ -1,19 +1,19 @@
1
1
  # rack-subdomain
2
2
 
3
- Rack middleware to transparently route requests with a subdomain to a specified path with substitutions.
3
+ Rack middleware to transparently route requests with a subdomain
4
+ to a specified path with substitutions.
4
5
 
5
6
  ## Usage
6
7
 
7
8
  ### Gemfile
8
9
 
9
- ``` ruby
10
+ ```ruby
10
11
  gem 'rack-subdomain'
11
12
  ```
12
13
 
13
14
  ### config.ru
14
15
 
15
- ``` ruby
16
-
16
+ ```ruby
17
17
  # Simple Example
18
18
 
19
19
  use Rack::Subdomain, "example.com", to: "/users/:subdomain"
@@ -27,12 +27,9 @@ end
27
27
 
28
28
  ## Contact
29
29
 
30
- Mattt Thompson
31
-
32
- - http://github.com/mattt
33
- - http://twitter.com/mattt
34
- - m@mattt.me
30
+ [Mattt](https://twitter.com/mattt)
35
31
 
36
32
  ## License
37
33
 
38
- rack-subdomain is available under the MIT license. See the LICENSE file for more info.
34
+ rack-subdomain is available under the MIT license.
35
+ See the LICENSE file for more info.
data/Rakefile CHANGED
@@ -7,5 +7,4 @@ task :build => "#{gemspec.full_name}.gem"
7
7
 
8
8
  file "#{gemspec.full_name}.gem" => gemspec.files + ["rack-subdomain.gemspec"] do
9
9
  system "gem build rack-subdomain.gemspec"
10
- system "gem install rack-subdomain-#{Rack::Subdomain::VERSION}.gem"
11
10
  end
@@ -1 +1,2 @@
1
1
  require 'rack/subdomain'
2
+ require 'ipaddress'
@@ -1,7 +1,7 @@
1
+ require 'ipaddress'
2
+
1
3
  module Rack
2
4
  class Subdomain
3
- VERSION = '0.2.1'
4
-
5
5
  def initialize(app, domain, options = {}, &block)
6
6
  # Maintain compatibility with previous rack-subdomain gem
7
7
  options = {to: options} if options.is_a? String
@@ -20,7 +20,7 @@ module Rack
20
20
  raise ArgumentError, "missing `:to` option or block to define mapping"
21
21
  end
22
22
  end
23
-
23
+
24
24
  def call(env)
25
25
  @env = env
26
26
  @subdomain = subdomain
@@ -49,13 +49,24 @@ module Rack
49
49
 
50
50
  private
51
51
 
52
+ def domain
53
+ case @domain
54
+ when Proc
55
+ @domain.call(@env['HTTP_HOST'])
56
+ when Regexp
57
+ @domain.match(@env['HTTP_HOST'])
58
+ else
59
+ @domain
60
+ end
61
+ end
62
+
52
63
  def subdomain
53
- @env['HTTP_HOST'].sub(/\.?#{@domain}.*$/,'') unless @env['HTTP_HOST'].match(/^localhost/)
64
+ @env['HTTP_HOST'].sub(/\.?#{domain}.*$/,'') unless @env['HTTP_HOST'].nil? || @env['HTTP_HOST'].match(/^localhost/) || IPAddress.valid?(@env['SERVER_NAME'])
54
65
  end
55
66
 
56
67
  def remap_with_substituted_path!(path)
57
68
  scheme = @env["rack.url_scheme"]
58
- host = "#{@subdomain}.#{@domain}"
69
+ host = "#{@subdomain}.#{domain}"
59
70
  port = ":#{@env['SERVER_PORT']}" unless @env['SERVER_PORT'] == '80'
60
71
  path = @env["PATH_INFO"] = ::File.join(path, @env["PATH_INFO"])
61
72
  query_string = "?" + @env["QUERY_STRING"] unless @env["QUERY_STRING"].empty?
@@ -0,0 +1,5 @@
1
+ module Rack
2
+ class Subdomain
3
+ VERSION = '0.5.0'
4
+ end
5
+ end
Binary file
Binary file
Binary file
@@ -1,25 +1,26 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  $:.push File.expand_path("../lib", __FILE__)
3
- require "rack-subdomain"
3
+ require "rack/subdomain/version"
4
4
 
5
5
  Gem::Specification.new do |s|
6
6
  s.name = "rack-subdomain"
7
- s.authors = ["Mattt Thompson", "Piotr Sarnacki"]
8
- s.email = "m@mattt.me"
7
+ s.authors = ["Mattt", "Piotr Sarnacki"]
8
+ s.email = "mattt@me.com"
9
+ s.license = "MIT"
9
10
  s.homepage = "http://github.com/mattt/rack-subdomain"
10
11
  s.version = Rack::Subdomain::VERSION
11
12
  s.platform = Gem::Platform::RUBY
12
13
  s.summary = "rack-subdomain"
13
14
  s.description = "Rack middleware to route requests with subdomains to specified routes with substitutions"
14
15
 
15
- s.add_development_dependency "rspec", "~> 0.6.1"
16
- s.add_development_dependency "rake", "~> 0.9.2"
16
+ s.add_runtime_dependency "rack", ">= 1.2"
17
17
 
18
- s.add_runtime_dependency "rack", ">= 1.2.0", "<= 2.0.0"
18
+ s.add_dependency "ipaddress", "~> 0.8.0"
19
19
 
20
- s.add_development_dependency "minitest", "~> 2.11.4"
21
- s.add_development_dependency "rack-test", "~> 0.6.1"
22
- s.add_development_dependency "rake", "~> 0.9.2"
20
+ s.add_development_dependency "rspec"
21
+ s.add_development_dependency "rake"
22
+ s.add_development_dependency "minitest", "~> 2.11"
23
+ s.add_development_dependency "rack-test", "~> 0.6"
23
24
 
24
25
  s.files = Dir["./**/*"].reject { |file| file =~ /\.\/(bin|log|pkg|script|spec|test|vendor)/ }
25
26
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
metadata CHANGED
@@ -1,162 +1,140 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack-subdomain
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
5
- prerelease:
4
+ version: 0.5.0
6
5
  platform: ruby
7
6
  authors:
8
- - Mattt Thompson
7
+ - Mattt
9
8
  - Piotr Sarnacki
10
9
  autorequire:
11
10
  bindir: bin
12
11
  cert_chain: []
13
- date: 2012-12-09 00:00:00.000000000 Z
12
+ date: 2021-03-02 00:00:00.000000000 Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
- name: rspec
15
+ name: rack
17
16
  requirement: !ruby/object:Gem::Requirement
18
- none: false
19
17
  requirements:
20
- - - ~>
18
+ - - ">="
21
19
  - !ruby/object:Gem::Version
22
- version: 0.6.1
23
- type: :development
20
+ version: '1.2'
21
+ type: :runtime
24
22
  prerelease: false
25
23
  version_requirements: !ruby/object:Gem::Requirement
26
- none: false
27
24
  requirements:
28
- - - ~>
25
+ - - ">="
29
26
  - !ruby/object:Gem::Version
30
- version: 0.6.1
27
+ version: '1.2'
31
28
  - !ruby/object:Gem::Dependency
32
- name: rake
29
+ name: ipaddress
33
30
  requirement: !ruby/object:Gem::Requirement
34
- none: false
35
31
  requirements:
36
- - - ~>
32
+ - - "~>"
37
33
  - !ruby/object:Gem::Version
38
- version: 0.9.2
39
- type: :development
34
+ version: 0.8.0
35
+ type: :runtime
40
36
  prerelease: false
41
37
  version_requirements: !ruby/object:Gem::Requirement
42
- none: false
43
38
  requirements:
44
- - - ~>
39
+ - - "~>"
45
40
  - !ruby/object:Gem::Version
46
- version: 0.9.2
41
+ version: 0.8.0
47
42
  - !ruby/object:Gem::Dependency
48
- name: rack
43
+ name: rspec
49
44
  requirement: !ruby/object:Gem::Requirement
50
- none: false
51
45
  requirements:
52
- - - ! '>='
53
- - !ruby/object:Gem::Version
54
- version: 1.2.0
55
- - - <=
46
+ - - ">="
56
47
  - !ruby/object:Gem::Version
57
- version: 2.0.0
58
- type: :runtime
48
+ version: '0'
49
+ type: :development
59
50
  prerelease: false
60
51
  version_requirements: !ruby/object:Gem::Requirement
61
- none: false
62
52
  requirements:
63
- - - ! '>='
64
- - !ruby/object:Gem::Version
65
- version: 1.2.0
66
- - - <=
53
+ - - ">="
67
54
  - !ruby/object:Gem::Version
68
- version: 2.0.0
55
+ version: '0'
69
56
  - !ruby/object:Gem::Dependency
70
- name: minitest
57
+ name: rake
71
58
  requirement: !ruby/object:Gem::Requirement
72
- none: false
73
59
  requirements:
74
- - - ~>
60
+ - - ">="
75
61
  - !ruby/object:Gem::Version
76
- version: 2.11.4
62
+ version: '0'
77
63
  type: :development
78
64
  prerelease: false
79
65
  version_requirements: !ruby/object:Gem::Requirement
80
- none: false
81
66
  requirements:
82
- - - ~>
67
+ - - ">="
83
68
  - !ruby/object:Gem::Version
84
- version: 2.11.4
69
+ version: '0'
85
70
  - !ruby/object:Gem::Dependency
86
- name: rack-test
71
+ name: minitest
87
72
  requirement: !ruby/object:Gem::Requirement
88
- none: false
89
73
  requirements:
90
- - - ~>
74
+ - - "~>"
91
75
  - !ruby/object:Gem::Version
92
- version: 0.6.1
76
+ version: '2.11'
93
77
  type: :development
94
78
  prerelease: false
95
79
  version_requirements: !ruby/object:Gem::Requirement
96
- none: false
97
80
  requirements:
98
- - - ~>
81
+ - - "~>"
99
82
  - !ruby/object:Gem::Version
100
- version: 0.6.1
83
+ version: '2.11'
101
84
  - !ruby/object:Gem::Dependency
102
- name: rake
85
+ name: rack-test
103
86
  requirement: !ruby/object:Gem::Requirement
104
- none: false
105
87
  requirements:
106
- - - ~>
88
+ - - "~>"
107
89
  - !ruby/object:Gem::Version
108
- version: 0.9.2
90
+ version: '0.6'
109
91
  type: :development
110
92
  prerelease: false
111
93
  version_requirements: !ruby/object:Gem::Requirement
112
- none: false
113
94
  requirements:
114
- - - ~>
95
+ - - "~>"
115
96
  - !ruby/object:Gem::Version
116
- version: 0.9.2
97
+ version: '0.6'
117
98
  description: Rack middleware to route requests with subdomains to specified routes
118
99
  with substitutions
119
- email: m@mattt.me
100
+ email: mattt@me.com
120
101
  executables: []
121
102
  extensions: []
122
103
  extra_rdoc_files: []
123
104
  files:
124
- - ./Gemfile
125
- - ./Gemfile.lock
126
- - ./lib/rack/subdomain.rb
127
- - ./lib/rack-subdomain.rb
128
- - ./LICENSE
129
- - ./rack-subdomain.gemspec
130
- - ./Rakefile
131
- - ./README.md
105
+ - "./Gemfile"
106
+ - "./Gemfile.lock"
107
+ - "./LICENSE.md"
108
+ - "./README.md"
109
+ - "./Rakefile"
110
+ - "./lib/rack-subdomain.rb"
111
+ - "./lib/rack/subdomain.rb"
112
+ - "./lib/rack/subdomain/version.rb"
113
+ - "./rack-subdomain-0.4.0.gem"
114
+ - "./rack-subdomain-0.4.1.gem"
115
+ - "./rack-subdomain-0.5.0.gem"
116
+ - "./rack-subdomain.gemspec"
132
117
  homepage: http://github.com/mattt/rack-subdomain
133
- licenses: []
118
+ licenses:
119
+ - MIT
120
+ metadata: {}
134
121
  post_install_message:
135
122
  rdoc_options: []
136
123
  require_paths:
137
124
  - lib
138
125
  required_ruby_version: !ruby/object:Gem::Requirement
139
- none: false
140
126
  requirements:
141
- - - ! '>='
127
+ - - ">="
142
128
  - !ruby/object:Gem::Version
143
129
  version: '0'
144
- segments:
145
- - 0
146
- hash: -539744315784908145
147
130
  required_rubygems_version: !ruby/object:Gem::Requirement
148
- none: false
149
131
  requirements:
150
- - - ! '>='
132
+ - - ">="
151
133
  - !ruby/object:Gem::Version
152
134
  version: '0'
153
- segments:
154
- - 0
155
- hash: -539744315784908145
156
135
  requirements: []
157
- rubyforge_project:
158
- rubygems_version: 1.8.24
136
+ rubygems_version: 3.1.2
159
137
  signing_key:
160
- specification_version: 3
138
+ specification_version: 4
161
139
  summary: rack-subdomain
162
140
  test_files: []