appium_lib_core 2.0.5 → 2.0.6

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
  SHA1:
3
- metadata.gz: 364a81fd6f049768204fc9dc30f2f51265176de7
4
- data.tar.gz: 75dc09e05f7772dc5d7ee4423179a0d41d2721e4
3
+ metadata.gz: 50de09b5e32508e0e2841b1905fb3cc0bb4cb8b4
4
+ data.tar.gz: 44d09537b742efbe6639c82c813eae1e8645d21d
5
5
  SHA512:
6
- metadata.gz: 260ec3ebbf46eb42899faffe340c118f7c088c9c904f3d2e392398a7bd7dd7cf11331c4c76b6dad8d877fd58f42f2aae1a20af08dae643463770f444ab02743d
7
- data.tar.gz: 13864b02d704a12247ba774e2bee8ca827ebc5a22bed183657910f45437fd68bacbde2f6c6754870eb9b3b6555dc1db463a84750eb950b786319b0171170bc8e
6
+ metadata.gz: cbcffe7d2fdf5812d106329813c73cf5a0fc125c3b0a5ee6974cebc871bae072091a7dcd6eb0e9312ee6cee86428686028ee402b965c2d1aad347feb3bd630fd
7
+ data.tar.gz: 0f733629ea7fb84cf3bf335f689dcd2a0d5f235567fdd6204b31dbae94baa9ff57273d2eebe2389f097de43c8f7690e1a6de2256090e32c91a8b7054a7e7eb6a
@@ -16,6 +16,8 @@ Metrics/PerceivedComplexity:
16
16
  Max: 10
17
17
  Metrics/ParameterLists:
18
18
  Max: 6
19
+ Lint/NestedMethodDefinition:
20
+ Enabled: false
19
21
  Style/Documentation:
20
22
  Enabled: false
21
23
  Style/CommentedKeyword:
@@ -24,9 +26,9 @@ Style/PercentLiteralDelimiters:
24
26
  Enabled: false
25
27
  Style/BracesAroundHashParameters:
26
28
  Enabled: false
27
- Lint/NestedMethodDefinition:
29
+ Style/SymbolArray:
28
30
  Enabled: false
29
31
  Naming/AccessorMethodName:
30
32
  Enabled: false
31
- Style/SymbolArray:
33
+ Naming/MemoizedInstanceVariableName:
32
34
  Enabled: false
@@ -9,6 +9,15 @@ Read `release_notes.md` for commit level details.
9
9
 
10
10
  ### Deprecations
11
11
 
12
+ ## [2.0.6] - 2018-11-08
13
+ ### Enhancements
14
+ - Allow selenium update following Pi versioning like 3.141.0
15
+ - [internal] Update dev libraries
16
+
17
+ ### Bug fixes
18
+
19
+ ### Deprecations
20
+
12
21
  ## [2.0.5] - 2018-10-30
13
22
  ### Enhancements
14
23
  - [internal] No longer send `strategy: :tapOutside` as default value in Android
data/README.md CHANGED
@@ -34,7 +34,8 @@ $ appium --relaxed-security # To run all tests in local
34
34
  - Conduct tests
35
35
  ```bash
36
36
  $ bundle install
37
- $ rake test:func:android # Andorid
37
+ $ rake test:func:android # Andorid, uiautomator2
38
+ $ AUTOMATION_NAME=espresso rake test:func:android # Andorid, uiautomator2
38
39
  $ rake test:func:ios # iOS
39
40
  ```
40
41
 
