superbot 0.1.27 → 0.1.28

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c0e0a593137e0fee2b1e9d1a16c2a31a6bcf6460ae0c87cc1653b440a07a4834
4
- data.tar.gz: 5f17e4f9438919334e73a17bfb327a24d494bdf27bb2b3f6b656dd3a8777f4fd
3
+ metadata.gz: 0a030454c627c3f1cbc0e8006637461cb768b907f3d16c52666e764f0e78a5c5
4
+ data.tar.gz: cda49595f023bc77c46fea4ada2a098ecf9c12806aebcc192304040f20a068d2
5
5
  SHA512:
6
- metadata.gz: d285eec9a6a897ac2268a1e0aa668d5492a461026b7694b934851652edd1a5cd9e08f64fae27057eb711c4d1b6f611c7bb6bf7a17c09368738455261f65d4694
7
- data.tar.gz: 5e65c38193312991b20bc767a29d5397b5134b4779a8ce956a2b09e864885648262522af0edd3a9fd3e20d7befd0d26ff3971315e3b114068d9e6f4277e255a4
6
+ metadata.gz: 48016bbb28209f550254a4f5633e6e38b5e8c9cea39a7923c59bbc9b86bc311ceb506b67f31f5224efaacbe9b6ee441489f75d93d9f547852cc49ec4e957f719
7
+ data.tar.gz: 5ba44971d978bf268695d15ace642b0c86159f1ae567563f191806df4932afab23b8e84d9fc64caa6356191668a2fad53589235794b8d9fc5ee3eba3d123b8c0
data/.rubocop.relaxed.yml CHANGED
@@ -137,6 +137,9 @@ Lint/AssignmentInCondition:
137
137
  Enabled: false
138
138
  StyleGuide: http://relaxed.ruby.style/#lintassignmentincondition
139
139
 
140
+ Lint/NestedMethodDefinition:
141
+ Enabled: false
142
+
140
143
  Metrics/AbcSize:
141
144
  Enabled: false
142
145
 
data/.travis.yml CHANGED
@@ -4,10 +4,12 @@ rvm:
4
4
  - 2.5
5
5
  - 2.4
6
6
  - 2.3
7
+ env:
8
+ - SUPERBOT_USE_RUBYGEMS=yes
7
9
  before_install:
8
- - gem install bundler -v 1.16.2
10
+ - gem install bundler -v 1.17.1
9
11
  deploy:
10
12
  provider: rubygems
11
- api_key: $RUBYGEMS_API_KEY
13
+ api_key: ${RUBYGEMS_API_KEY}
12
14
  on:
13
15
  branch: master
data/Gemfile CHANGED
@@ -4,3 +4,8 @@ git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
4
4
 
5
5
  # Specify your gem's dependencies in superbot.gemspec
6
6
  gemspec
7
+
8
+ unless ENV['SUPERBOT_USE_RUBYGEMS'] == "yes"
9
+ gem "superbot-teleport", path: "../superbot-teleport"
10
+ gem "superbot-cloud", path: "../superbot-cloud"
11
+ end
data/Gemfile.lock CHANGED
@@ -1,14 +1,15 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- superbot (0.1.27)
4
+ superbot (0.1.28)
5
5
  clamp (= 1.2.1)
6
6
  kommando (~> 0.1)
7
7
  launchy (= 2.4.3)
8
8
  selenium-webdriver (~> 3.14, >= 3.14.0)
9
- sinatra (= 2.0.3)
9
+ sinatra (= 2.0.4)
10
10
  sinatra-silent (= 0.0.1)
11
- superbot-cloud (~> 0.1.18)
11
+ superbot-cloud (~> 0.1.19)
12
+ superbot-teleport (~> 0.2.1)
12
13
  zaru (= 0.2.0)
13
14
 
14
15
  GEM
@@ -63,8 +64,6 @@ GEM
63
64
  nenv (~> 0.1)
64
65
  shellany (~> 0.0)
65
66
  parallel (1.12.1)
66
- parallel_tests (2.22.0)
67
- parallel
68
67
  parser (2.5.1.0)
69
68
  ast (~> 2.4.0)
70
69
  powerpack (0.1.1)
@@ -73,7 +72,7 @@ GEM
73
72
  method_source (~> 0.9.0)
74
73
  public_suffix (3.0.3)
75
74
  rack (2.0.6)
