superbot 0.1.0 → 0.1.1

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
  SHA256:
3
- metadata.gz: 315afa4b621c8c352230815b08b89df96fc483abc3bad63e29edcbc128466be9
4
- data.tar.gz: d3325f70c1f316d71d3a946748c1624503bae494c05c4208b97dd9dcf0adaba2
3
+ metadata.gz: 033e8dc54ff80051f5a8fd7138c9953130d4c3c86b5171ab3be08981972b7da7
4
+ data.tar.gz: 3e7bb0700cf3ee06135c943d8ecc4324ddd01fd449402922ec93231bb2a2f94a
5
5
  SHA512:
6
- metadata.gz: 74f03e0d071ba5e50c4ecdf2838ba683192d36d6329ded5bd1c108b800dc2e4dbb97a634da2fcfdb9861cc4c86a51665f8437f9038de7d5a74bd6f88c5040bbb
7
- data.tar.gz: b60cf84484de80e7fbb42b1b65c50290094de508fe23b4443de4d6ad8bf8d264176cfbab2a697ffab566b3513796a19064d6b638b871f59e209ee93385a145b3
6
+ metadata.gz: 658e6875c36ad437b3cf4834b1d92e90e7195d951950c8471d1872477ab081213339e250d21f90378010bebbf1a22acaa7f1c76cb3b91724a987960629448aab
7
+ data.tar.gz: fbd29bf113d130aa073df74ff6e3b00e47ad3e0db86337d606f5b864cbc3146b40619c434bdc9f61a65e1e070faa7c308bc0155eeadb1e942ee06410ce917d8b
data/.gitignore CHANGED
@@ -9,3 +9,7 @@
9
9
 
10
10
  # rspec failure tracking
11
11
  .rspec_status
12
+ *.gem
13
+
14
+ /.idea/
15
+ .DS_Store
data/.rubocop.yml CHANGED
@@ -2,10 +2,12 @@ inherit_from: .rubocop.relaxed.yml
2
2
 
3
3
  AllCops:
4
4
  Exclude:
5
+ - __test/**
5
6
  - spec/**/*
6
7
  - Gemfile
7
8
  - "*.gemspec"
8
9
  - bundler/**/*
10
+ - vendor/bundle/**/* # travis with --deployment
9
11
  TargetRubyVersion: 2.4
10
12
 
11
13
  Style/PercentLiteralDelimiters:
data/Gemfile.lock CHANGED
@@ -1,22 +1,76 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- superbot (0.1.0)
4
+ superbot (0.1.1)
5
5
  clamp (= 1.2.1)
6
+ launchy (= 2.4.3)
7
+ sinatra (= 2.0.3)
8
+ sinatra-silent (= 0.0.1)
9
+ zaru (= 0.2.0)
6
10
 
7
11
  GEM
8
12
  remote: https://rubygems.org/
9
13
  specs:
14
+ addressable (2.5.2)
15
+ public_suffix (>= 2.0.2, < 4.0)
10
16
  ast (2.4.0)
11
17
  clamp (1.2.1)
18
+ coderay (1.1.2)
12
19
  diff-lcs (1.3)
20
+ docile (1.3.1)
21
+ excon (0.62.0)
22
+ ffi (1.9.25)
23
+ formatador (0.2.5)
24
+ guard (2.14.2)
25
+ formatador (>= 0.2.4)
26
+ listen (>= 2.7, < 4.0)
27
+ lumberjack (>= 1.0.12, < 2.0)
28
+ nenv (~> 0.1)
29
+ notiffany (~> 0.0)
30
+ pry (>= 0.9.12)
31
+ shellany (~> 0.0)
32
+ thor (>= 0.18.1)
33
+ guard-compat (1.2.1)
34
+ guard-rspec (4.7.3)
35
+ guard (~> 2.1)
36
+ guard-compat (~> 1.1)
37
+ rspec (>= 2.99.0, < 4.0)
38
+ guard-rubocop (1.3.0)
39
+ guard (~> 2.0)
40
+ rubocop (~> 0.20)
41
+ json (2.1.0)
13
42
  kommando (0.1.2)
