appium_lib_core 5.0.0.beta4 → 5.0.0.rc1

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: 6bc30b79d80c1606288087e36a6ed024c3be91ffbc6c5b8b04c9c9c1537d1d9e
4
- data.tar.gz: 06b4f5cdbadb770ce7ce4eecd3fcdaf78c002c13982b6a0573e30a0c3aee9d02
3
+ metadata.gz: fc513ad9f9ba5689303763b09a884af18e1a9eb80e78a6e05cf838551905f732
4
+ data.tar.gz: 59241d4d8626cf39eeb63a51291f18deca6759bdba95a8e2bb942173e0b5df9e
5
5
  SHA512:
6
- metadata.gz: c68d806651e436131ebd91c9f9b520a8de1a95ad82ee67988c7f475b6ce2c016b50fa15e1ee4f0813f55d59e5237bea34c209096436807ba7f8eb2ac9afbb123
7
- data.tar.gz: 3982388d81e2d3d59b51cde803e5e83521772700fc8a82d0733ba650c25b2f46578bb9490113a8792a5b5e24d22488110ff3a6e727cb8d22a210c6bf4fb8632e
6
+ metadata.gz: 867c6a7bfbdf95243fae3a6292f0349bf9bda1fbb83b44cb7d2e12e8f5e0ecb2f41fb6103aeebdcaaded1024cbb16cd2d758d73bef9bf00697325d75b5c2d027
7
+ data.tar.gz: 345771f473fca33668d101f00be374ebb3b345b6795c5392b9955da73bb45588e5589b70ba8c983ce161e35c311b2f18adfd7bac3a8d816ba93863820b05b4f6
data/CHANGELOG.md CHANGED
@@ -5,6 +5,7 @@ Read `release_notes.md` for commit level details.
5
5
  ## [Unreleased]
6
6
 
7
7
  ### Enhancements
8
+ - Allow to override an existing method by `Appium::Core::Base::Driver#add_command` since Appium drivers/plugins allow to override them
8
9
 
9
10
  ### Bug fixes
10
11
 
@@ -17,6 +18,11 @@ Read `release_notes.md` for commit level details.
17
18
  - Support Ruby 2.5+
18
19
  - Raises `::Appium::Core::Error::ArgumentError` instead of `ArgumentError` for this library specific argument errors
19
20
 
21
+ ## [4.7.0] - 2021-07-17
22
+
23
+ ### Enhancements
24
+ - Add `satellites` option in `Appium::Core::Base::Driver#set_location`
25
+
20
26
  ## [4.6.0] - 2021-06-03
21
27
 
22
28
  ### Enhancements
@@ -25,7 +31,7 @@ Read `release_notes.md` for commit level details.
25
31
  ## [4.5.0] - 2021-03-14
26
32
 
27
33
  ### Enhancements
28
- - Add `speed` argument for `Appium::Core::Base::Driver#set_location` since Appium 1.21.0
34
+ - Add `speed` argument for `Appium::Core::Base::Driver#set_location` since Appium 1.21.0
29
35
  - Add `multiple` and `match_neighbour_threshold` arguments for `Appium::Core::Base::Driver#find_image_occurrence`
30
36
 
31
37
  ## [4.4.1(4.4.0)] - 2021-02-15(2021-02-13)
data/Rakefile CHANGED
@@ -38,6 +38,7 @@ namespace :test do
38
38
  namespace :unit do
39
39
  desc('Run all iOS related unit tests in test directory')
40
40
  Rake::TestTask.new(:ios) do |t|
41
+ ENV['UNIT_TEST'] = '1'
41
42
  t.libs << 'test'
42
43
  t.libs << 'lib'
43
44
  t.test_files = FileList['test/unit/ios/**/*_test.rb']
@@ -45,6 +46,7 @@ namespace :test do
45
46
 
46
47
  desc('Run all Android related unit tests in test directory')
47
48
  Rake::TestTask.new(:android) do |t|
49
+ ENV['UNIT_TEST'] = '1'
48
50
  t.libs << 'test'
49
51
  t.libs << 'lib'
50
52
  t.test_files = FileList['test/unit/android/**/*_test.rb']