76
- rack-protection (2.0.3)
75
+ rack-protection (2.0.4)
77
76
  rack
78
77
  rainbow (3.0.0)
79
78
  rake (10.5.0)
@@ -112,15 +111,17 @@ GEM
112
111
  json (>= 1.8, < 3)
113
112
  simplecov-html (~> 0.10.0)
114
113
  simplecov-html (0.10.2)
115
- sinatra (2.0.3)
114
+ sinatra (2.0.4)
116
115
  mustermann (~> 1.0)
117
116
  rack (~> 2.0)
118
- rack-protection (= 2.0.3)
117
+ rack-protection (= 2.0.4)
119
118
  tilt (~> 2.0)
120
119
  sinatra-silent (0.0.1)
121
- superbot-cloud (0.1.18)
120
+ superbot-cloud (0.1.19)
122
121
  marcel (= 0.3.3)
123
122
  multipart-post (= 2.0.0)
123
+ superbot-teleport (0.2.1)
124
+ excon
124
125
  thor (0.20.0)
125
126
  tilt (2.0.9)
126
127
  unicode-display_width (1.3.3)
@@ -130,12 +131,11 @@ PLATFORMS
130
131
  ruby
131
132
 
132
133
  DEPENDENCIES
133
- bundler (~> 1.16)
134
+ bundler (~> 1.17)
134
135
  excon (~> 0.62)
135
136
  guard (~> 2.14)
136
137
  guard-rspec (~> 4.7)
137
138
  guard-rubocop (~> 1.3)
138
- parallel_tests (~> 2.22)
139
139
  rake (~> 10.0)
140
140
  rspec (~> 3.0)
141
141
  rubocop (~> 0.53)
data/Guardfile CHANGED
@@ -21,3 +21,19 @@ guard :rubocop do
21
21
  watch(/.+\.rb$/)
22
22
  watch(%r{(?:.+/)?\.rubocop(?:_todo)?\.yml$}) { |m| File.dirname(m[0]) }
23
23
  end
24
+
25
+ guard 'process', name: 'superbot', command: 'superbot' do
26
+ watch(%r{^lib/(.+)\.rb})
27
+ end
28
+
29
+ guard :bundler do
30
+ require 'guard/bundler'
31
+ require 'guard/bundler/verify'
32
+ helper = Guard::Bundler::Verify.new
33
+
34
+ files = ['Gemfile']
35
+ files += Dir['*.gemspec'] if files.any? { |f| helper.uses_gemspec?(f) }
36
+
37
+ # Assume files are symlinked from somewhere
38
+ files.each { |file| watch(helper.real_path(file)) }
39
+ end
data/Rakefile CHANGED
@@ -3,18 +3,15 @@
3
3
  STDOUT.sync = true
4
4
 
5
5
  require "bundler/gem_tasks"
6
- require "rspec/core/rake_task"
6
+ require "rubocop/rake_task"
7
7
  require "kommando"
8
- require "parallel_tests/tasks"
9
8
 
10
- RSpec::Core::RakeTask.new(:spec)
9
+ RuboCop::RakeTask.new
11
10
 
12
- task default: %i[rubocop parallel:spec e2e]
11
+ task default: %i[rubocop spec e2e]
13
12
 
14
- task :rubocop do
15
- rubocop_k = Kommando.puts "rubocop"
16
- puts "" # styling for rake
17
- raise "offenses found" unless rubocop_k.code.zero?
13
+ task :spec do
14
+ system('rspec')
18
15
  end
19
16
 
20
17
  task :e2e do
data/exe/superbot CHANGED
@@ -9,11 +9,5 @@ $LOAD_PATH.unshift lib_path unless $LOAD_PATH.include?(lib_path)
9
9
  STDOUT.sync = true
10
10
 
11
11
  require 'superbot'
12
- require 'superbot/cloud'
13
- begin
14
- require "superbot/local"
15
- rescue LoadError
16
- p # do nothing
17
- end
18
12
 
19
13
  Superbot::CLI::RootCommand.run
data/lib/superbot.rb CHANGED
@@ -37,7 +37,22 @@ module Superbot
37
37
  end
38
38
  end
39
39
 
40
+ require "clamp"
41
+ # TODO
42
+ Clamp.allow_options_after_parameters = true
43
+
40
44
  require_relative "superbot/version"