43
+ launchy (2.4.3)
44
+ addressable (~> 2.3)
45
+ listen (3.1.5)
46
+ rb-fsevent (~> 0.9, >= 0.9.4)
47
+ rb-inotify (~> 0.9, >= 0.9.7)
48
+ ruby_dep (~> 1.2)
49
+ lumberjack (1.0.13)
50
+ method_source (0.9.0)
51
+ mustermann (1.0.3)
52
+ nenv (0.3.0)
53
+ notiffany (0.1.1)
54
+ nenv (~> 0.1)
55
+ shellany (~> 0.0)
14
56
  parallel (1.12.1)
57
+ parallel_tests (2.22.0)
58
+ parallel
15
59
  parser (2.5.1.0)
16
60
  ast (~> 2.4.0)
17
61
  powerpack (0.1.1)
62
+ pry (0.11.3)
63
+ coderay (~> 1.1.0)
64
+ method_source (~> 0.9.0)
65
+ public_suffix (3.0.3)
66
+ rack (2.0.5)
67
+ rack-protection (2.0.3)
68
+ rack
18
69
  rainbow (3.0.0)
19
70
  rake (10.5.0)
71
+ rb-fsevent (0.10.3)
72
+ rb-inotify (0.9.10)
73
+ ffi (>= 0.5.0, < 2)
20
74
  rspec (3.7.0)
21
75
  rspec-core (~> 3.7.0)
22
76
  rspec-expectations (~> 3.7.0)
@@ -38,18 +92,40 @@ GEM
38
92
  ruby-progressbar (~> 1.7)
39
93
  unicode-display_width (~> 1.0, >= 1.0.1)
40
94
  ruby-progressbar (1.9.0)
95
+ ruby_dep (1.5.0)
96
+ shellany (0.0.1)
97
+ simplecov (0.16.1)
98
+ docile (~> 1.1)
99
+ json (>= 1.8, < 3)
100
+ simplecov-html (~> 0.10.0)
101
+ simplecov-html (0.10.2)
102
+ sinatra (2.0.3)
103
+ mustermann (~> 1.0)
104
+ rack (~> 2.0)
105
+ rack-protection (= 2.0.3)
106
+ tilt (~> 2.0)
107
+ sinatra-silent (0.0.1)
108
+ thor (0.20.0)
109
+ tilt (2.0.8)
41
110
  unicode-display_width (1.3.3)
111
+ zaru (0.2.0)
42
112
 
43
113
  PLATFORMS
44
114
  ruby
45
115
 
46
116
  DEPENDENCIES
47
117
  bundler (~> 1.16)
118
+ excon (~> 0.62)
119
+ guard (~> 2.14)
120
+ guard-rspec (~> 4.7)
121
+ guard-rubocop (~> 1.3)
48
122
  kommando (~> 0.1)
123
+ parallel_tests (~> 2.22)
49
124
  rake (~> 10.0)
50
125
  rspec (~> 3.0)
51
126
  rubocop (~> 0.53)
127
+ simplecov (~> 0.16)
52
128
  superbot!
53
129
 
54
130
  BUNDLED WITH
55
- 1.16.2
131
+ 1.16.3
data/Guardfile ADDED
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ guard :rspec, cmd: "bundle exec rspec", all_after_pass: true do
4
+ require "guard/rspec/dsl"
5
+ dsl = Guard::RSpec::Dsl.new(self)
6
+
7
+ rspec = dsl.rspec
8
+ watch(rspec.spec_helper) { rspec.spec_dir }
9
+ watch(rspec.spec_support) { rspec.spec_dir }
10
+ watch(rspec.spec_files)
11
+
12
+ ruby = dsl.ruby
13
+ dsl.watch_spec_files_for(ruby.lib_files)
14
+
15
+ watch %r{^lib\/superbot\/cli\/(?<command>.+)_command\.rb$} do |m|
16
+ "spec/cli/commands/#{m[:command]}_spec.rb"
17
+ end
18
+ end
19
+
20
+ guard :rubocop do
21
+ watch(/.+\.rb$/)
22
+ watch(%r{(?:.+/)?\.rubocop(?:_todo)?\.yml$}) { |m| File.dirname(m[0]) }
23
+ end
data/Rakefile CHANGED
@@ -1,12 +1,15 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ STDOUT.sync = true
4
+
3
5
  require "bundler/gem_tasks"
4
6
  require "rspec/core/rake_task"
5
7
  require "kommando"
8
+ require "parallel_tests/tasks"
6
9
 
