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 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
@@ -0,0 +1,15 @@
1
+ *.gem
2
+ *~
3
+ .bundle
4
+ .rvmrc
5
+ .yardoc
6
+ Gemfile.lock
7
+ Gemfile.*.lock
8
+ coverage/*
9
+ doc/*
10
+ log/*
11
+ measurement/*
12
+ pkg/*
13
+ spec/examples.txt
14
+ spec/reports/*
15
+ test/coverage
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
@@ -0,0 +1,5 @@
1
+ --color
2
+ --order random
3
+ --require spec_helper
4
+ --format documentation --color
5
+ --format html --out spec/reports/rspec_results.html
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
@@ -0,0 +1,5 @@
1
+ --markup markdown
2
+ --markup-provider maruku
3
+ --no-private
4
+ -
5
+ LICENSE.md
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
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,5 @@
1
+ module Rack
2
+ class DomainFilter
3
+ VERSION = '1.0.0'
4
+ end
5
+ end
@@ -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: []