45
+ require_relative "superbot/cli/validations"
46
+
47
+ %w(cloud teleport).each do |microgem|
48
+ begin
49
+ require "superbot/#{microgem}"
50
+ rescue LoadError
51
+ puts "WARNING: superbot-#{microgem} is not installed"
52
+ end
53
+ end
54
+
41
55
  require_relative "superbot/project"
56
+ require_relative "superbot/convert"
42
57
  require_relative "superbot/cli"
43
58
  require_relative "superbot/web"
@@ -22,7 +22,7 @@ module Superbot
22
22
  def convert_action(action)
23
23
  case action[:type]
24
24
  when 'visit' then "visit '#{action[:url]}'"
25
- when 'click' then "find('#{action[:selector]}').click"
25
+ when 'click' then "find('#{action[:selector]}', match: :first).click"
26
26
  when 'scroll' then
27
27
  "page.execute_script('window.scrollBy(0,' + (page.execute_script('return document.body.scrollHeight') * #{action[:amountPercent]} / 100).to_s + ')')"
28
28
  when 'resolution' then "page.driver.browser.manage.window.resize_to(#{action[:resolution].join(',')})"
data/lib/superbot/cli.rb CHANGED
@@ -1,13 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "clamp"
4
- # TODO
5
- Clamp.allow_options_after_parameters = true
6
-
7
3
  module Superbot
8
4
  module CLI
9
5
  end
10
6
  end
11
7
 
12
- require_relative "cli/validations"
13
8
  require_relative "cli/root_command"
@@ -2,7 +2,6 @@
2
2
 
3
3
  require_relative "new_command"
4
4
  require_relative "run_command"
5
- require_relative "teleport_command"
6
5
  require_relative "version_command"
7
6
  require_relative "record_command"
8
7
 
@@ -17,13 +16,20 @@ module Superbot
17
16
  end
18
17
 
19
18
  subcommand ["version"], "Show version information", VersionCommand
20
- subcommand ["teleport"], "Open a teleport for superbots", TeleportCommand if ENV['SUPERBOT_FEAT_TELEPORT'] == 'true'
21
19
  subcommand ["record"], "Open browser with selenium ide pre-loaded", RecordCommand if ENV['SUPERBOT_FEAT_RECORD'] == 'true'
22
20
  if ENV['SUPERBOT_FEAT_PROJECT'] == 'true'
23
21
  subcommand ["new"], "Create a new project", NewCommand
24
22
  subcommand ["run"], "Run a project", RunCommand
25
23
  end
26
24
 
25
+ if defined?(::Superbot::Cloud::CLI::RootCommand)
26
+ subcommand ["cloud"], "Show cloud commands", ::Superbot::Cloud::CLI::RootCommand
27
+ end
28
+
29
+ if defined?(::Superbot::Teleport::CLI::RootCommand)
30
+ subcommand ["teleport"], "Open teleport to the cloud", ::Superbot::Teleport::CLI::RootCommand
31
+ end
32
+
27
33
  def self.run
28
34
  super
29
35
  rescue StandardError => exc
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "capybara/convert"
4
+ require_relative "capybara/runner"
5
+ require_relative "convert/web"
6
+
7
+ module Superbot
8
+ module Convert
9
+ end
10
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Superbot
4
+ module Convert
5
+ module Web
6
+ def self.register(sinatra)
7
+ sinatra.helpers do
8
+ def capybara_runner
9
+ @capybara_runner ||= Superbot::Capybara::Runner.new
10
+ end
11
+ end
12
+
13
+ sinatra.post "/__superbot/v1/convert" do
14
+ begin
15
+ converted_script = Superbot::Capybara::Convert.call(request.body.read)
16
+ capybara_runner.run(converted_script)
17
+ halt 200
18
+ rescue SystemExit => e
19
+ e.message
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Superbot
4
- VERSION = "0.1.27"
4
+ VERSION = "0.1.28"
5
5
  end
data/lib/superbot/web.rb CHANGED
@@ -4,19 +4,15 @@ require "sinatra/base"
4
4
  require "sinatra/silent"
5
5
  require "net/http"
6
6
 
7
- require_relative "capybara/convert"
8
- require_relative "capybara/runner"
9
-
10
7
  module Superbot
11
8
  class Web
12
9
  def initialize(webdriver_type: 'cloud', region: nil)
13
10
  @sinatra = Sinatra.new