@@ -52,6 +54,7 @@ namespace :test do
52
54
 
53
55
  desc('Run all common related unit tests in test directory')
54
56
  Rake::TestTask.new(:common) do |t|
57
+ ENV['UNIT_TEST'] = '1'
55
58
  t.libs << 'test'
56
59
  t.libs << 'lib'
57
60
  t.test_files = FileList['test/unit/common/**/*_test.rb']
@@ -59,6 +62,7 @@ namespace :test do
59
62
 
60
63
  desc('Run all Windows related unit tests in test directory')
61
64
  Rake::TestTask.new(:windows) do |t|
65
+ ENV['UNIT_TEST'] = '1'
62
66
  t.libs << 'test'
63
67
  t.libs << 'lib'
64
68
  t.test_files = FileList['test/unit/windows/**/*_test.rb']
@@ -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', '4.0.0.beta4'
25
+ spec.add_runtime_dependency 'selenium-webdriver', '4.0.0.rc1'
26
26
  spec.add_runtime_dependency 'faye-websocket', '~> 0.11.0'
27
27
 
28
28
  spec.add_development_dependency 'bundler', '>= 1.14'
@@ -30,8 +30,8 @@ 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.13.0'
34
- spec.add_development_dependency 'rubocop', '1.12.0'
33
+ spec.add_development_dependency 'webmock', '~> 3.14.0'
34
+ spec.add_development_dependency 'rubocop', '1.12.1'
35
35
  spec.add_development_dependency 'appium_thor', '~> 1.0'
36
36
  spec.add_development_dependency 'pry'
37
37
  spec.add_development_dependency 'pry-byebug'
@@ -103,7 +103,7 @@ jobs:
103
103
  - template: ./functional/ios_setup.yml
104
104
  parameters:
105
105
  xcodeVersion: ${{ parameters.xcodeForIOS }}
106
- - script: brew install ffmpeg && brew tap wix/brew && brew install wix/brew/applesimutils
106
+ - script: brew install ffmpeg && brew tap wix/brew && brew install applesimutils
107
107
  displayName: Install ffmpeg and applesimutils
108
108
  - template: ./functional/run_appium.yml
109
109
  - script: bundle exec rake test:func:ios TESTS=test/functional/ios/ios/mjpeg_server_test.rb,test/functional/ios/ios/mobile_commands_test.rb
@@ -9,7 +9,7 @@ We can invoke them via `execute_script` command with `mobile:` arguments.
9
9
  - https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/android
10
10
  - iOS:
11
11
  - https://github.com/appium/appium/tree/master/docs/en/writing-running-appium/ios
12
-
12
+
13
13
 
14
14
  ```ruby
15
15
  # Android shell : https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/android/android-shell.md
@@ -28,7 +28,8 @@ To handle it, we would recommend you to handle the error based on the error mess
28
28
 
29
29
  ```ruby
30
30
  error = assert_raises ::Selenium::WebDriver::Error::UnknownError do
31
- @driver.execute_script 'mobile: scrollToPage', { element: el.ref, scrollToPage: -100 }
31
+ _, element_id = el.ref
32
+ @driver.execute_script 'mobile: scrollToPage', { element: element_id, scrollToPage: -100 }
32
33
  end
33
34
  assert error.message.include? 'be a non-negative integer'