7
10
  RSpec::Core::RakeTask.new(:spec)
8
11
 
9
- task default: %i[rubocop spec e2e]
12
+ task default: %i[rubocop parallel:spec e2e]
10
13
 
11
14
  task :rubocop do
12
15
  rubocop_k = Kommando.puts "rubocop"
data/bin/e2e CHANGED
@@ -4,3 +4,9 @@ set -e
4
4
 
5
5
  exe/superbot
6
6
  exe/superbot version
7
+ exe/superbot new __test_e2e
8
+ rm -rf __test_e2e
9
+
10
+ echo "
11
+
12
+ ok"
data/bin/release ADDED
@@ -0,0 +1,23 @@
1
+ #!/usr/bin/env sh
2
+
3
+ set -e
4
+
5
+ VERSION=$(exe/superbot version)
6
+ GEM_FILE="superbot-$VERSION.gem"
7
+
8
+ gem uninstall -a -x superbot
9
+
10
+ [ -e "$GEM_FILE" ] && rm "$GEM_FILE"
11
+
12
+ gem build superbot
13
+ gem install superbot-$VERSION.gem
14
+ VERSION_INSTALLED=$(superbot version)
15
+
16
+ if [ "$VERSION" != "$VERSION_INSTALLED" ]; then
17
+ echo "!version"
18
+ exit 1
19
+ fi
20
+
21
+ superbot
22
+
23
+ echo "ok"
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'zaru'
4
+ require 'fileutils'
5
+
6
+ module Superbot
7
+ module CLI
8
+ class NewCommand < Clamp::Command
9
+ parameter "PATH", "path name to create" do |path|
10
+ unless path == Zaru.sanitize!(path)
11
+ raise ArgumentError, "#{path} is not valid name for a directory"
12
+ end
13
+
14
+ if Dir.exist? path
15
+ raise ArgumentError, "directory #{path} already exists"
16
+ end
17
+
18
+ if File.exist? path
19
+ raise ArgumentError, "#{path} is an existing file"
20
+ end
21
+
22
+ path
23
+ end
24
+
25
+ def execute
26
+ FileUtils.mkdir path
27
+ File.write File.join(path, "main.rb"), "visit \"http://example.com\"\n"
28
+
29
+ puts """🤖 created directory #{path} with main.rb
30
+
31
+ Start testing with:
32
+
33
+ superbot run #{path}
34
+ """
35
+ end
36
+ end
37
+ end
38
+ end
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative "new_command"
4
+ require_relative "run_command"
3
5
  require_relative "version_command"
4
6
 
5
7
  module Superbot
@@ -7,6 +9,8 @@ module Superbot
7
9
  class RootCommand < Clamp::Command
8
10
  banner "superbot 🤖"
9
11
 
12
+ subcommand ["new"], "Create a new project", NewCommand
13
+ subcommand ["run"], "Run a project", RunCommand
10
14
  subcommand ["version"], "Show version information", VersionCommand
11
15
 
12
16
  def self.run
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Superbot
4
+ module CLI
5
+ class RunCommand < Clamp::Command
6
+ include Superbot::Validations
7
+
8
+ parameter "PATH", "project directory" do |path|
9
+ validates_project_path path
10
+
11
+ path
12
+ end
13
+
14
+ def execute
15
+ web = Superbot::Web.new
16
+ web.run_async_after_running!
17
+
18
+ puts "🤖 active"
19
+ puts ""
20
+ puts "Press enter to exit"
21
+ $stdin.gets
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Superbot
4
+ module Validations
5
+ def validates_project_path(path)
6
+ unless Dir.exist? path
7
+ raise ArgumentError, "directory #{path} does not exist"
8
+ end
9
+
10
+ entrypoint = File.join path, "main.rb"
11
+ unless File.exist? entrypoint
12
+ raise ArgumentError, "file #{entrypoint} does not exist"
13
+ end
14
+
15
+ path
16
+ end
17
+ end
18
+ end
data/lib/superbot/cli.rb CHANGED
@@ -1,10 +1,13 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "clamp"
4
+ # TODO
5
+ Clamp.allow_options_after_parameters = true
4
6
 
5
7
  module Superbot
6
8
  module CLI
7
9
  end
8
10
  end
9
11
 