14
- @sinatra.set :bind, ENV.fetch('SUPERBOT_TELEPORT_BIND_ADDRESS', '127.0.0.1')
11
+ @sinatra.set :bind, ENV.fetch('SUPERBOT_BIND_ADDRESS', '127.0.0.1')
15
12
  @sinatra.set :silent_sinatra, true
16
13
  @sinatra.set :silent_webrick, true
17
14
  @sinatra.set :silent_access_log, false
18
15
  @sinatra.server_settings[:Silent] = true
19
- instance = self
20
16
 
21
17
  @sinatra.before do
22
18
  headers['Access-Control-Allow-Methods'] = 'GET, POST, PUT, DELETE, OPTIONS'
@@ -33,117 +29,23 @@ module Superbot
33
29
  "PONG"
34
30
  end
35
31
 
36
- @sinatra.post "/__superbot/v1/convert" do
37
- begin
38
- converted_script = Superbot::Capybara::Convert.call(request.body.read)
39
- instance.capybara_runner.run(converted_script)
40
- halt 200
41
- rescue SystemExit => e
42
- e.message
43
- end
44
- end
45
-
46
- @webdriver_type = webdriver_type
47
- webdriver_uri = URI.parse(Superbot.webdriver_endpoint(@webdriver_type))
48
- @request_settings = {
49
- scheme: webdriver_uri.scheme,
50
- host: webdriver_uri.host,
51
- port: webdriver_uri.port,
52
- path: webdriver_uri.path
53
- }
54
- @region = region
55
-
56
- %w(get post put patch delete).each do |verb|
57
- @sinatra.send(verb, "/wd/hub/*") do
58
- begin
59
- request_path = request.path_info
60
- request_path.delete!('/wd/hub', '') if @webdriver_type == 'local'
61
- content_type 'application/json'
62
- response = instance.remote_webdriver_request(
63
- verb.capitalize,
64
- request_path,
65
- request.query_string,
66
- request.body,
67
- instance.incomming_headers(request)
68
- )
69
- status response.code
70
- headers instance.all_headers(response)
71
- response.body
72
- rescue StandardError => e
73
- error_message = "Remote webdriver doesn't respond"
74
- puts error_message, e
75
- halt 500, { message: error_message }.to_json
76
- end
77
- end
32
+ if defined?(Superbot::Teleport::Web)
33
+ Superbot::Teleport::Web.register(@sinatra, webdriver_type: webdriver_type, region: region)
78
34
  end
35
+ Superbot::Cloud::Web.register(@sinatra) if defined?(Superbot::Cloud::Web)
36
+ Superbot::Convert::Web.register(@sinatra) if defined?(Superbot::Convert::Web)
79
37
  end
80
38
 
81
- def capybara_runner
82
- @capybara_runner ||= Superbot::Capybara::Runner.new
83
- end
84
-
85
- def remote_webdriver_request(type, path, query_string, body, new_headers)
86
- uri = URI.const_get(@request_settings[:scheme].upcase).build(
87
- @request_settings.merge(
88
- path: @request_settings[:path] + path,
89
- query: query_string.empty? ? nil : query_string
90
- )
91
- )
92
- req = Net::HTTP.const_get(type).new(uri, new_headers.merge('Content-Type' => 'application/json'))
93
-
94
- request_body = body.read
95
- if cloud_teleport?
96
- user_auth_creds = Superbot::Cloud.credentials&.slice(:username, :token)
97
- req.basic_auth(*user_auth_creds.values) if user_auth_creds
98
-
99
- if @region && creating_session?(type, path)
100
- parsed_body = JSON.parse(request_body)
101
- parsed_body['desiredCapabilities']['superOptions'] = { 'region': @region }
102
- request_body = parsed_body.to_json
103
- end
104
- end
105
- req.body = request_body
106
-
107
- Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
108
- http.verify_mode = OpenSSL::SSL::VERIFY_PEER
109
- http.read_timeout = Superbot.cloud_timeout
110
- http.request(req)
111
- end.tap do |response|
112
- output_response_errors(response)
113
- end
39
+ def self.run!(options = { webdriver_type: 'cloud', region: nil })
40
+ new(options).tap(&:run!)
114
41
  end
115
42
 