34
35
  ```
@@ -133,7 +133,7 @@ module Appium
133
133
 
134
134
  # command for Appium 2.0.
135
135
  def add_command(method:, url:, name:, &block)
136
- raise ::Appium::Core::Error::ArgumentError, "#{name} is already defined" if @available_commands.key? name
136
+ ::Appium::Logger.info "Overriding the method '#{name}' for '#{url}'" if @available_commands.key? name
137
137
 
138
138
  @available_commands[name] = [method, url]
139
139
 
@@ -207,7 +207,8 @@ module Appium
207
207
  # For W3C
208
208
  # https://github.com/SeleniumHQ/selenium/commit/b618499adcc3a9f667590652c5757c0caa703289
209
209
  # execute_atom :isDisplayed, element
210
- execute :is_element_displayed, id: element.ref
210
+ _, element_id = element.ref
211
+ execute :is_element_displayed, id: element_id
211
212
  end
212
213
 
213
214
  # For Appium
@@ -215,7 +216,8 @@ module Appium
215
216
  def element_attribute(element, name)
216
217
  # For W3C in Selenium Client
217
218
  # execute_atom :getAttribute, element, name
218
- execute :get_element_attribute, id: element.ref, name: name
219
+ _, element_id = element.ref
220
+ execute :get_element_attribute, id: element_id, name: name
219
221
  end
220
222
 
221
223
  # For Appium
@@ -227,26 +229,39 @@ module Appium
227
229
 
228
230
  # For Appium
229
231
  # override
230
- def find_element_by(how, what, parent = nil)
232
+ def find_element_by(how, what, parent_ref = [])
231
233
  how, what = convert_locator(how, what)
232
234
 
233
- id = if parent
234
- execute :find_child_element, { id: parent }, { using: how, value: what }
235
+ return execute_atom(:findElements, Support::RelativeLocator.new(what).as_json).first if how == 'relative'
236
+
237
+ parent_type, parent_id = parent_ref
238
+ id = case parent_type
239
+ when :element
240
+ execute :find_child_element, { id: parent_id }, { using: how, value: what.to_s }
241
+ when :shadow_root
242
+ execute :find_shadow_child_element, { id: parent_id }, { using: how, value: what.to_s }
235
243
  else
236
- execute :find_element, {}, { using: how, value: what }
244
+ execute :find_element, {}, { using: how, value: what.to_s }
237
245
  end
246
+
238
247
  ::Appium::Core::Element.new self, element_id_from(id)
239
248
  end
240
249
 
241
250
  # For Appium
242
251
  # override
243
- def find_elements_by(how, what, parent = nil)
252
+ def find_elements_by(how, what, parent_ref = [])
244
253
  how, what = convert_locator(how, what)
245
254
 
246
- ids = if parent
247
- execute :find_child_elements, { id: parent }, { using: how, value: what }
255
+ return execute_atom :findElements, Support::RelativeLocator.new(what).as_json if how == 'relative'
256
+
257
+ parent_type, parent_id = parent_ref
258
+ ids = case parent_type
259
+ when :element
260
+ execute :find_child_elements, { id: parent_id }, { using: how, value: what.to_s }
261
+ when :shadow_root
262
+ execute :find_shadow_child_elements, { id: parent_id }, { using: how, value: what.to_s }
248
263
  else
249
- execute :find_elements, {}, { using: how, value: what }
264
+ execute :find_elements, {}, { using: how, value: what.to_s }
250
265
  end
251
266
 
252
267
  ids.map { |id| ::Appium::Core::Element.new self, element_id_from(id) }
@@ -283,9 +298,10 @@ module Appium
283
298
 
284
299
  # For Appium
285
300
  # No implementation for W3C webdriver module
286
- def set_location(lat, lon, alt = 0.0, speed: nil)
301
+ def set_location(lat, lon, alt = 0.0, speed: nil, satellites: nil)
287
302
  loc = { latitude: lat, longitude: lon, altitude: alt }
288
303
  loc[:speed] = speed unless speed.nil?
304
+ loc[:satellites] = satellites unless satellites.nil?
289
305
  execute :set_location, {}, { location: loc }
290
306
  end
291
307
 
@@ -326,12 +342,12 @@ module Appium
326
342
  execute :get_log_events, {}, args
327
343
  end
328
344
 
329
- def take_viewport_screenshot
345
+ def viewport_screenshot
330
346
  execute_script('mobile: viewportScreenshot')
331
347
  end
332
348
 
333
- def take_element_screenshot(element)
334
- execute :take_element_screenshot, id: element.ref
349
+ def element_screenshot(element_id)
350
+ execute :take_element_screenshot, id: element_id
335
351
  end
336
352
 
337
353
  private
@@ -57,8 +57,6 @@ module Appium
57
57
  # @return [::Appium::Core::Base::Bridge]
58
58
  #
59
59
  def create_bridge(**opts)
60
- # TODO: probably Appium does not need this.
61
- opts[:url] ||= service_url(opts)
62
60
  caps = opts.delete(:capabilities)
63
61
  # NOTE: This is deprecated
64
62
  cap_array = caps.is_a?(Hash) ? [caps] : Array(caps)
@@ -125,8 +123,17 @@ module Appium
125
123
  # Other place holders can be specified with +:+ prefix like +:id+.
126
124
  # Then, the +:id+ will be replaced with a given value as the seconds argument of +execute+
127
125
  # @param [Symbol] name The name of method that is called as the driver instance method.
128
- # @param [Proc] block The block to involve as the method
129
- # @raise [ArgumentError] If the given +name+ is already defined or +method+ are invalid value.
126
+ # @param [Proc] block The block to involve as the method.
127
+ # Please define a method that has the same +name+ with arguments you want.
128
+ # The method must has +execute+ method. tHe +execute+ is calls the +url+
129
+ # with the given parameters.
130
+ # The first argument should be +name+ as symbol.
131
+ # The second argument should be hash. If keys in the hash matches +:+ prefix
132
+ # string in the given url, the matched string in the given url will be
133
+ # values in the hash.
134
+ # The third argument should be hash. The hash will be the request body.
135
+ # Please read examples below for more details.
136
+ # @raise [ArgumentError] If the given +method+ is invalid value.
130
137
  #
131
138
  # @example
132
139
  #
@@ -153,6 +160,7 @@ module Appium
153
160
  # # ':session_id' in the given 'url' is replaced with current 'session id'.
154
161
  # @driver.test_command(1)
155
162
  #
163
+ #
156
164
  # @driver.add_command(
157
165
  # method: :post,
158
166
  # url: 'session/:session_id/element/:id/custom/action',
@@ -167,7 +175,8 @@ module Appium
167
175
  # # ':session_id' in the given url is replaced with current 'session id'.
168
176
  # # ':id' in the given url is replaced with the given 'element_id'.
169
177
  # e = @driver.find_element :accessibility_id, 'an element'
170
- # @driver.test_action_command(e.ref, 'action')
178
+ # _, element_id = e.ref
179
+ # @driver.test_action_command(element_id, 'action')
171
180
  #
172
181
  def add_command(method:, url:, name:, &block)
173
182
  unless AVAILABLE_METHODS.include? method
@@ -434,30 +443,6 @@ module Appium
434
443
  end
435
444
  alias set_context context=
436
445
 
437
- # Set the value to element directly
438
- #
439
- # @example
440
- #
441
- # @driver.set_immediate_value element, 'hello'
442
- #
443
- def set_immediate_value(element, *value)
444
- ::Appium::Logger.warn '[DEPRECATION] driver#set_immediate_value(element, *value) is deprecated. ' \
445
- 'Use Element#immediate_value(*value) instead'
446
- @bridge.set_immediate_value(element, *value)
447
- end
448
-
449
- # Replace the value to element directly
450
- #
451
- # @example
452
- #
453
- # @driver.replace_value element, 'hello'
454
- #
455
- def replace_value(element, *value)
456
- ::Appium::Logger.warn '[DEPRECATION] driver#replace_value(element, *value) is deprecated. ' \
457
- 'Use Element#replace_value(*value) instead'
458
- @bridge.replace_value(element, *value)
459
- end
460
-
461
446
  # Place a file in a specific location on the device.
462
447
  # On iOS, the server should have ifuse libraries installed and configured properly for this feature to work on
463
448
  # real devices.
@@ -52,19 +52,26 @@ module Appium
52
52
  # @param [String, Number] latitude Set the latitude.
53
53
  # @param [String, Number] longitude Set the longitude.
54
54
  # @param [String, Number] altitude Set the altitude.
55
- # @param [String, Number] speed Set the speed to apply the location on Android real devices @since Appium 1.21.0.
55
+ # @param [String, Number] speed Set the speed to apply the location on Android real devices
56
+ # in meters/second @since Appium 1.21.0 and in knots for emulators @since Appium 1.22.0.
57
+ # @param [String, Number] satellites Sets the count of geo satellites being tracked in range 1..12 @since Appium 1.22.0.
58
+ # This number is respected on Emulators.
56
59
  # @param [::Selenium::WebDriver::Location]
57
60
  #
58
61
  # @example
59
62
  #
60
63
  # driver.location = ::Selenium::WebDriver::Location.new(10, 10, 10)
61
64
  #
62
- def set_location(latitude, longitude, altitude, speed: nil)
63
- if speed.nil?
65
+ def set_location(latitude, longitude, altitude, speed: nil, satellites: nil)
66
+ if speed.nil? && satellites.nil?
64
67
  self.location = ::Selenium::WebDriver::Location.new(Float(latitude), Float(longitude), Float(altitude))
65
68
  else
66
69
  loc = ::Selenium::WebDriver::Location.new(Float(latitude), Float(longitude), Float(altitude))
67
- @bridge.set_location loc.latitude, loc.longitude, loc.altitude, speed: Float(speed)
70
+
71
+ speed = Float(speed) unless speed.nil?
72
+ satellites = Integer(satellites) unless satellites.nil?
73
+
74
+ @bridge.set_location loc.latitude, loc.longitude, loc.altitude, speed: speed, satellites: satellites
68
75
  end
69
76
  end
70
77
  end
@@ -82,11 +82,12 @@ module Appium
82
82
  # @@driver.element_screenshot_as element, :base64 #=> "iVBORw0KGgoAAAANSUhEUgAABDgAAAB+CAIAAABOPDa6AAAAAX"
83
83
  #
84
84
  def element_screenshot_as(element, format)
85
+ _, element_id = element.ref
85
86
  case format
86
87
  when :base64
87
- bridge.take_element_screenshot(element)
88
+ bridge.element_screenshot element_id
88
89
  when :png
89
- bridge.take_element_screenshot(element).unpack('m')[0]
90
+ bridge.element_screenshot(element_id).unpack('m')[0]
90
91
  else
91
92
  raise Core::Error::UnsupportedOperationError, "unsupported format: #{format.inspect}"
92
93
  end
@@ -106,7 +107,7 @@ module Appium
106
107
  ::Appium::Logger.warn 'name used for saved screenshot does not match file type. '\
107
108
  'It should end with .png extension'
108
109
  end
109
- viewport_screenshot_encode64 = bridge.take_viewport_screenshot
110
+ viewport_screenshot_encode64 = bridge.viewport_screenshot
110
111
  File.open(png_path, 'wb') { |f| f << viewport_screenshot_encode64.unpack('m')[0] }
111
112
  end
112
113
  end
@@ -17,12 +17,12 @@ module Appium
17
17
  class Base
18
18
  module Device
19
19
  module Value
20
- def set_immediate_value(element, *value)
21
- execute :set_immediate_value, { id: element.ref }, generate_value_and_text(value)
20
+ def set_immediate_value(element_id, *value)
21
+ execute :set_immediate_value, { id: element_id }, generate_value_and_text(value)
22
22
  end
23
23
 
24
- def replace_value(element, *value)
25
- execute :replace_value, { id: element.ref }, generate_value_and_text(value)
24
+ def replace_value(element_id, *value)
25
+ execute :replace_value, { id: element_id }, generate_value_and_text(value)
26
26
  end
27
27
 
28
28
  private
@@ -195,7 +195,10 @@ module Appium
195
195
  end
196
196
 
197
197
  def args_with_ele_ref(args)
198
- args[:element] = args[:element].ref if args.key? :element
198
+ if args.key? :element
199
+ _, element_id = args[:element].ref
200
+ args[:element] = element_id
201
+ end
199
202
  args
200
203
  end
201
204
  end # class TouchAction
@@ -59,20 +59,20 @@ module Appium
59
59
  #
60
60
  # @example
61
61
  #
62
- # @driver.immediate_value 'hello'
62
+ # element.immediate_value 'hello'
63
63
  #
64
64
  def immediate_value(*value)
65
- @bridge.set_immediate_value(self, *value)
65
+ @bridge.set_immediate_value @id, *value
66
66
  end
67
67
 
68
68
  # Replace the value to element directly
69
69
  #
70
70
  # @example
71
71
  #
72
- # @driver.replace_value 'hello'
72
+ # element.replace_value 'hello'
73
73
  #
74
74
  def replace_value(*value)
75
- @bridge.replace_value(self, *value)
75
+ @bridge.replace_value @id, *value
76
76
  end
77
77
 
78
78
  # For use with location_rel.
@@ -108,7 +108,7 @@ module Appium
108
108
  # element.screenshot #=> "iVBORw0KGgoAAAANSUhEUgAABDgAAAB+CAIAAABOPDa6AAAAAX"
109
109
  #
110
110
  def screenshot
111
- bridge.take_element_screenshot(self)
111
+ bridge.element_screenshot @id
112
112
  end
113
113
 
114
114
  # Return an element screenshot in the given format
@@ -123,9 +123,9 @@ module Appium
123
123
  def screenshot_as(format)
124
124
  case format
125
125
  when :base64
126
- bridge.take_element_screenshot(self)
126
+ bridge.element_screenshot @id
127
127
  when :png
128
- bridge.take_element_screenshot(self).unpack('m')[0]
128
+ bridge.element_screenshot(@id).unpack('m')[0]
129
129
  else
130
130
  raise Core::Error::UnsupportedOperationError, "unsupported format: #{format.inspect}"
131
131
  end
@@ -14,7 +14,7 @@
14
14
 
15
15
  module Appium
16
16
  module Core
17
- VERSION = '5.0.0.beta4' unless defined? ::Appium::Core::VERSION
18
- DATE = '2021-06-11' unless defined? ::Appium::Core::DATE
17
+ VERSION = '5.0.0.rc1' unless defined? ::Appium::Core::VERSION
18
+ DATE = '2021-09-09' unless defined? ::Appium::Core::DATE
19
19
  end
20
20
  end
data/release_notes.md CHANGED
@@ -1,3 +1,12 @@
1
+ #### v4.7.0 2021-07-17
2
+
3
+ - [0059974](https://github.com/appium/ruby_lib_core/commit/0059974b0b1d79a822db84d8b0169e8393e00ef9) Release 4.7.0
4
+ - [0f93a52](https://github.com/appium/ruby_lib_core/commit/0f93a52bbdc44bf916c9b974fe9fd09d48e5ff39) test: add more example and test (#328)
5
+ - [9e37b3b](https://github.com/appium/ruby_lib_core/commit/9e37b3bc15f72f7c0117a49945a3fe482598f374) feat: add satellites for Android emulators (#327)
6
+ - [3063a73](https://github.com/appium/ruby_lib_core/commit/3063a73fa291dc378daa53b7df2e4b0b8a6f03d2) ci: calls quit_driver to ensure close the previous session
7
+ - [43fb9e7](https://github.com/appium/ruby_lib_core/commit/43fb9e77f5492a92f4f8c5a5bda71be9c3a9e2c8) chore: tweak naming in an internal variable
8
+
9
+
1
10
  #### v4.6.0 2021-06-03
2
11
 
3
12
  - [0dacfab](https://github.com/appium/ruby_lib_core/commit/0dacfab1256e1447e1f7a5974dfcf48ee0a72b9d) Release 4.6.0
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: appium_lib_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.0.0.beta4
4
+ version: 5.0.0.rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kazuaki MATSUO
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-06-12 00:00:00.000000000 Z
11
+ date: 2021-09-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: selenium-webdriver
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 4.0.0.beta4
19
+ version: 4.0.0.rc1
20
20
  type: :runtime
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: 4.0.0.beta4
26
+ version: 4.0.0.rc1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: faye-websocket
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -114,28 +114,28 @@ dependencies:
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: 3.13.0
117
+ version: 3.14.0
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: 3.13.0
124
+ version: 3.14.0
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: rubocop
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - '='
130
130
  - !ruby/object:Gem::Version
131
- version: 1.12.0
131
+ version: 1.12.1
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - '='
137
137
  - !ruby/object:Gem::Version
138
- version: 1.12.0
138
+ version: 1.12.1
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: appium_thor
141
141
  requirement: !ruby/object:Gem::Requirement