rack-domain-filter 1.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/.editorconfig +15 -0
- data/.gitignore +15 -0
- data/.gitlab-ci.yml +37 -0
- data/.reek +18 -0
- data/.rspec +5 -0
- data/.rubocop.yml +72 -0
- data/.yardopts +5 -0
- data/Gemfile +3 -0
- data/LICENSE.md +20 -0
- data/README.md +65 -0
- data/Rakefile +14 -0
- data/lib/rack/domain_filter/version.rb +5 -0
- data/lib/rack/domain_filter.rb +165 -0
- data/lib/rack-domain-filter.rb +1 -0
- data/rack-domain-filter.gemspec +40 -0
- metadata +241 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: c39fe6503eec58cd1f89d6c012c32bec90546d11
|
|
4
|
+
data.tar.gz: 890c524df68a3fe57b494ccd3b5b4b1897b7e15e
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 7f95b9847a25e7e4e368b3e899a9f05d75ed83dd64b11f8c6ba644d07cac618d7fe555812cfe97f632c300bb83d7f988bfce0e6af398bd96390bd2e52994d87c
|
|
7
|
+
data.tar.gz: a1d2521809ebaf33c025e98bfd92889d579380c414401c0d81a2ba4f9da7aeb6c8f489da1b5bd4fe56b9ec025e59010c1022675cb199faaa8767e07960b580ee
|
data/.editorconfig
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# This file is for unifying the coding style for different editors and IDEs
|
|
2
|
+
# editorconfig.org
|
|
3
|
+
|
|
4
|
+
root = true
|
|
5
|
+
|
|
6
|
+
[*]
|
|
7
|
+
end_of_line = lf
|
|
8
|
+
charset = utf-8
|
|
9
|
+
trim_trailing_whitespace = true
|
|
10
|
+
insert_final_newline = true
|
|
11
|
+
indent_style = space
|
|
12
|
+
indent_size = 2
|
|
13
|
+
|
|
14
|
+
[*.md]
|
|
15
|
+
trim_trailing_whitespace = false
|
data/.gitignore
ADDED
data/.gitlab-ci.yml
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
before_script:
|
|
2
|
+
- ruby -v
|
|
3
|
+
- which ruby
|
|
4
|
+
- gem install bundler --no-ri --no-rdoc
|
|
5
|
+
- bundle install --jobs $(nproc) "${FLAGS[@]}"
|
|
6
|
+
|
|
7
|
+
test:2.1-rspec: &default_rspec
|
|
8
|
+
image: ruby:2.1
|
|
9
|
+
script:
|
|
10
|
+
- bundle exec rspec
|
|
11
|
+
artifacts:
|
|
12
|
+
paths:
|
|
13
|
+
- spec/reports
|
|
14
|
+
- coverage
|
|
15
|
+
|
|
16
|
+
lint:2.5: &default_rubocop
|
|
17
|
+
image: ruby:2.5
|
|
18
|
+
script:
|
|
19
|
+
- bundle exec reek
|
|
20
|
+
- bundle exec rubocop
|
|
21
|
+
allow_failure: true
|
|
22
|
+
|
|
23
|
+
test:2.2-rspec:
|
|
24
|
+
<<: *default_rspec
|
|
25
|
+
image: ruby:2.2
|
|
26
|
+
|
|
27
|
+
test:2.3-rspec:
|
|
28
|
+
<<: *default_rspec
|
|
29
|
+
image: ruby:2.3
|
|
30
|
+
|
|
31
|
+
test:2.4-rspec:
|
|
32
|
+
<<: *default_rspec
|
|
33
|
+
image: ruby:2.4
|
|
34
|
+
|
|
35
|
+
test:2.5-rspec:
|
|
36
|
+
<<: *default_rspec
|
|
37
|
+
image: ruby:2.5
|
data/.reek
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
Attribute:
|
|
3
|
+
enabled: false
|
|
4
|
+
|
|
5
|
+
BooleanParameter:
|
|
6
|
+
enabled: false
|
|
7
|
+
|
|
8
|
+
InstanceVariableAssumption:
|
|
9
|
+
enabled: false
|
|
10
|
+
|
|
11
|
+
IrresponsibleModule:
|
|
12
|
+
enabled: false
|
|
13
|
+
|
|
14
|
+
TooManyStatements:
|
|
15
|
+
enabled: false
|
|
16
|
+
|
|
17
|
+
TooManyInstanceVariables:
|
|
18
|
+
enabled: false
|
data/.rspec
ADDED
data/.rubocop.yml
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
AllCops:
|
|
2
|
+
TargetRubyVersion: 2.1
|
|
3
|
+
|
|
4
|
+
Layout/AccessModifierIndentation:
|
|
5
|
+
EnforcedStyle: outdent
|
|
6
|
+
|
|
7
|
+
Layout/DotPosition:
|
|
8
|
+
EnforcedStyle: leading
|
|
9
|
+
|
|
10
|
+
Layout/SpaceInsideHashLiteralBraces:
|
|
11
|
+
EnforcedStyle: no_space
|
|
12
|
+
|
|
13
|
+
Lint/HandleExceptions:
|
|
14
|
+
Enabled: false
|
|
15
|
+
|
|
16
|
+
Metrics/BlockLength:
|
|
17
|
+
Enabled: false
|
|
18
|
+
|
|
19
|
+
Metrics/BlockNesting:
|
|
20
|
+
Max: 2
|
|
21
|
+
|
|
22
|
+
Metrics/LineLength:
|
|
23
|
+
AllowURI: true
|
|
24
|
+
Enabled: false
|
|
25
|
+
|
|
26
|
+
Metrics/MethodLength:
|
|
27
|
+
CountComments: false
|
|
28
|
+
Max: 15
|
|
29
|
+
|
|
30
|
+
Metrics/ParameterLists:
|
|
31
|
+
Max: 5
|
|
32
|
+
CountKeywordArgs: true
|
|
33
|
+
|
|
34
|
+
Style/Alias:
|
|
35
|
+
EnforcedStyle: prefer_alias_method
|
|
36
|
+
|
|
37
|
+
Style/IfUnlessModifier:
|
|
38
|
+
Enabled: false
|
|
39
|
+
|
|
40
|
+
Style/StringLiterals:
|
|
41
|
+
Enabled: false
|
|
42
|
+
|
|
43
|
+
Style/CollectionMethods:
|
|
44
|
+
PreferredMethods:
|
|
45
|
+
map: 'collect'
|
|
46
|
+
reduce: 'inject'
|
|
47
|
+
find: 'detect'
|
|
48
|
+
find_all: 'select'
|
|
49
|
+
|
|
50
|
+
Style/Documentation:
|
|
51
|
+
Enabled: false
|
|
52
|
+
|
|
53
|
+
Style/DoubleNegation:
|
|
54
|
+
Enabled: false
|
|
55
|
+
|
|
56
|
+
Style/EachWithObject:
|
|
57
|
+
Enabled: false
|
|
58
|
+
|
|
59
|
+
Style/Encoding:
|
|
60
|
+
Enabled: false
|
|
61
|
+
|
|
62
|
+
Style/Lambda:
|
|
63
|
+
Enabled: false
|
|
64
|
+
|
|
65
|
+
Style/RaiseArgs:
|
|
66
|
+
EnforcedStyle: compact
|
|
67
|
+
|
|
68
|
+
Style/RedundantParentheses:
|
|
69
|
+
Enabled: false
|
|
70
|
+
|
|
71
|
+
TrailingCommaInArrayLiteral:
|
|
72
|
+
EnforcedStyleForMultiline: comma
|
data/.yardopts
ADDED
data/Gemfile
ADDED
data/LICENSE.md
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
Copyright (c) 2018 PT Harmonix Teknologi Peentar
|
|
2
|
+
Copyright (c) 2018 Muhammad Mufid Afif
|
|
3
|
+
|
|
4
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
5
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
6
|
+
in the Software without restriction, including without limitation the rights
|
|
7
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
8
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
9
|
+
furnished to do so, subject to the following conditions:
|
|
10
|
+
|
|
11
|
+
The above copyright notice and this permission notice shall be included in
|
|
12
|
+
all copies or substantial portions of the Software.
|
|
13
|
+
|
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
15
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
16
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
17
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
18
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
19
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
20
|
+
THE SOFTWARE.
|
data/README.md
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# Gitlab Status: A simple command to check the availability of Gitlab Site
|
|
2
|
+
|
|
3
|
+
## Prerequisites
|
|
4
|
+
|
|
5
|
+
- Ruby 2.1+
|
|
6
|
+
|
|
7
|
+
## Installation
|
|
8
|
+
|
|
9
|
+
Put this into `Gemfile`:
|
|
10
|
+
|
|
11
|
+
gem 'rack-domain-filter'
|
|
12
|
+
|
|
13
|
+
Then run `bundle`.
|
|
14
|
+
|
|
15
|
+
## Builder API
|
|
16
|
+
|
|
17
|
+
See Yarddoc for more information.
|
|
18
|
+
|
|
19
|
+
## Usage
|
|
20
|
+
|
|
21
|
+
Suppose you have `Company` model. In Rails, you can do
|
|
22
|
+
like this:
|
|
23
|
+
|
|
24
|
+
Rack::SubdomainCompany.configure do |config|
|
|
25
|
+
config.filter_for /(.+).local.dev/ do |slug|
|
|
26
|
+
Thread.current[:company] = Company.find_by!(slug)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
config.filter_for /(.+).peentar.id/ do |slug|
|
|
30
|
+
Thread.current[:company] = Company.find_by!(slug)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
config.filter_for /tenant-onpremise.ourclients.com/ do
|
|
34
|
+
Thread.current[:company] = Company.find_by!(slug: 'tenant-onpremise.ourclients.com')
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
config.catch ActiveRecord::NotFound do
|
|
38
|
+
[404, {}, "Not Found"]
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
config.no_match do
|
|
42
|
+
[404, {}, "No slug found"]
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
config.after_request do
|
|
46
|
+
Thread.current[:company] = nil
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
config.middleware.use Rack::SubdomainCompany
|
|
51
|
+
|
|
52
|
+
In your controller, you can get your current company with
|
|
53
|
+
this syntax:
|
|
54
|
+
|
|
55
|
+
class ApplicationController < ActionController::Base
|
|
56
|
+
def current_company
|
|
57
|
+
Thread.current[:company]
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def ApplicationHelper
|
|
62
|
+
def current_company
|
|
63
|
+
Thread.current[:company]
|
|
64
|
+
end
|
|
65
|
+
end
|
data/Rakefile
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
require 'bundler'
|
|
2
|
+
Bundler::GemHelper.install_tasks
|
|
3
|
+
|
|
4
|
+
require 'rspec/core/rake_task'
|
|
5
|
+
RSpec::Core::RakeTask.new(:spec)
|
|
6
|
+
task test: :spec
|
|
7
|
+
|
|
8
|
+
require 'rubocop/rake_task'
|
|
9
|
+
RuboCop::RakeTask.new
|
|
10
|
+
|
|
11
|
+
require 'reek/rake/task'
|
|
12
|
+
Reek::Rake::Task.new
|
|
13
|
+
|
|
14
|
+
task default: %i[spec reek rubocop]
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
module Rack
|
|
2
|
+
class DomainFilter
|
|
3
|
+
|
|
4
|
+
module ExceptionHandler
|
|
5
|
+
def catch_exception(e)
|
|
6
|
+
config.exception_catcher_mapping.each_pair do |klazz, block|
|
|
7
|
+
if e.is_a?(klazz)
|
|
8
|
+
return block.call(e)
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
raise e
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
module AfterRequestHandler
|
|
17
|
+
def run_after_request
|
|
18
|
+
config.after_requests_list.each do |block|
|
|
19
|
+
block.call
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
module Matcher
|
|
25
|
+
# See https://www.youtube.com/watch?v=b77V0rkr5rk
|
|
26
|
+
# Use host_with_port for better performance
|
|
27
|
+
# See: https://github.com/rack/rack/blob/master/lib/rack/request.rb
|
|
28
|
+
def match_uri(env)
|
|
29
|
+
req = Rack::Request.new(env)
|
|
30
|
+
config.uri_mapping.each_pair do |pattern, block|
|
|
31
|
+
if pattern.is_a?(String)
|
|
32
|
+
break if match_string(pattern, req, block)
|
|
33
|
+
elsif pattern.is_a?(Regexp)
|
|
34
|
+
break if match_regex(pattern, req, block)
|
|
35
|
+
else
|
|
36
|
+
raise "Unknown pattern: #{pattern}. It must be a regex or a string!"
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def can_respond_no_match?
|
|
42
|
+
!config.no_match_block.nil?
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def trigger_no_match(env)
|
|
46
|
+
config.no_match_block.call(env)
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def match_regex(regex, req, block)
|
|
50
|
+
matchdata = req.host_with_port.match(regex)
|
|
51
|
+
return if matchdata.nil?
|
|
52
|
+
|
|
53
|
+
block.call(matchdata[1], req.env)
|
|
54
|
+
|
|
55
|
+
@match_found = true
|
|
56
|
+
|
|
57
|
+
true
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def match_string(string, req, block)
|
|
61
|
+
return if string != req.host_with_port
|
|
62
|
+
|
|
63
|
+
block.call(req.env)
|
|
64
|
+
|
|
65
|
+
@match_found = true
|
|
66
|
+
|
|
67
|
+
true
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def initialize(app, options={})
|
|
72
|
+
@app = app
|
|
73
|
+
@config = options[:config] || DomainFilter.global_configuration
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
def call(env)
|
|
77
|
+
match_uri(env)
|
|
78
|
+
|
|
79
|
+
if !@match_found && can_respond_no_match?
|
|
80
|
+
result = trigger_no_match(env)
|
|
81
|
+
run_after_request
|
|
82
|
+
return result
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
result = @app.call(env)
|
|
86
|
+
|
|
87
|
+
run_after_request
|
|
88
|
+
|
|
89
|
+
result
|
|
90
|
+
rescue => e
|
|
91
|
+
result = catch_exception(e)
|
|
92
|
+
run_after_request
|
|
93
|
+
|
|
94
|
+
result
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
include ExceptionHandler
|
|
98
|
+
include AfterRequestHandler
|
|
99
|
+
include Matcher
|
|
100
|
+
|
|
101
|
+
def self.configure
|
|
102
|
+
@global_configuration ||= Configuration.new
|
|
103
|
+
|
|
104
|
+
yield @global_configuration
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
def self.clear_configuration!
|
|
108
|
+
@global_configuration = nil
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
def self.global_configuration
|
|
112
|
+
@global_configuration
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
def config
|
|
116
|
+
@config
|
|
117
|
+
end
|
|
118
|
+
def verify_configuration!
|
|
119
|
+
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
class Configuration
|
|
123
|
+
|
|
124
|
+
attr_accessor :uri_mapping
|
|
125
|
+
attr_accessor :after_requests_list
|
|
126
|
+
attr_accessor :exception_catcher_mapping
|
|
127
|
+
|
|
128
|
+
def initialize
|
|
129
|
+
@uri_mapping = {}
|
|
130
|
+
@after_requests_list = []
|
|
131
|
+
@exception_catcher_mapping = {}
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
def filter_for(pattern, &block)
|
|
135
|
+
@uri_mapping[pattern] = block
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
def after_request(&block)
|
|
139
|
+
@after_requests_list << block
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
def catch(klazz, &block)
|
|
143
|
+
@exception_catcher_mapping[klazz] = block
|
|
144
|
+
end
|
|
145
|
+
|
|
146
|
+
def no_match(&block)
|
|
147
|
+
raise 'Only allowed 1 no_match block!' if !@no_match.nil?
|
|
148
|
+
|
|
149
|
+
@no_match = block
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
def no_match_block
|
|
153
|
+
@no_match
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
def allow_passthrough
|
|
157
|
+
@allow_passthrough = true
|
|
158
|
+
end
|
|
159
|
+
|
|
160
|
+
def allow_passthrough?
|
|
161
|
+
@allow_passthrough
|
|
162
|
+
end
|
|
163
|
+
end
|
|
164
|
+
end
|
|
165
|
+
end
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
require 'rack/domain_filter'
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
lib = File.expand_path('./lib', __dir__)
|
|
2
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
3
|
+
require 'rack/domain_filter/version'
|
|
4
|
+
|
|
5
|
+
Gem::Specification.new do |spec|
|
|
6
|
+
spec.authors = ['Muhammad Mufid Afif']
|
|
7
|
+
spec.description = 'Check Gitlab Web Status via HTTP Response.'
|
|
8
|
+
spec.email = ['mufidafif@icloud.com']
|
|
9
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.start_with?('spec/') }
|
|
10
|
+
spec.homepage = 'https://github.com/wazaundtechnik/rack-subdomain-company'
|
|
11
|
+
spec.licenses = %w[MIT]
|
|
12
|
+
spec.name = 'rack-domain-filter'
|
|
13
|
+
spec.require_paths = %w[lib]
|
|
14
|
+
|
|
15
|
+
spec.summary = spec.description
|
|
16
|
+
spec.version = Rack::DomainFilter::VERSION
|
|
17
|
+
|
|
18
|
+
spec.add_dependency 'rack'
|
|
19
|
+
spec.add_dependency 'activesupport'
|
|
20
|
+
|
|
21
|
+
# Test and build tools
|
|
22
|
+
# The test shouldn't broken by the incompatible RSpec version.
|
|
23
|
+
# Thus, we need to lock the version.
|
|
24
|
+
spec.add_development_dependency 'bundler', '~> 1.16'
|
|
25
|
+
spec.add_development_dependency 'rake', '~> 12.0'
|
|
26
|
+
spec.add_development_dependency 'rack-test'
|
|
27
|
+
spec.add_development_dependency 'rspec', '~> 3.7.0'
|
|
28
|
+
spec.add_development_dependency 'simplecov'
|
|
29
|
+
spec.add_development_dependency 'simplecov-html'
|
|
30
|
+
|
|
31
|
+
# Docs, debugger, linter.
|
|
32
|
+
# We don't need to specify the lock version for these documentation
|
|
33
|
+
# Please do adjust our program so that it will always compatible
|
|
34
|
+
# with the latest version of these dependencies
|
|
35
|
+
spec.add_development_dependency 'maruku'
|
|
36
|
+
spec.add_development_dependency 'pry'
|
|
37
|
+
spec.add_development_dependency 'reek'
|
|
38
|
+
spec.add_development_dependency 'rubocop'
|
|
39
|
+
spec.add_development_dependency 'yard'
|
|
40
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: rack-domain-filter
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Muhammad Mufid Afif
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: bin
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2018-04-17 00:00:00.000000000 Z
|
|
12
|
+
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: rack
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - ">="
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: '0'
|
|
20
|
+
type: :runtime
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - ">="
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: '0'
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: activesupport
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - ">="
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: '0'
|
|
34
|
+
type: :runtime
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - ">="
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: '0'
|
|
41
|
+
- !ruby/object:Gem::Dependency
|
|
42
|
+
name: bundler
|
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
|
44
|
+
requirements:
|
|
45
|
+
- - "~>"
|
|
46
|
+
- !ruby/object:Gem::Version
|
|
47
|
+
version: '1.16'
|
|
48
|
+
type: :development
|
|
49
|
+
prerelease: false
|
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
+
requirements:
|
|
52
|
+
- - "~>"
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
54
|
+
version: '1.16'
|
|
55
|
+
- !ruby/object:Gem::Dependency
|
|
56
|
+
name: rake
|
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
|
58
|
+
requirements:
|
|
59
|
+
- - "~>"
|
|
60
|
+
- !ruby/object:Gem::Version
|
|
61
|
+
version: '12.0'
|
|
62
|
+
type: :development
|
|
63
|
+
prerelease: false
|
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
+
requirements:
|
|
66
|
+
- - "~>"
|
|
67
|
+
- !ruby/object:Gem::Version
|
|
68
|
+
version: '12.0'
|
|
69
|
+
- !ruby/object:Gem::Dependency
|
|
70
|
+
name: rack-test
|
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
|
72
|
+
requirements:
|
|
73
|
+
- - ">="
|
|
74
|
+
- !ruby/object:Gem::Version
|
|
75
|
+
version: '0'
|
|
76
|
+
type: :development
|
|
77
|
+
prerelease: false
|
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
+
requirements:
|
|
80
|
+
- - ">="
|
|
81
|
+
- !ruby/object:Gem::Version
|
|
82
|
+
version: '0'
|
|
83
|
+
- !ruby/object:Gem::Dependency
|
|
84
|
+
name: rspec
|
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
|
86
|
+
requirements:
|
|
87
|
+
- - "~>"
|
|
88
|
+
- !ruby/object:Gem::Version
|
|
89
|
+
version: 3.7.0
|
|
90
|
+
type: :development
|
|
91
|
+
prerelease: false
|
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
+
requirements:
|
|
94
|
+
- - "~>"
|
|
95
|
+
- !ruby/object:Gem::Version
|
|
96
|
+
version: 3.7.0
|
|
97
|
+
- !ruby/object:Gem::Dependency
|
|
98
|
+
name: simplecov
|
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
|
100
|
+
requirements:
|
|
101
|
+
- - ">="
|
|
102
|
+
- !ruby/object:Gem::Version
|
|
103
|
+
version: '0'
|
|
104
|
+
type: :development
|
|
105
|
+
prerelease: false
|
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
107
|
+
requirements:
|
|
108
|
+
- - ">="
|
|
109
|
+
- !ruby/object:Gem::Version
|
|
110
|
+
version: '0'
|
|
111
|
+
- !ruby/object:Gem::Dependency
|
|
112
|
+
name: simplecov-html
|
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
|
114
|
+
requirements:
|
|
115
|
+
- - ">="
|
|
116
|
+
- !ruby/object:Gem::Version
|
|
117
|
+
version: '0'
|
|
118
|
+
type: :development
|
|
119
|
+
prerelease: false
|
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
121
|
+
requirements:
|
|
122
|
+
- - ">="
|
|
123
|
+
- !ruby/object:Gem::Version
|
|
124
|
+
version: '0'
|
|
125
|
+
- !ruby/object:Gem::Dependency
|
|
126
|
+
name: maruku
|
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
|
128
|
+
requirements:
|
|
129
|
+
- - ">="
|
|
130
|
+
- !ruby/object:Gem::Version
|
|
131
|
+
version: '0'
|
|
132
|
+
type: :development
|
|
133
|
+
prerelease: false
|
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
135
|
+
requirements:
|
|
136
|
+
- - ">="
|
|
137
|
+
- !ruby/object:Gem::Version
|
|
138
|
+
version: '0'
|
|
139
|
+
- !ruby/object:Gem::Dependency
|
|
140
|
+
name: pry
|
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
|
142
|
+
requirements:
|
|
143
|
+
- - ">="
|
|
144
|
+
- !ruby/object:Gem::Version
|
|
145
|
+
version: '0'
|
|
146
|
+
type: :development
|
|
147
|
+
prerelease: false
|
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
149
|
+
requirements:
|
|
150
|
+
- - ">="
|
|
151
|
+
- !ruby/object:Gem::Version
|
|
152
|
+
version: '0'
|
|
153
|
+
- !ruby/object:Gem::Dependency
|
|
154
|
+
name: reek
|
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
|
156
|
+
requirements:
|
|
157
|
+
- - ">="
|
|
158
|
+
- !ruby/object:Gem::Version
|
|
159
|
+
version: '0'
|
|
160
|
+
type: :development
|
|
161
|
+
prerelease: false
|
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
163
|
+
requirements:
|
|
164
|
+
- - ">="
|
|
165
|
+
- !ruby/object:Gem::Version
|
|
166
|
+
version: '0'
|
|
167
|
+
- !ruby/object:Gem::Dependency
|
|
168
|
+
name: rubocop
|
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
|
170
|
+
requirements:
|
|
171
|
+
- - ">="
|
|
172
|
+
- !ruby/object:Gem::Version
|
|
173
|
+
version: '0'
|
|
174
|
+
type: :development
|
|
175
|
+
prerelease: false
|
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
177
|
+
requirements:
|
|
178
|
+
- - ">="
|
|
179
|
+
- !ruby/object:Gem::Version
|
|
180
|
+
version: '0'
|
|
181
|
+
- !ruby/object:Gem::Dependency
|
|
182
|
+
name: yard
|
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
|
184
|
+
requirements:
|
|
185
|
+
- - ">="
|
|
186
|
+
- !ruby/object:Gem::Version
|
|
187
|
+
version: '0'
|
|
188
|
+
type: :development
|
|
189
|
+
prerelease: false
|
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
191
|
+
requirements:
|
|
192
|
+
- - ">="
|
|
193
|
+
- !ruby/object:Gem::Version
|
|
194
|
+
version: '0'
|
|
195
|
+
description: Check Gitlab Web Status via HTTP Response.
|
|
196
|
+
email:
|
|
197
|
+
- mufidafif@icloud.com
|
|
198
|
+
executables: []
|
|
199
|
+
extensions: []
|
|
200
|
+
extra_rdoc_files: []
|
|
201
|
+
files:
|
|
202
|
+
- ".editorconfig"
|
|
203
|
+
- ".gitignore"
|
|
204
|
+
- ".gitlab-ci.yml"
|
|
205
|
+
- ".reek"
|
|
206
|
+
- ".rspec"
|
|
207
|
+
- ".rubocop.yml"
|
|
208
|
+
- ".yardopts"
|
|
209
|
+
- Gemfile
|
|
210
|
+
- LICENSE.md
|
|
211
|
+
- README.md
|
|
212
|
+
- Rakefile
|
|
213
|
+
- lib/rack-domain-filter.rb
|
|
214
|
+
- lib/rack/domain_filter.rb
|
|
215
|
+
- lib/rack/domain_filter/version.rb
|
|
216
|
+
- rack-domain-filter.gemspec
|
|
217
|
+
homepage: https://github.com/wazaundtechnik/rack-subdomain-company
|
|
218
|
+
licenses:
|
|
219
|
+
- MIT
|
|
220
|
+
metadata: {}
|
|
221
|
+
post_install_message:
|
|
222
|
+
rdoc_options: []
|
|
223
|
+
require_paths:
|
|
224
|
+
- lib
|
|
225
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
226
|
+
requirements:
|
|
227
|
+
- - ">="
|
|
228
|
+
- !ruby/object:Gem::Version
|
|
229
|
+
version: '0'
|
|
230
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
231
|
+
requirements:
|
|
232
|
+
- - ">="
|
|
233
|
+
- !ruby/object:Gem::Version
|
|
234
|
+
version: '0'
|
|
235
|
+
requirements: []
|
|
236
|
+
rubyforge_project:
|
|
237
|
+
rubygems_version: 2.6.13
|
|
238
|
+
signing_key:
|
|
239
|
+
specification_version: 4
|
|
240
|
+
summary: Check Gitlab Web Status via HTTP Response.
|
|
241
|
+
test_files: []
|