@@ -87,7 +88,7 @@ opts = {
87
88
  - Run the script
88
89
  ```bash
89
90
  # shell 1
90
- $ appium
91
+ $ appium --log-level warn:error # show only warning and error logs
91
92
 
92
93
  # shell 2
93
94
  $ ruby test.rb
data/Rakefile CHANGED
@@ -57,8 +57,18 @@ namespace :test do
57
57
  end
58
58
 
59
59
  namespace :android do
60
+ desc('uninstall all of test apks from a test device')
61
+ task :uninstall_test_apks do |_t, _args|
62
+ `adb uninstall io.appium.uiautomator2.server.test`
63
+ `adb uninstall io.appium.uiautomator2.server`
64
+ `adb uninstall io.appium.settings`
65
+ `adb uninstall io.appium.android.ime`
66
+ `adb uninstall io.appium.espressoserver.test`
67
+ end
68
+
69
+
60
70
  desc('Generate and launch android emulators')
61
- task :gen_device do |_t, _args|
71
+ task :gen_device do |_t, _args|
62
72
  SWARMER_VERSION = '0.2.4'
63
73
  CPU_ARCHITECTURE = 'x86'
64
74
  IMAGE = 'google_apis'
@@ -95,10 +105,11 @@ RuboCop::RakeTask.new(:rubocop) do |t|
95
105
  t.fail_on_error = true
96
106
  end
97
107
 
98
- desc("print commands which haven't implemented yet.")
108
+ desc("print commands which Ruby client has not implemented them yet.")
99
109
  namespace :commands do
100
110
  require './script/commands'
101
111
 
112
+ desc('Mobile JSON protocol')
102
113
  task :mjsonwp do |_t, _args|
103
114
  c = Script::CommandsChecker.new
104
115
  c.get_mjsonwp_routes
@@ -106,6 +117,7 @@ namespace :commands do
106
117
  c.all_diff_commands_mjsonwp.each { |key, value| puts("command: #{key}, method: #{value}") }
107
118
  end
108
119
 
120
+ desc('W3C protocol')
109
121
  task :w3c do |_t, _args|
110
122
  c = Script::CommandsChecker.new
111
123
  c.get_mjsonwp_routes
@@ -22,7 +22,7 @@ Gem::Specification.new do |spec|
22
22
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
23
23
  spec.require_paths = ['lib']
24
24
 
25
- spec.add_runtime_dependency 'selenium-webdriver', '~> 3.14.1'
25
+ spec.add_runtime_dependency 'selenium-webdriver', '~> 3.14', '>= 3.14.1'
26
26
  spec.add_runtime_dependency 'faye-websocket', '~> 0.10.0'
27
27
 
28
28
  spec.add_development_dependency 'bundler', '~> 1.14'
@@ -30,9 +30,9 @@ Gem::Specification.new do |spec|
30
30
  spec.add_development_dependency 'yard', '~> 0.9.11'
31
31
  spec.add_development_dependency 'minitest', '~> 5.0'
32
32
  spec.add_development_dependency 'minitest-reporters', '~> 1.1'
33
- spec.add_development_dependency 'webmock', '~> 3.1.0'
34
- spec.add_development_dependency 'rubocop', '0.51.0'
35
- spec.add_development_dependency 'appium_thor', '~> 0.0', '>= 0.0.7'
33
+ spec.add_development_dependency 'webmock', '~> 3.4.0'
34
+ spec.add_development_dependency 'rubocop', '0.60.0'
35
+ spec.add_development_dependency 'appium_thor', '~> 1.0'
36
36
  spec.add_development_dependency 'pry'
37
37
  spec.add_development_dependency 'pry-byebug'
38
38
  spec.add_development_dependency 'parallel_tests'
@@ -20,11 +20,11 @@ module Appium
20
20
 
21
21
  hash.each_with_object({}) do |pair, acc|
22
22
  key = begin
23
- pair[0].to_sym
24
- rescue StandardError => e
25
- ::Appium::Logger.warn(e.message)
26
- pair[0]
27
- end
23
+ pair[0].to_sym
24
+ rescue StandardError => e
25
+ ::Appium::Logger.warn(e.message)
26
+ pair[0]
27
+ end
28
28
 
29
29
  value = pair[1]
30
30
  acc[key] = value.is_a?(Hash) ? symbolize_keys(value) : value
@@ -294,10 +294,13 @@ module Appium
294
294
  ::Appium::Core::Device.add_endpoint_method(:start_activity) do
295
295
  def start_activity(opts)
296
296
  raise 'opts must be a hash' unless opts.is_a? Hash
297
+
297
298
  app_package = opts[:app_package]
298
299
  raise 'app_package is required' unless app_package
300
+
299
301
  app_activity = opts[:app_activity]
300
302
  raise 'app_activity is required' unless app_activity
303
+
301
304
  app_wait_package = opts.fetch(:app_wait_package, '')
302
305
  app_wait_activity = opts.fetch(:app_wait_activity, '')
303
306
 
@@ -135,9 +135,7 @@ module Appium
135
135
 
136
136
  ::Appium::Core::Device.add_endpoint_method(:set_network_speed) do
137
137
  def set_network_speed(netspeed)
138
- unless NET_SPEED.member? netspeed.to_sym
139
- raise "The netspeed should be member of #{NET_SPEED}. Not #{netspeed}."
140
- end
138
+ raise "The netspeed should be member of #{NET_SPEED}. Not #{netspeed}." unless NET_SPEED.member? netspeed.to_sym
141
139
 
142
140
  execute(:set_network_speed, {}, { netspeed: netspeed })
143
141
  end
@@ -145,9 +143,7 @@ module Appium
145
143
 
146
144
  ::Appium::Core::Device.add_endpoint_method(:set_power_capacity) do
147
145
  def set_power_capacity(percent)
148
- unless (0..100).member? percent
149
- raise "The percent should be between 0 and 100. Not #{percent}."
150
- end
146
+ raise "The percent should be between 0 and 100. Not #{percent}." unless (0..100).member? percent
151
147
 
152
148
  execute(:set_power_capacity, {}, { percent: percent })
153
149
  end
@@ -24,6 +24,7 @@ module Appium
24
24
 
25
25
  unless bug_report.nil?
26
26
  raise 'bug_report should be true or false' unless [true, false].member?(bug_report)
27
+
27
28
  option[:bugReport] = bug_report
28
29
  end
29
30
 
@@ -25,6 +25,7 @@ module Appium
25
25
  unless ::Selenium::WebDriver::Remote::Capabilities.respond_to?(desired_capabilities)
26
26
  raise ::Selenium::WebDriver::Error::WebDriverError, "invalid desired capability: #{desired_capabilities.inspect}"
27
27
  end
28
+
28
29
  desired_capabilities = ::Selenium::WebDriver::Remote::Capabilities.__send__(desired_capabilities)
29
30
  end
30
31
 
@@ -105,9 +106,7 @@ module Appium
105
106
  end
106
107
  end
107
108
 
108
- unless @session_id
109
- raise ::Selenium::WebDriver::Error::WebDriverError, 'no sessionId in returned payload'
110
- end
109
+ raise ::Selenium::WebDriver::Error::WebDriverError, 'no sessionId in returned payload' unless @session_id
111
110
 
112
111
  json_create(oss_status, value)
113
112
  end
@@ -281,6 +281,9 @@ module Appium
281
281
  #
282
282
  # @driver.push_file "/file/to/path", "data"
283
283
  #
284
+ # file = File.read "your/path/to/test_image.png"
285
+ # @driver.push_file "/sdcard/Pictures", file # Push a file binary to /sdcard/Pictures path in Android
286
+ #
284
287
  def push_file(path, filedata)
285
288
  @bridge.push_file(path, filedata)
286
289
  end
@@ -4,6 +4,7 @@ module Appium
4
4
  module SearchContext
5
5
  # referenced: ::Selenium::WebDriver::SearchContext
6
6
 
7
+ # rubocop:disable Layout/AlignHash
7
8
  FINDERS = ::Selenium::WebDriver::SearchContext::FINDERS.merge(
8
9
  accessibility_id: 'accessibility id',
9
10
  image: '-image',
@@ -20,6 +21,7 @@ module Appium
20
21
  # Tizen
21
22
  tizen_uiautomation: '-tizen uiautomation'
22
23
  )
24
+ # rubocop:enable Layout/AlignHash
23
25
 
24
26
  #
25
27
  # Find the first element matching the given arguments
@@ -119,6 +121,7 @@ module Appium
119
121
  def _set_by_from_finders(how)
120
122
  by = FINDERS[how.to_sym]
121
123
  raise ArgumentError, "cannot find element by #{how.inspect}. Available finders are #{FINDERS.keys}." unless by
124
+
122
125
  by
123
126
  end
124
127
 
@@ -129,15 +132,12 @@ module Appium
129
132
  when 1
130
133
  arg = args.first
131
134
 
132
- unless arg.respond_to?(:shift)
133
- raise ArgumentError, "expected #{arg.inspect}:#{arg.class} to respond to #shift"
134
- end
135
+ raise ArgumentError, "expected #{arg.inspect}:#{arg.class} to respond to #shift" unless arg.respond_to?(:shift)
135
136
 
136
137
  # this will be a single-entry hash, so use #shift over #first or #[]
137
138
  arr = arg.dup.shift
138
- unless arr.size == 2
139
- raise ArgumentError, "expected #{arr.inspect} to have 2 elements"
140
- end
139
+
140
+ raise ArgumentError, "expected #{arr.inspect} to have 2 elements" unless arr.size == 2
141
141
 
142
142
  arr
143
143
  else
@@ -1,3 +1,4 @@
1
+ # rubocop:disable Layout/AlignHash
1
2
  module Appium
2
3
  module Core
3
4
  # ref: https://github.com/appium/appium-base-driver/blob/master/lib/mjsonwp/routes.js
@@ -87,3 +88,4 @@ module Appium
87
88
  end # module Commands
88
89
  end # module Core
89
90
  end # module Appium
91
+ # rubocop:enable Layout/AlignHash
@@ -1,3 +1,4 @@
1
+ # rubocop:disable Layout/AlignHash
1
2
  module Appium
2
3
  module Core
3
4
  module Commands
@@ -12,3 +13,4 @@ module Appium
12
13
  end # module Commands
13
14
  end # module Core
14
15
  end # Appium
16
+ # rubocop:enable Layout/AlignHash
@@ -1,3 +1,4 @@
1
+ # rubocop:disable Layout/AlignHash
1
2
  module Appium
2
3
  module Core
3
4
  module Commands
@@ -40,3 +41,4 @@ module Appium
40
41
  end # module Commands
41
42
  end # module Core
42
43
  end # module Appium
44
+ # rubocop:enable Layout/AlignHash
@@ -111,12 +111,12 @@ module Appium
111
111
  unless MATCH_FEATURES[:detector_name].member?(detector_name.to_s)
112
112
  raise "detector_name should be #{MATCH_FEATURES[:detector_name]}"
113
113
  end
114
+
114
115
  unless MATCH_FEATURES[:match_func].member?(match_func.to_s)
115
116
  raise "match_func should be #{MATCH_FEATURES[:match_func]}"
116
117
  end
117
- unless MATCH_FEATURES[:visualize].member?(visualize)
118
- raise "visualize should be #{MATCH_FEATURES[:visualize]}"
119
- end
118
+
119
+ raise "visualize should be #{MATCH_FEATURES[:visualize]}" unless MATCH_FEATURES[:visualize].member?(visualize)
120
120
 
121
121
  options = {}
122
122
  options[:detectorName] = detector_name.to_s.upcase
@@ -128,9 +128,7 @@ module Appium
128
128
  end
129
129
 
130
130
  def find_image_occurrence(full_image:, partial_image:, visualize: false, threshold: nil)
131
- unless MATCH_TEMPLATE[:visualize].member?(visualize)
132
- raise "visualize should be #{MATCH_TEMPLATE[:visualize]}"
133
- end
131
+ raise "visualize should be #{MATCH_TEMPLATE[:visualize]}" unless MATCH_TEMPLATE[:visualize].member?(visualize)
134
132
 
135
133
  options = {}
136
134
  options[:visualize] = visualize
@@ -140,9 +138,7 @@ module Appium
140
138
  end
141
139
 
142
140
  def get_images_similarity(first_image:, second_image:, visualize: false)
143
- unless GET_SIMILARITY[:visualize].member?(visualize)
144
- raise "visualize should be #{GET_SIMILARITY[:visualize]}"
145
- end
141
+ raise "visualize should be #{GET_SIMILARITY[:visualize]}" unless GET_SIMILARITY[:visualize].member?(visualize)
146
142
 
147
143
  options = {}
148
144
  options[:visualize] = visualize
@@ -28,6 +28,7 @@ module Appium
28
28
  return if force_restart.nil?
29
29
 
30
30
  raise 'force_restart should be true or false' unless [true, false].member?(force_restart)
31
+
31
32
  @upload_option[:forceRestart] = force_restart
32
33
  end
33
34
 
@@ -45,6 +45,7 @@ module Appium
45
45
  # @private CoreBridge
46
46
  def extend_webdriver_with_forwardable
47
47
  return if ::Appium::Core::Base::Driver.is_a? Forwardable
48
+
48
49
  ::Appium::Core::Base::Driver.class_eval do
49
50
  extend Forwardable
50
51
  end
@@ -58,6 +59,7 @@ module Appium
58
59
 
59
60
  def delegate_driver_method(method)
60
61
  return if ::Appium::Core::Base::Driver.method_defined? method
62
+
61
63
  ::Appium::Core::Base::Driver.class_eval { def_delegator :@bridge, method }
62
64
  end
63
65
 
@@ -132,12 +132,16 @@ module Appium
132
132
  new(opts)
133
133
  end
134
134
 
135
+ private
136
+
135
137
  # @private
136
138
  # For testing purpose of delegate_from_appium_driver
137
- private def delegated_target_for_test
139
+ def delegated_target_for_test
138
140
  @delegate_target
139
141
  end
140
142
 
143
+ public
144
+
141
145
  # @private
142
146
  def initialize(opts = {})
143
147
  @delegate_target = self # for testing purpose
@@ -227,7 +231,7 @@ module Appium
227
231
  private
228
232
 
229
233
  def create_http_client(http_client: nil, open_timeout: nil, read_timeout: nil)
230
- @http_client ||= http_client ? http_client : Appium::Core::Base::Http::Default.new
234
+ @http_client ||= http_client || Appium::Core::Base::Http::Default.new
231
235
 
232
236
  # open_timeout and read_timeout are explicit wait.
233
237
  @http_client.open_timeout = open_timeout if open_timeout
@@ -257,7 +261,7 @@ module Appium
257
261
  #
258
262
  def quit_driver
259
263
  @driver.quit
260
- rescue # rubocop:disable Lint/RescueWithoutErrorClass
264
+ rescue # rubocop:disable Style/RescueStandardError
261
265
  nil
262
266
  end
263
267
 
@@ -284,6 +288,7 @@ module Appium
284
288
  @driver.remote_status
285
289
  rescue Selenium::WebDriver::Error::ServerError => e
286
290
  raise ::Appium::Core::Error::ServerError unless e.message.include?('status code 500')
291
+
287
292
  # driver.remote_status returns 500 error for using selenium grid
288
293
  {}
289
294
  end
@@ -444,6 +449,7 @@ module Appium
444
449
  # @private
445
450
  def set_automation_name_if_nil
446
451
  return unless @automation_name.nil?
452
+
447
453
  @automation_name = if @driver.capabilities['automationName']
448
454
  @driver.capabilities['automationName'].downcase.strip.intern
449
455
  end
@@ -68,3 +68,4 @@ module Appium
68
68
  end
69
69
  end # module Core
70
70
  end # module Appium
71
+ # rubocop:enable Style/ClassAndModuleChildren
@@ -1,6 +1,6 @@
1
1
  module Appium
2
2
  module Core
3
- VERSION = '2.0.5'.freeze unless defined? ::Appium::Core::VERSION
4
- DATE = '2018-10-30'.freeze unless defined? ::Appium::Core::DATE
3
+ VERSION = '2.0.6'.freeze unless defined? ::Appium::Core::VERSION
4
+ DATE = '2018-11-08'.freeze unless defined? ::Appium::Core::DATE
5
5
  end
6
6
  end
@@ -1,3 +1,20 @@
1
+ #### v2.0.6 2018-11-08
2
+
3
+ - [b7ede91](https://github.com/appium/ruby_lib_core/commit/b7ede919a26b4d83b88955cb7d595a8538f5c146) Release 2.0.6
4
+ - [3f04490](https://github.com/appium/ruby_lib_core/commit/3f04490b6c64f38cbc191ac2e4486eefbe3ea727) add desc in some rake tasks
5
+ - [c4670c2](https://github.com/appium/ruby_lib_core/commit/c4670c2a275042d6297067f810de01d00be2333f) Allow update pi versioning (#159)
6
+ - [2dd19fa](https://github.com/appium/ruby_lib_core/commit/2dd19fa70b2fbf4684776ebcd438f133d426a91a) Update mobile_command.md
7
+ - [f8af2e3](https://github.com/appium/ruby_lib_core/commit/f8af2e3e8dbff2e6616c554db6394b42c588ddeb) append a test of push file
8
+ - [442e787](https://github.com/appium/ruby_lib_core/commit/442e787851dfd47a7a0b4caed7f4712444c6ebac) tweak readme
9
+ - [7183715](https://github.com/appium/ruby_lib_core/commit/718371524cbc977b2bf8b0b242f95ba92ca5037a) bump and fix rubocop (#158)
10
+ - [6b9f74d](https://github.com/appium/ruby_lib_core/commit/6b9f74d0b66ebf4a512dee77fa4657230ee27990) remove one todo
11
+ - [3a42bc3](https://github.com/appium/ruby_lib_core/commit/3a42bc301f76466266efa31b7919f6418fc9680b) fix rubocop
12
+ - [92712d4](https://github.com/appium/ruby_lib_core/commit/92712d4dcca1da3902e5aeea8e7eb78c3a116f17) add chrome option into helper
13
+ - [2bfc6b5](https://github.com/appium/ruby_lib_core/commit/2bfc6b53034ab5076fdea3dd67fb01445ab8d7ed) add MjpegServerTest
14
+ - [a84aa18](https://github.com/appium/ruby_lib_core/commit/a84aa18291d003655584262872004c3c835fa70d) add adbExecTimeout as an example for test
15
+ - [6400a8d](https://github.com/appium/ruby_lib_core/commit/6400a8def717cc1deb8933e23c4bfa253cc3e1e6) increase w3c functional tests for android (#157)
16
+
17
+
1
18
  #### v2.0.5 2018-10-30
2
19
 
3
20
  - [3197865](https://github.com/appium/ruby_lib_core/commit/31978651941fb169b2d63bb35aeb6005622ca9bc) Release 2.0.5
@@ -40,7 +40,7 @@ module Script
40
40
  end
41
41
 
42
42
  # @private
43
- HTTP_METHOD_MATCH = /GET:|POST:|DELETE:|PUT:|PATCH:/
43
+ HTTP_METHOD_MATCH = /GET:|POST:|DELETE:|PUT:|PATCH:/.freeze
44
44
  # @private
45
45
  WD_HUB_PREFIX_MATCH = "'/wd/hub/".freeze
46
46
 
metadata CHANGED
@@ -1,20 +1,23 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: appium_lib_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.5
4
+ version: 2.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kazuaki MATSUO
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-10-30 00:00:00.000000000 Z
11
+ date: 2018-11-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: selenium-webdriver
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '3.14'
20
+ - - ">="
18
21
  - !ruby/object:Gem::Version
19
22
  version: 3.14.1
20
23
  type: :runtime
@@ -22,6 +25,9 @@ dependencies:
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
27
  - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '3.14'
30
+ - - ">="
25
31
  - !ruby/object:Gem::Version
26
32
  version: 3.14.1
27
33
  - !ruby/object:Gem::Dependency
@@ -114,48 +120,42 @@ dependencies:
114
120
  requirements:
115
121
  - - "~>"
116
122
  - !ruby/object:Gem::Version
117
- version: 3.1.0
123
+ version: 3.4.0
118
124
  type: :development
119
125
  prerelease: false
120
126
  version_requirements: !ruby/object:Gem::Requirement
121
127
  requirements:
122
128
  - - "~>"
123
129
  - !ruby/object:Gem::Version
124
- version: 3.1.0
130
+ version: 3.4.0
125
131
  - !ruby/object:Gem::Dependency
126
132
  name: rubocop
127
133
  requirement: !ruby/object:Gem::Requirement
128
134
  requirements:
129
135
  - - '='
130
136
  - !ruby/object:Gem::Version
131
- version: 0.51.0
137
+ version: 0.60.0
132
138
  type: :development
133
139
  prerelease: false
134
140
  version_requirements: !ruby/object:Gem::Requirement
135
141
  requirements:
136
142
  - - '='
137
143
  - !ruby/object:Gem::Version
138
- version: 0.51.0
144
+ version: 0.60.0
139
145
  - !ruby/object:Gem::Dependency
140
146
  name: appium_thor
141
147
  requirement: !ruby/object:Gem::Requirement
142
148
  requirements:
143
149
  - - "~>"
144
150
  - !ruby/object:Gem::Version
145
- version: '0.0'
146
- - - ">="
147
- - !ruby/object:Gem::Version
148
- version: 0.0.7
151
+ version: '1.0'
149
152
  type: :development
150
153
  prerelease: false
151
154
  version_requirements: !ruby/object:Gem::Requirement
152
155
  requirements:
153
156
  - - "~>"
154
157
  - !ruby/object:Gem::Version
155
- version: '0.0'
156
- - - ">="
157
- - !ruby/object:Gem::Version
158
- version: 0.0.7
158
+ version: '1.0'
159
159
  - !ruby/object:Gem::Dependency
160
160
  name: pry
161
161
  requirement: !ruby/object:Gem::Requirement