12
+ require_relative "cli/validations"
10
13
  require_relative "cli/root_command"
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'singleton'
4
+
5
+ module Superbot
6
+ class Project
7
+ include Singleton
8
+ attr_accessor :path
9
+
10
+ def self.path=(path)
11
+ instance.path = path
12
+ end
13
+
14
+ def self.path
15
+ instance.path
16
+ end
17
+ end
18
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Superbot
4
- VERSION = "0.1.0"
4
+ VERSION = "0.1.1"
5
5
  end
@@ -0,0 +1,52 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'sinatra'
4
+ require "sinatra/silent"
5
+
6
+ module Superbot
7
+ class Web
8
+ def initialize
9
+ @sinatra = Sinatra.new
10
+ @sinatra.set :bind, "127.0.0.1"
11
+ @sinatra.set :silent_sinatra, true
12
+ @sinatra.set :silent_webrick, true
13
+ @sinatra.set :silent_access_log, false
14
+
15
+ @sinatra.before do
16
+ headers['Access-Control-Allow-Methods'] = 'GET, POST, PUT, DELETE, OPTIONS'
17
+ headers['Access-Control-Allow-Origin'] = '*'
18
+ headers['Access-Control-Allow-Headers'] = 'accept, authorization, origin'
19
+ end
20
+
21
+ @sinatra.options '*' do
22
+ response.headers['Allow'] = 'HEAD,GET,PUT,DELETE,OPTIONS,POST'
23
+ response.headers['Access-Control-Allow-Headers'] = 'X-Requested-With, X-HTTP-Method-Override, Content-Type, Cache-Control, Accept'
24
+ end
25
+
26
+ @sinatra.get "/__superbot/v1/ping" do
27
+ "PONG"
28
+ end
29
+
30
+ @sinatra.post "/__superbot/v1/convert" do
31
+ body = JSON.parse(request.body.read)
32
+
33
+ "visit 'http://example.com'\n#{body.inspect}"
34
+ end
35
+ end
36
+
37
+ def run!
38
+ @sinatra.run_async!
39
+ end
40
+
41
+ def run_async_after_running!
42
+ Thread.new do
43
+ @sinatra.run!
44
+ end
45
+
46
+ loop do
47
+ break if @sinatra.running?
48
+ sleep 0.001
49
+ end
50
+ end
51
+ end
52
+ end
data/lib/superbot.rb CHANGED
@@ -1,7 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Superbot
4
+ def self.test_run?
5
+ ENV["SUPERBOT_TEST_RUN"] == "true"
6
+ end
4
7
  end
5
8
 
6
9
  require_relative "superbot/version"
10
+ require_relative "superbot/project"
7
11
  require_relative "superbot/cli"
12
+ require_relative "superbot/web"
data/superbot.gemspec CHANGED
@@ -33,10 +33,22 @@ Gem::Specification.new do |spec|
33
33
  spec.require_paths = ["lib"]
34
34
 
35
35
  spec.add_runtime_dependency "clamp", "1.2.1"
36
+ spec.add_runtime_dependency "zaru", "0.2.0"
37
+ spec.add_runtime_dependency "sinatra", "2.0.3"
38
+ spec.add_runtime_dependency "launchy", "2.4.3"
39
+ spec.add_runtime_dependency "sinatra-silent", "0.0.1"
36
40
 
37
41
  spec.add_development_dependency "bundler", "~> 1.16"
38
42
  spec.add_development_dependency "rake", "~> 10.0"
39
43
  spec.add_development_dependency "rspec", "~> 3.0"
40
44
  spec.add_development_dependency "kommando", "~> 0.1"
41
45
  spec.add_development_dependency "rubocop", "~> 0.53"
46
+ spec.add_development_dependency "simplecov", "~> 0.16"
47
+ spec.add_development_dependency "parallel_tests", "~> 2.22"
48
+ spec.add_development_dependency "excon", "~> 0.62"
49
+
50
+ spec.add_development_dependency "guard", "~> 2.14"
51
+ spec.add_development_dependency "guard-rspec", "~> 4.7"
52
+ spec.add_development_dependency "guard-rubocop", "~> 1.3"
53
+
42
54
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: superbot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Superbots
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-06-02 00:00:00.000000000 Z
11
+ date: 2018-09-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: clamp
@@ -24,6 +24,62 @@ dependencies:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
26
  version: 1.2.1