116
- def cloud_teleport?
117
- %w(cloud local_cloud).include?(@webdriver_type)
118
- end
119
-
120
- def creating_session?(method, path)
121
- method.casecmp?('post') && path == '/session'
122
- end
123
-
124
- def all_headers(response)
125
- header_list = {}
126
- response.header.each_capitalized do |k, v|
127
- header_list[k] = v unless k == "Transfer-Encoding"
128
- end
129
- header_list
130
- end
131
-
132
- def incomming_headers(request)
133
- request.env.map { |header, value| [header[5..-1].split("_").map(&:capitalize).join('-'), value] if header.start_with?("HTTP_") }.compact.to_h
134
- end
135
-
136
- def output_response_errors(response)
137
- return unless response.is_a?(Net::HTTPClientError) || response.is_a?(Net::HTTPServerError)
138
-
139
- parsed_body = JSON.parse(response.body, symbolize_names: true)
140
- puts "Error: #{parsed_body[:error]}"
141
- rescue JSON::ParserError
142
- puts "Request to webdriver failed with status: #{response.code}"
43
+ def run_async!
44
+ @sinatra.run_async!
143
45
  end
144
46
 
145
47
  def run!
146
- @sinatra.run_async!
48
+ @sinatra.run!
147
49
  end
148
50
 
149
51
  def run_async_after_running!
data/superbot.gemspec CHANGED
@@ -34,19 +34,19 @@ Gem::Specification.new do |spec|
34
34
 
35
35
  spec.add_runtime_dependency "clamp", "1.2.1"
36
36
  spec.add_runtime_dependency "zaru", "0.2.0"
37
- spec.add_runtime_dependency "sinatra", "2.0.3"
37
+ spec.add_runtime_dependency "sinatra", "2.0.4"
38
38
  spec.add_runtime_dependency "launchy", "2.4.3"
39
39
  spec.add_runtime_dependency "sinatra-silent", "0.0.1"
40
40
  spec.add_runtime_dependency "kommando", "~> 0.1"
41
- spec.add_runtime_dependency "superbot-cloud", "~> 0.1.18"
41
+ spec.add_runtime_dependency "superbot-cloud", "~> 0.1.19"
42
+ spec.add_runtime_dependency "superbot-teleport", "~> 0.2.1"
42
43
  spec.add_runtime_dependency "selenium-webdriver", "~> 3.14", ">= 3.14.0"
43
44
 
44
- spec.add_development_dependency "bundler", "~> 1.16"
45
+ spec.add_development_dependency "bundler", "~> 1.17"
45
46
  spec.add_development_dependency "rake", "~> 10.0"
46
47
  spec.add_development_dependency "rspec", "~> 3.0"
47
48
  spec.add_development_dependency "rubocop", "~> 0.53"
48
49
  spec.add_development_dependency "simplecov", "~> 0.16"
49
- spec.add_development_dependency "parallel_tests", "~> 2.22"
50
50
  spec.add_development_dependency "excon", "~> 0.62"
51
51
 
52
52
  spec.add_development_dependency "guard", "~> 2.14"
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.27
4
+ version: 0.1.28
5
5
  platform: ruby
6
6
  authors:
7
7
  - Superbots
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-12-05 00:00:00.000000000 Z
11
+ date: 2018-12-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: clamp
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - '='
46
46
  - !ruby/object:Gem::Version
47
- version: 2.0.3
47
+ version: 2.0.4
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - '='
53
53
  - !ruby/object:Gem::Version
54
- version: 2.0.3
54
+ version: 2.0.4
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: launchy
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -100,48 +100,62 @@ dependencies:
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: 0.1.18
103
+ version: 0.1.19
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: 0.1.18
110
+ version: 0.1.19
111
111
  - !ruby/object:Gem::Dependency
112
- name: selenium-webdriver
112
+ name: superbot-teleport
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: '3.14'
118
- - - ">="
119
- - !ruby/object:Gem::Version
120
- version: 3.14.0
117
+ version: 0.2.1
121
118
  type: :runtime
122
119
  prerelease: false
123
120
  version_requirements: !ruby/object:Gem::Requirement
124
121
  requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: 0.2.1
125
+ - !ruby/object:Gem::Dependency
126
+ name: selenium-webdriver
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: 3.14.0
125
132
  - - "~>"
126
133
  - !ruby/object:Gem::Version
127
134
  version: '3.14'
135
+ type: :runtime
136
+ prerelease: false
137
+ version_requirements: !ruby/object:Gem::Requirement
138
+ requirements:
128
139
  - - ">="
