chemlab 0.4.1 → 0.7.2
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 +4 -4
- data/Rakefile +8 -0
- data/bin/chemlab +10 -0
- data/bin/chemlab-suite +1 -0
- data/bin/chemlab-test +1 -0
- data/lib/chemlab.rb +27 -17
- data/lib/chemlab/attributable.rb +16 -10
- data/lib/chemlab/cli/fixtures/new_library/.gitignore +63 -0
- data/lib/chemlab/cli/fixtures/new_library/Gemfile +5 -0
- data/lib/chemlab/cli/fixtures/new_library/README.md.erb +1 -0
- data/lib/chemlab/cli/fixtures/new_library/lib/new_library.rb.erb +7 -0
- data/lib/chemlab/cli/fixtures/new_library/lib/page/sample.rb.erb +9 -0
- data/lib/chemlab/cli/fixtures/new_library/new_library.gemspec.erb +23 -0
- data/lib/chemlab/cli/fixtures/new_library/spec/integration/page/sample_spec.rb.erb +17 -0
- data/lib/chemlab/cli/fixtures/new_library/spec/unit/page/sample_spec.rb.erb +19 -0
- data/lib/chemlab/cli/generator.rb +46 -0
- data/lib/chemlab/cli/generator/templates/page.erb +3 -0
- data/lib/chemlab/cli/new_library.rb +62 -0
- data/lib/chemlab/cli/stub.erb +66 -0
- data/lib/chemlab/cli/stubber.rb +74 -0
- data/lib/chemlab/component.rb +78 -8
- data/lib/chemlab/configuration.rb +60 -12
- data/lib/chemlab/core_ext/string/inflections.rb +25 -0
- data/lib/chemlab/element.rb +4 -0
- data/lib/chemlab/page.rb +19 -1
- data/lib/chemlab/runtime/browser.rb +13 -17
- data/lib/chemlab/runtime/env.rb +13 -9
- data/lib/chemlab/runtime/logger.rb +16 -13
- data/lib/chemlab/version.rb +1 -1
- data/lib/tasks/generate.rake +22 -0
- data/lib/tasks/generate_stubs.rake +20 -0
- data/lib/tasks/help.rake +24 -0
- data/lib/tasks/new.rake +19 -0
- data/lib/tasks/version.rake +8 -0
- metadata +101 -58
- data/lib/chemlab/api_fabricator.rb +0 -134
- data/lib/chemlab/resource.rb +0 -169
- data/lib/chemlab/runtime/api_client.rb +0 -18
- data/lib/chemlab/support/api.rb +0 -71
- data/lib/chemlab/support/logging.rb +0 -176
- data/lib/chemlab/support/repeater.rb +0 -65
- data/lib/chemlab/support/waiter.rb +0 -39
data/lib/chemlab/runtime/env.rb
CHANGED
@@ -4,18 +4,22 @@ module Chemlab
|
|
4
4
|
module Runtime
|
5
5
|
# Environment configuration file
|
6
6
|
module Env
|
7
|
-
|
7
|
+
class << self
|
8
|
+
# @return [Boolean] true if debug mode is enabled
|
9
|
+
# @example
|
10
|
+
# ENV['CHEMLAB_DEBUG'] = 'true'
|
11
|
+
# Runtime::Env.debug? #=> true
|
12
|
+
def debug?
|
13
|
+
enabled?(ENV['CHEMLAB_DEBUG'], default: false)
|
14
|
+
end
|
8
15
|
|
9
|
-
|
10
|
-
enabled?(ENV['DEBUG'], default: false)
|
11
|
-
end
|
12
|
-
|
13
|
-
private
|
16
|
+
private
|
14
17
|
|
15
|
-
|
16
|
-
|
18
|
+
def enabled?(value, default: true)
|
19
|
+
return default if value.nil?
|
17
20
|
|
18
|
-
|
21
|
+
(value =~ /^(false|no|n|0)$/i) != 0
|
22
|
+
end
|
19
23
|
end
|
20
24
|
end
|
21
25
|
end
|
@@ -1,23 +1,26 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'logger'
|
4
|
-
require 'forwardable'
|
5
|
-
|
6
3
|
module Chemlab
|
7
4
|
module Runtime
|
5
|
+
# Logger module
|
8
6
|
module Logger
|
9
|
-
|
10
|
-
|
11
|
-
|
7
|
+
# Log something to a stream
|
8
|
+
# @param [Any] obj Any object that responds to #to_s
|
9
|
+
# @param [Symbol] type The type of message logged
|
10
|
+
# @param [Hash] args Any additional arguments
|
11
|
+
# @example
|
12
|
+
# log('something', :info) #=> logs INFO :: something, to $stdout
|
13
|
+
# log('error', :err) #=> logs ERR :: error, to $stderr
|
14
|
+
# log('important', :important, stream: $stderr) #=> logs IMPO :: important, to $stderr
|
15
|
+
# log('to file', :info, stream: File.open('file.txt', 'w')) #=> logs INFO :: to file, to the file.txt file
|
16
|
+
def log(obj, type = :info, **args)
|
17
|
+
raise ArgumentError, "Cannot log #{obj} as it does not respond to to_s!" unless obj.respond_to?(:to_s)
|
12
18
|
|
13
|
-
|
14
|
-
attr_writer :logger
|
19
|
+
args[:stream] = type.match?(/(err(or)?|warn(ing)?)/) ? $stderr : $stdout
|
15
20
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
end
|
20
|
-
end
|
21
|
+
prefix = Time.now.strftime('%Y-%m-%d %H:%M:%S / ')
|
22
|
+
prefix << type[0..3].upcase << "\t:: " # we only want the prefix to be four chars long
|
23
|
+
args[:stream].puts(prefix << obj.to_s)
|
21
24
|
end
|
22
25
|
end
|
23
26
|
end
|
data/lib/chemlab/version.rb
CHANGED
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
desc <<-DESCRIPTION
|
4
|
+
Generate something
|
5
|
+
|
6
|
+
Arguments: WHAT NAME [ARGS]
|
7
|
+
Examples:
|
8
|
+
- generate page Login path=/users/sign_in
|
9
|
+
Generates a page library
|
10
|
+
Notes:
|
11
|
+
- [ARGS] will be in form key=value separated by `=`
|
12
|
+
DESCRIPTION
|
13
|
+
task :generate do |_, args|
|
14
|
+
require_relative '../chemlab/cli/generator'
|
15
|
+
|
16
|
+
raise ArgumentError, 'Please specify what to generate and the name' if args.size < 2
|
17
|
+
|
18
|
+
what = args.shift
|
19
|
+
name = args.shift
|
20
|
+
|
21
|
+
Chemlab::CLI::Generator.generate(what, name, args)
|
22
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
namespace :generate do
|
4
|
+
desc <<-DESCRIPTION
|
5
|
+
Generate page library stubs
|
6
|
+
|
7
|
+
Arguments: PATH
|
8
|
+
Examples:
|
9
|
+
- generate:stubs qa/page/login.rb
|
10
|
+
Generate stubs for a specific page library
|
11
|
+
- generate:stubs qa/page
|
12
|
+
Generates stubs for all page libraries in `qa/page`
|
13
|
+
DESCRIPTION
|
14
|
+
task :stubs do |_, path|
|
15
|
+
puts "Doin some stubbin in #{path}"
|
16
|
+
|
17
|
+
require_relative '../chemlab/cli/stubber'
|
18
|
+
Chemlab::CLI::Stubber.stub_all(path)
|
19
|
+
end
|
20
|
+
end
|
data/lib/tasks/help.rake
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'colorize'
|
4
|
+
|
5
|
+
desc 'Show the help'
|
6
|
+
task '--help' do
|
7
|
+
usage = +%(Usage: #{$PROGRAM_NAME} TASK\n)
|
8
|
+
|
9
|
+
Rake.application.tasks.each do |task|
|
10
|
+
usage += %(#{task.name.bold}: #{task.comment}\n)
|
11
|
+
|
12
|
+
next unless task.full_comment && task.full_comment != task.comment
|
13
|
+
|
14
|
+
# standardize and colorize the description
|
15
|
+
full_comment = task.full_comment.gsub(/(Arguments|Examples|Notes):/, '\1:'.underline)
|
16
|
+
|
17
|
+
# remove the short description and the newlines
|
18
|
+
full_comment = full_comment[task.comment.size + 2..]
|
19
|
+
|
20
|
+
usage += %(#{full_comment}\n\n)
|
21
|
+
end
|
22
|
+
|
23
|
+
$stdout.puts usage
|
24
|
+
end
|
data/lib/tasks/new.rake
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
desc <<-DESCRIPTION
|
4
|
+
Scaffold a new Chemlab Library
|
5
|
+
|
6
|
+
Arguments: PATH
|
7
|
+
Examples:
|
8
|
+
- new my-library
|
9
|
+
Scaffolds a new Chemlab Library in the `my-library` directory.
|
10
|
+
This will fail if the PATH already exists
|
11
|
+
DESCRIPTION
|
12
|
+
task 'new' do |_, args|
|
13
|
+
require_relative '../chemlab/cli/new_library'
|
14
|
+
|
15
|
+
library = args.first
|
16
|
+
|
17
|
+
warn "NOTE: Only creating #{library}" if args.size > 1
|
18
|
+
Chemlab::CLI::NewLibrary.scaffold(library)
|
19
|
+
end
|
metadata
CHANGED
@@ -1,214 +1,257 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chemlab
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- GitLab Quality
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-07-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: climate_control
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: 1.0.0
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.
|
26
|
+
version: 1.0.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: nokogiri
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
34
|
-
- - ">="
|
35
|
-
- !ruby/object:Gem::Version
|
36
|
-
version: 1.6.6
|
33
|
+
version: 1.10.9
|
37
34
|
type: :development
|
38
35
|
prerelease: false
|
39
36
|
version_requirements: !ruby/object:Gem::Requirement
|
40
37
|
requirements:
|
41
38
|
- - "~>"
|
42
39
|
- !ruby/object:Gem::Version
|
43
|
-
version:
|
44
|
-
- - ">="
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
version: 1.6.6
|
40
|
+
version: 1.10.9
|
47
41
|
- !ruby/object:Gem::Dependency
|
48
|
-
name: pry
|
42
|
+
name: pry
|
49
43
|
requirement: !ruby/object:Gem::Requirement
|
50
44
|
requirements:
|
51
45
|
- - "~>"
|
52
46
|
- !ruby/object:Gem::Version
|
53
|
-
version:
|
47
|
+
version: 0.14.1
|
54
48
|
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
51
|
requirements:
|
58
52
|
- - "~>"
|
59
53
|
- !ruby/object:Gem::Version
|
60
|
-
version:
|
54
|
+
version: 0.14.1
|
61
55
|
- !ruby/object:Gem::Dependency
|
62
|
-
name:
|
56
|
+
name: rspec
|
63
57
|
requirement: !ruby/object:Gem::Requirement
|
64
58
|
requirements:
|
65
59
|
- - "~>"
|
66
60
|
- !ruby/object:Gem::Version
|
67
|
-
version:
|
61
|
+
version: '3.7'
|
68
62
|
type: :development
|
69
63
|
prerelease: false
|
70
64
|
version_requirements: !ruby/object:Gem::Requirement
|
71
65
|
requirements:
|
72
66
|
- - "~>"
|
73
67
|
- !ruby/object:Gem::Version
|
74
|
-
version:
|
68
|
+
version: '3.7'
|
75
69
|
- !ruby/object:Gem::Dependency
|
76
|
-
name:
|
70
|
+
name: rspec-parameterized
|
77
71
|
requirement: !ruby/object:Gem::Requirement
|
78
72
|
requirements:
|
79
73
|
- - "~>"
|
80
74
|
- !ruby/object:Gem::Version
|
81
|
-
version: 0.
|
75
|
+
version: 0.4.2
|
82
76
|
type: :development
|
83
77
|
prerelease: false
|
84
78
|
version_requirements: !ruby/object:Gem::Requirement
|
85
79
|
requirements:
|
86
80
|
- - "~>"
|
87
81
|
- !ruby/object:Gem::Version
|
88
|
-
version: 0.
|
82
|
+
version: 0.4.2
|
89
83
|
- !ruby/object:Gem::Dependency
|
90
|
-
name:
|
84
|
+
name: rubocop
|
91
85
|
requirement: !ruby/object:Gem::Requirement
|
92
86
|
requirements:
|
93
87
|
- - "~>"
|
94
88
|
- !ruby/object:Gem::Version
|
95
|
-
version:
|
89
|
+
version: 1.14.0
|
96
90
|
type: :development
|
97
91
|
prerelease: false
|
98
92
|
version_requirements: !ruby/object:Gem::Requirement
|
99
93
|
requirements:
|
100
94
|
- - "~>"
|
101
95
|
- !ruby/object:Gem::Version
|
102
|
-
version:
|
96
|
+
version: 1.14.0
|
103
97
|
- !ruby/object:Gem::Dependency
|
104
|
-
name: rspec
|
98
|
+
name: rubocop-rspec
|
105
99
|
requirement: !ruby/object:Gem::Requirement
|
106
100
|
requirements:
|
107
101
|
- - "~>"
|
108
102
|
- !ruby/object:Gem::Version
|
109
|
-
version:
|
103
|
+
version: 2.3.0
|
110
104
|
type: :development
|
111
105
|
prerelease: false
|
112
106
|
version_requirements: !ruby/object:Gem::Requirement
|
113
107
|
requirements:
|
114
108
|
- - "~>"
|
115
109
|
- !ruby/object:Gem::Version
|
116
|
-
version:
|
110
|
+
version: 2.3.0
|
117
111
|
- !ruby/object:Gem::Dependency
|
118
|
-
name:
|
112
|
+
name: yard
|
119
113
|
requirement: !ruby/object:Gem::Requirement
|
120
114
|
requirements:
|
121
115
|
- - "~>"
|
122
116
|
- !ruby/object:Gem::Version
|
123
|
-
version: 0.
|
117
|
+
version: 0.9.26
|
124
118
|
type: :development
|
125
119
|
prerelease: false
|
126
120
|
version_requirements: !ruby/object:Gem::Requirement
|
127
121
|
requirements:
|
128
122
|
- - "~>"
|
129
123
|
- !ruby/object:Gem::Version
|
130
|
-
version: 0.
|
124
|
+
version: 0.9.26
|
131
125
|
- !ruby/object:Gem::Dependency
|
132
|
-
name:
|
126
|
+
name: colorize
|
133
127
|
requirement: !ruby/object:Gem::Requirement
|
134
128
|
requirements:
|
135
129
|
- - "~>"
|
136
130
|
- !ruby/object:Gem::Version
|
137
|
-
version:
|
138
|
-
type: :
|
131
|
+
version: '0.8'
|
132
|
+
type: :runtime
|
139
133
|
prerelease: false
|
140
134
|
version_requirements: !ruby/object:Gem::Requirement
|
141
135
|
requirements:
|
142
136
|
- - "~>"
|
143
137
|
- !ruby/object:Gem::Version
|
144
|
-
version:
|
138
|
+
version: '0.8'
|
145
139
|
- !ruby/object:Gem::Dependency
|
146
|
-
name:
|
140
|
+
name: i18n
|
147
141
|
requirement: !ruby/object:Gem::Requirement
|
148
142
|
requirements:
|
149
143
|
- - "~>"
|
150
144
|
- !ruby/object:Gem::Version
|
151
|
-
version:
|
145
|
+
version: '1.8'
|
152
146
|
type: :runtime
|
153
147
|
prerelease: false
|
154
148
|
version_requirements: !ruby/object:Gem::Requirement
|
155
149
|
requirements:
|
156
150
|
- - "~>"
|
157
151
|
- !ruby/object:Gem::Version
|
158
|
-
version:
|
152
|
+
version: '1.8'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: rake
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - ">="
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '12'
|
160
|
+
- - "<"
|
161
|
+
- !ruby/object:Gem::Version
|
162
|
+
version: '14'
|
163
|
+
type: :runtime
|
164
|
+
prerelease: false
|
165
|
+
version_requirements: !ruby/object:Gem::Requirement
|
166
|
+
requirements:
|
167
|
+
- - ">="
|
168
|
+
- !ruby/object:Gem::Version
|
169
|
+
version: '12'
|
170
|
+
- - "<"
|
171
|
+
- !ruby/object:Gem::Version
|
172
|
+
version: '14'
|
159
173
|
- !ruby/object:Gem::Dependency
|
160
174
|
name: selenium-webdriver
|
161
175
|
requirement: !ruby/object:Gem::Requirement
|
162
176
|
requirements:
|
163
|
-
- - "
|
177
|
+
- - ">="
|
164
178
|
- !ruby/object:Gem::Version
|
165
|
-
version: '3
|
179
|
+
version: '3'
|
180
|
+
- - "<"
|
181
|
+
- !ruby/object:Gem::Version
|
182
|
+
version: '5'
|
166
183
|
type: :runtime
|
167
184
|
prerelease: false
|
168
185
|
version_requirements: !ruby/object:Gem::Requirement
|
169
186
|
requirements:
|
170
|
-
- - "
|
187
|
+
- - ">="
|
171
188
|
- !ruby/object:Gem::Version
|
172
|
-
version: '3
|
189
|
+
version: '3'
|
190
|
+
- - "<"
|
191
|
+
- !ruby/object:Gem::Version
|
192
|
+
version: '5'
|
173
193
|
- !ruby/object:Gem::Dependency
|
174
194
|
name: watir
|
175
195
|
requirement: !ruby/object:Gem::Requirement
|
176
196
|
requirements:
|
177
|
-
- - "
|
197
|
+
- - ">="
|
178
198
|
- !ruby/object:Gem::Version
|
179
|
-
version: '6
|
199
|
+
version: '6'
|
200
|
+
- - "<"
|
201
|
+
- !ruby/object:Gem::Version
|
202
|
+
version: '8'
|
180
203
|
type: :runtime
|
181
204
|
prerelease: false
|
182
205
|
version_requirements: !ruby/object:Gem::Requirement
|
183
206
|
requirements:
|
184
|
-
- - "
|
207
|
+
- - ">="
|
185
208
|
- !ruby/object:Gem::Version
|
186
|
-
version: '6
|
209
|
+
version: '6'
|
210
|
+
- - "<"
|
211
|
+
- !ruby/object:Gem::Version
|
212
|
+
version: '8'
|
187
213
|
description:
|
188
214
|
email:
|
189
215
|
- quality@gitlab.com
|
190
|
-
executables:
|
216
|
+
executables:
|
217
|
+
- chemlab
|
191
218
|
extensions: []
|
192
219
|
extra_rdoc_files: []
|
193
220
|
files:
|
221
|
+
- Rakefile
|
222
|
+
- bin/chemlab
|
223
|
+
- bin/chemlab-suite
|
224
|
+
- bin/chemlab-test
|
194
225
|
- lib/chemlab.rb
|
195
|
-
- lib/chemlab/api_fabricator.rb
|
196
226
|
- lib/chemlab/attributable.rb
|
227
|
+
- lib/chemlab/cli/fixtures/new_library/.gitignore
|
228
|
+
- lib/chemlab/cli/fixtures/new_library/Gemfile
|
229
|
+
- lib/chemlab/cli/fixtures/new_library/README.md.erb
|
230
|
+
- lib/chemlab/cli/fixtures/new_library/lib/new_library.rb.erb
|
231
|
+
- lib/chemlab/cli/fixtures/new_library/lib/page/sample.rb.erb
|
232
|
+
- lib/chemlab/cli/fixtures/new_library/new_library.gemspec.erb
|
233
|
+
- lib/chemlab/cli/fixtures/new_library/spec/integration/page/sample_spec.rb.erb
|
234
|
+
- lib/chemlab/cli/fixtures/new_library/spec/unit/page/sample_spec.rb.erb
|
235
|
+
- lib/chemlab/cli/generator.rb
|
236
|
+
- lib/chemlab/cli/generator/templates/page.erb
|
237
|
+
- lib/chemlab/cli/new_library.rb
|
238
|
+
- lib/chemlab/cli/stub.erb
|
239
|
+
- lib/chemlab/cli/stubber.rb
|
197
240
|
- lib/chemlab/component.rb
|
198
241
|
- lib/chemlab/configuration.rb
|
242
|
+
- lib/chemlab/core_ext/string/inflections.rb
|
199
243
|
- lib/chemlab/element.rb
|
200
244
|
- lib/chemlab/page.rb
|
201
|
-
- lib/chemlab/resource.rb
|
202
|
-
- lib/chemlab/runtime/api_client.rb
|
203
245
|
- lib/chemlab/runtime/browser.rb
|
204
246
|
- lib/chemlab/runtime/env.rb
|
205
247
|
- lib/chemlab/runtime/logger.rb
|
206
|
-
- lib/chemlab/support/api.rb
|
207
|
-
- lib/chemlab/support/logging.rb
|
208
|
-
- lib/chemlab/support/repeater.rb
|
209
|
-
- lib/chemlab/support/waiter.rb
|
210
248
|
- lib/chemlab/version.rb
|
211
|
-
|
249
|
+
- lib/tasks/generate.rake
|
250
|
+
- lib/tasks/generate_stubs.rake
|
251
|
+
- lib/tasks/help.rake
|
252
|
+
- lib/tasks/new.rake
|
253
|
+
- lib/tasks/version.rake
|
254
|
+
homepage: https://about.gitlab.com/
|
212
255
|
licenses:
|
213
256
|
- MIT
|
214
257
|
metadata: {}
|
@@ -220,14 +263,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
220
263
|
requirements:
|
221
264
|
- - ">="
|
222
265
|
- !ruby/object:Gem::Version
|
223
|
-
version:
|
266
|
+
version: 2.7.2
|
224
267
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
225
268
|
requirements:
|
226
269
|
- - ">="
|
227
270
|
- !ruby/object:Gem::Version
|
228
271
|
version: '0'
|
229
272
|
requirements: []
|
230
|
-
rubygems_version: 3.
|
273
|
+
rubygems_version: 3.1.4
|
231
274
|
signing_key:
|
232
275
|
specification_version: 4
|
233
276
|
summary: Automation framework built by GitLab, for the world.
|