27
+ - !ruby/object:Gem::Dependency
28
+ name: zaru
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '='
32
+ - !ruby/object:Gem::Version
33
+ version: 0.2.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.2.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: sinatra
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '='
46
+ - !ruby/object:Gem::Version
47
+ version: 2.0.3
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '='
53
+ - !ruby/object:Gem::Version
54
+ version: 2.0.3
55
+ - !ruby/object:Gem::Dependency
56
+ name: launchy
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '='
60
+ - !ruby/object:Gem::Version
61
+ version: 2.4.3
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '='
67
+ - !ruby/object:Gem::Version
68
+ version: 2.4.3
69
+ - !ruby/object:Gem::Dependency
70
+ name: sinatra-silent
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '='
74
+ - !ruby/object:Gem::Version
75
+ version: 0.0.1
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '='
81
+ - !ruby/object:Gem::Version
82
+ version: 0.0.1
27
83
  - !ruby/object:Gem::Dependency
28
84
  name: bundler
29
85
  requirement: !ruby/object:Gem::Requirement
@@ -94,6 +150,90 @@ dependencies:
94
150
  - - "~>"
95
151
  - !ruby/object:Gem::Version
96
152
  version: '0.53'
153
+ - !ruby/object:Gem::Dependency
154
+ name: simplecov
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: '0.16'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - "~>"
165
+ - !ruby/object:Gem::Version
166
+ version: '0.16'
167
+ - !ruby/object:Gem::Dependency
168
+ name: parallel_tests
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - "~>"
172
+ - !ruby/object:Gem::Version
173
+ version: '2.22'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - "~>"
179
+ - !ruby/object:Gem::Version
180
+ version: '2.22'
181
+ - !ruby/object:Gem::Dependency
182
+ name: excon
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - "~>"
186
+ - !ruby/object:Gem::Version
187
+ version: '0.62'
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - "~>"
193
+ - !ruby/object:Gem::Version
194
+ version: '0.62'
195
+ - !ruby/object:Gem::Dependency
196
+ name: guard
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - "~>"
200
+ - !ruby/object:Gem::Version
201
+ version: '2.14'
202
+ type: :development
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - "~>"
207
+ - !ruby/object:Gem::Version
208
+ version: '2.14'
209
+ - !ruby/object:Gem::Dependency
210
+ name: guard-rspec
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - "~>"
214
+ - !ruby/object:Gem::Version
215
+ version: '4.7'
216
+ type: :development
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - "~>"
221
+ - !ruby/object:Gem::Version
222
+ version: '4.7'
223
+ - !ruby/object:Gem::Dependency
224
+ name: guard-rubocop
225
+ requirement: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - "~>"
228
+ - !ruby/object:Gem::Version
229
+ version: '1.3'
230
+ type: :development
231
+ prerelease: false
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - "~>"
235
+ - !ruby/object:Gem::Version
236
+ version: '1.3'
97
237
  description: Superbot DSL and CLI
98
238
  email:
99
239
  - ''
@@ -111,18 +251,25 @@ files:
111
251
  - ".travis.yml"
112
252
  - Gemfile
113
253
  - Gemfile.lock
254
+ - Guardfile
114
255
  - LICENSE.txt
115
256
  - README.md
116
257
  - Rakefile
117
258
  - bin/console
118
259
  - bin/e2e
260
+ - bin/release
119
261
  - bin/setup
120
262
  - exe/superbot
121
263
  - lib/superbot.rb
122
264
  - lib/superbot/cli.rb
265
+ - lib/superbot/cli/new_command.rb
123
266
  - lib/superbot/cli/root_command.rb
267
+ - lib/superbot/cli/run_command.rb
268
+ - lib/superbot/cli/validations.rb
124
269
  - lib/superbot/cli/version_command.rb
270
+ - lib/superbot/project.rb
125
271
  - lib/superbot/version.rb
272
+ - lib/superbot/web.rb
126
273
  - superbot.gemspec
127
274
  homepage: https://github.com/superbothq/superbot
128
275
  licenses:
@@ -144,7 +291,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
144
291
  version: '0'
145
292
  requirements: []
146
293
  rubyforge_project:
147
- rubygems_version: 2.7.6
294
+ rubygems_version: 2.7.7
148
295
  signing_key:
149
296
  specification_version: 4
150
297
  summary: Superbot Testing