129
140
  - !ruby/object:Gem::Version
130
141
  version: 3.14.0
142
+ - - "~>"
143
+ - !ruby/object:Gem::Version
144
+ version: '3.14'
131
145
  - !ruby/object:Gem::Dependency
132
146
  name: bundler
133
147
  requirement: !ruby/object:Gem::Requirement
134
148
  requirements:
135
149
  - - "~>"
136
150
  - !ruby/object:Gem::Version
137
- version: '1.16'
151
+ version: '1.17'
138
152
  type: :development
139
153
  prerelease: false
140
154
  version_requirements: !ruby/object:Gem::Requirement
141
155
  requirements:
142
156
  - - "~>"
143
157
  - !ruby/object:Gem::Version
144
- version: '1.16'
158
+ version: '1.17'
145
159
  - !ruby/object:Gem::Dependency
146
160
  name: rake
147
161
  requirement: !ruby/object:Gem::Requirement
@@ -198,20 +212,6 @@ dependencies:
198
212
  - - "~>"
199
213
  - !ruby/object:Gem::Version
200
214
  version: '0.16'
201
- - !ruby/object:Gem::Dependency
202
- name: parallel_tests
203
- requirement: !ruby/object:Gem::Requirement
204
- requirements:
205
- - - "~>"
206
- - !ruby/object:Gem::Version
207
- version: '2.22'
208
- type: :development
209
- prerelease: false
210
- version_requirements: !ruby/object:Gem::Requirement
211
- requirements:
212
- - - "~>"
213
- - !ruby/object:Gem::Version
214
- version: '2.22'
215
215
  - !ruby/object:Gem::Dependency
216
216
  name: excon
217
217
  requirement: !ruby/object:Gem::Requirement
@@ -303,9 +303,10 @@ files:
303
303
  - lib/superbot/cli/record_command.rb
304
304
  - lib/superbot/cli/root_command.rb
305
305
  - lib/superbot/cli/run_command.rb
306
- - lib/superbot/cli/teleport_command.rb
307
306
  - lib/superbot/cli/validations.rb
308
307
  - lib/superbot/cli/version_command.rb
308
+ - lib/superbot/convert.rb
309
+ - lib/superbot/convert/web.rb
309
310
  - lib/superbot/project.rb
310
311
  - lib/superbot/version.rb
311
312
  - lib/superbot/web.rb
@@ -330,7 +331,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
330
331
  version: '0'
331
332
  requirements: []
332
333
  rubyforge_project:
333
- rubygems_version: 2.7.6
334
+ rubygems_version: 2.7.8
334
335
  signing_key:
335
336
  specification_version: 4
336
337
  summary: Superbot Testing
@@ -1,54 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "superbot/cloud/cli/cloud/validations"
4
-
5
- module Superbot
6
- module CLI
7
- class TeleportCommand < Clamp::Command
8
- include Superbot::Validations
9
- include Superbot::Cloud::Validations
10
-
11
- option ['--browser'], 'BROWSER', "Browser type to use. Can be either local or cloud", default: 'cloud' do |browser|
12
- validates_browser_type browser
13
- end
14
- option ['--region'], 'REGION', 'Region for remote webdriver'
15
-
16
- def execute
17
- require_login unless browser == 'local'
18
-
19
- @web = Superbot::Web.new(webdriver_type: browser, region: region)
20
- @web.run_async_after_running!
21
-
22
- @chromedriver = Kommando.run_async 'chromedriver --silent --port=9515' if browser == 'local'
23
-
24
- puts "", "🤖 Teleport is open ☁️ "
25
- puts "", "Configure your webdriver to http://localhost:4567/wd/hub"
26
- puts "", "Press [control+c] to close teleport"
27
-
28
- handle_keyboard_interrupt
29
- ensure
30
- close_teleport
31
- end
32
-
33
- def handle_keyboard_interrupt
34
- @interrupted = false
35
-
36
- trap "SIGINT" do
37
- puts
38
- puts "Command killed by keyboard interrupt"
39
- @interrupted = true
40
- exit 130
41
- end
42
-
43
- loop do
44
- break if @interrupted
45
- end
46
- end
47
-
48
- def close_teleport
49
- @chromedriver&.kill
50
- @web&.quit!
51
- end
52
- end
53
- end
54
- end