appium_lib_core 9.1.3 → 9.2.1

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.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +10 -0
  3. data/README.md +3 -1
  4. data/Rakefile +5 -0
  5. data/Steepfile +11 -0
  6. data/appium_lib_core.gemspec +2 -1
  7. data/lib/appium_lib_core/android/device/clipboard.rb +4 -2
  8. data/lib/appium_lib_core/android/device/emulator.rb +11 -5
  9. data/lib/appium_lib_core/android/device/screen.rb +3 -1
  10. data/lib/appium_lib_core/android/device.rb +3 -3
  11. data/lib/appium_lib_core/common/base/capabilities.rb +1 -1
  12. data/lib/appium_lib_core/common/base/screenshot.rb +2 -2
  13. data/lib/appium_lib_core/common/device/image_comparison.rb +15 -6
  14. data/lib/appium_lib_core/common/device/screen_record.rb +8 -2
  15. data/lib/appium_lib_core/common/error.rb +1 -0
  16. data/lib/appium_lib_core/driver.rb +21 -11
  17. data/lib/appium_lib_core/element.rb +1 -1
  18. data/lib/appium_lib_core/ios/device/clipboard.rb +4 -2
  19. data/lib/appium_lib_core/version.rb +2 -2
  20. data/rbs_collection.lock.yaml +252 -0
  21. data/rbs_collection.yaml +15 -0
  22. data/sig/gems/selenium/abstract_event_listener.rbs +8 -0
  23. data/sig/gems/selenium/capabilities.rbs +8 -0
  24. data/sig/gems/selenium/common.rbs +10 -0
  25. data/sig/gems/selenium/default.rbs +10 -0
  26. data/sig/gems/selenium/driver.rbs +7 -0
  27. data/sig/gems/selenium/has_session_id.rbs +8 -0
  28. data/sig/gems/selenium/has_web_storage.rbs +8 -0
  29. data/sig/gems/selenium/uploads_files.rbs +8 -0
  30. data/sig/lib/appium_lib_core/common/base/capabilities.rbs +9 -0
  31. data/sig/lib/appium_lib_core/common/base/driver.rbs +167 -0
  32. data/sig/lib/appium_lib_core/common/base/driver_settings.rbs +15 -0
  33. data/sig/lib/appium_lib_core/common/base/has_location.rbs +13 -0
  34. data/sig/lib/appium_lib_core/common/base/has_network_connection.rbs +19 -0
  35. data/sig/lib/appium_lib_core/common/base/http_default.rbs +38 -0
  36. data/sig/lib/appium_lib_core/common/base/platform.rbs +7 -0
  37. data/sig/lib/appium_lib_core/common/base/remote_status.rbs +9 -0
  38. data/sig/lib/appium_lib_core/common/base/rotable.rbs +17 -0
  39. data/sig/lib/appium_lib_core/common/base/screenshot.rbs +19 -0
  40. data/sig/lib/appium_lib_core/common/device/battery_status.rbs +13 -0
  41. data/sig/lib/appium_lib_core/common/wait.rbs +31 -0
  42. data/sig/lib/appium_lib_core/device.rbs +21 -0
  43. data/sig/lib/appium_lib_core/driver.rbs +200 -0
  44. data/sig/lib/appium_lib_core/ios/xcuitest/device/battery.rbs +15 -0
  45. data/sig/lib/appium_lib_core/version.rbs +7 -0
  46. data/sig/lib/appium_lib_core.rbs +8 -0
  47. metadata +46 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 641e8c9cc3c0e79b5d1bdc6c8979975b4e348f023d8a751e1f4d42a5d1101b4e
4
- data.tar.gz: 0f806606c02c78d6f7ffec83d900da977b39d763c0703f517ef7a69d93acd0e8
3
+ metadata.gz: 20e594fb85962e34dc17c8513756099527a571988391e344b175420e738a8440
4
+ data.tar.gz: 427d90c335c2b20a56e539e4209297b118aeaffc7d8139dd8f97151f156ae860
5
5
  SHA512:
6
- metadata.gz: 671985dc5ead2cb7ca582c17f1af10d9667891e4495ffa4ea51fe29b3a09fbc6293d406c0a040f3b182175791e574c6901bd9637aa25665d1e354cd912c80f89
7
- data.tar.gz: 0ecc7ec97028e803755e9ab2428c4316ac59815d35753304e344461f5e84a0b338953225061b8d1219a4fd85935cd3b4c4a25a20525352d2654054f00ab26faf
6
+ metadata.gz: 7fb1bdc8d18041bf40c8499277672b38e1c14d506e700fc1dd65eca9c50f7043a846f4f2366f5942d7c25fc36f86b9cbd02f588705038e67d792a88a12517dd8
7
+ data.tar.gz: 0e70fe9da0004371677787a81f4bf0c1c906a88b32e82b85572438b400b1e6e0dae956c91dfcb143d8d8a484f02eda7f18d98acdc22eb40e80a0379530a0a03d
data/CHANGELOG.md CHANGED
@@ -10,6 +10,16 @@ Read `release_notes.md` for commit level details.
10
10
 
11
11
  ### Deprecations
12
12
 
13
+ # [9.2.1] - 2024-08-01
14
+
15
+ ### Bug fixes
16
+ - Fix to return symbols for `Core#device` and `Core#automation_name`
17
+
18
+ ## [9.2.0] - 2024-07-21
19
+ ### Enhancements
20
+ - Raise defined errors in this library instead of Ruby general errors in some places.
21
+ - Most of errors have already followed this method. This version has updated rest of them.
22
+
13
23
  ## [9.1.3., 9.1.2] - 2024-06-03
14
24
 
15
25
  ### Bug fixes
data/README.md CHANGED
@@ -2,7 +2,9 @@
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/appium_lib_core.svg)](https://badge.fury.io/rb/appium_lib_core)
4
4
 
5
- [![Build Status](https://dev.azure.com/AppiumCI/Appium%20CI/_apis/build/status/appium.ruby_lib_core?branchName=master)](https://dev.azure.com/AppiumCI/Appium%20CI/_build/latest?definitionId=54&branchName=master)
5
+ [![Runs lint and unit tests](https://github.com/appium/ruby_lib_core/actions/workflows/unittest.yml/badge.svg)](https://github.com/appium/ruby_lib_core/actions/workflows/unittest.yml)
6
+ [![Functional Tests](https://github.com/appium/ruby_lib_core/actions/workflows/functional-test.yml/badge.svg)](https://github.com/appium/ruby_lib_core/actions/workflows/functional-test.yml)
7
+
6
8
 
7
9
  This library is a Ruby client for Appium. The gem is available via [appium_lib_core](https://rubygems.org/gems/appium_lib_core).
8
10
 
data/Rakefile CHANGED
@@ -117,3 +117,8 @@ RuboCop::RakeTask.new(:rubocop) do |t|
117
117
  t.options = %w(-D)
118
118
  t.fail_on_error = true
119
119
  end
120
+
121
+ desc('Run Steep type check')
122
+ task :steep do
123
+ system('steep check')
124
+ end
data/Steepfile ADDED
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ target :lib do
4
+ signature 'sig'
5
+ check 'lib' # Directory name
6
+
7
+ # Standard libraries used in the project
8
+ library(
9
+ 'forwardable'
10
+ )
11
+ end
@@ -29,8 +29,9 @@ Gem::Specification.new do |spec|
29
29
  spec.add_development_dependency 'minitest-reporters', '~> 1.1'
30
30
  spec.add_development_dependency 'parallel_tests'
31
31
  spec.add_development_dependency 'rake', '~> 13.0'
32
- spec.add_development_dependency 'rubocop', '1.64.1'
32
+ spec.add_development_dependency 'rubocop', '1.65.1'
33
33
  spec.add_development_dependency 'simplecov'
34
+ spec.add_development_dependency 'steep', '~> 1.7.0'
34
35
  spec.add_development_dependency 'webmock', '~> 3.23.0'
35
36
  spec.add_development_dependency 'yard', '~> 0.9.11'
36
37
  spec.metadata['rubygems_mfa_required'] = 'true'
@@ -23,7 +23,8 @@ module Appium
23
23
  ::Appium::Core::Device.add_endpoint_method(:get_clipboard) do
24
24
  def get_clipboard(content_type: :plaintext)
25
25
  unless ::Appium::Core::Base::Device::Clipboard::CONTENT_TYPE.member?(content_type)
26
- raise "content_type should be #{::Appium::Core::Base::Device::Clipboard::CONTENT_TYPE}"
26
+ raise ::Appium::Core::Error::ArgumentError,
27
+ "content_type should be #{::Appium::Core::Base::Device::Clipboard::CONTENT_TYPE}"
27
28
  end
28
29
 
29
30
  params = { contentType: content_type }
@@ -36,7 +37,8 @@ module Appium
36
37
  ::Appium::Core::Device.add_endpoint_method(:set_clipboard) do
37
38
  def set_clipboard(content:, content_type: :plaintext, label: nil)
38
39
  unless ::Appium::Core::Base::Device::Clipboard::CONTENT_TYPE.member?(content_type)
39
- raise "content_type should be #{::Appium::Core::Base::Device::Clipboard::CONTENT_TYPE}"
40
+ raise ::Appium::Core::Error::ArgumentError,
41
+ "content_type should be #{::Appium::Core::Base::Device::Clipboard::CONTENT_TYPE}"
40
42
  end
41
43
 
42
44
  params = {
@@ -122,7 +122,7 @@ module Appium
122
122
  ::Appium::Core::Device.add_endpoint_method(:gsm_call) do
123
123
  def gsm_call(phone_number:, action:)
124
124
  unless GSM_CALL_ACTIONS.member? action.to_sym
125
- raise "action: should be member of #{GSM_CALL_ACTIONS}. Not #{action}."
125
+ raise ::Appium::Core::Error::ArgumentError, "action: should be member of #{GSM_CALL_ACTIONS}. Not #{action}."
126
126
  end
127
127
 
128
128
  execute(:gsm_call, {}, { phoneNumber: phone_number, action: action })
@@ -131,7 +131,10 @@ module Appium
131
131
 
132
132
  ::Appium::Core::Device.add_endpoint_method(:gsm_signal) do
133
133
  def gsm_signal(signal_strength)
134
- raise "#{signal_strength} should be member of #{GSM_SIGNALS.keys} " if GSM_SIGNALS[signal_strength.to_sym].nil?
134
+ if GSM_SIGNALS[signal_strength.to_sym].nil?
135
+ raise ::Appium::Core::Error::ArgumentError,
136
+ "#{signal_strength} should be member of #{GSM_SIGNALS.keys} "
137
+ end
135
138
 
136
139
  execute(:gsm_signal, {}, { signalStrength: GSM_SIGNALS[signal_strength],
137
140
  signalStrengh: GSM_SIGNALS[signal_strength] })
@@ -141,7 +144,7 @@ module Appium
141
144
  ::Appium::Core::Device.add_endpoint_method(:gsm_voice) do
142
145
  def gsm_voice(state)
143
146
  unless GSM_VOICE_STATES.member? state.to_sym
144
- raise "The state should be member of #{GSM_VOICE_STATES}. Not #{state}."
147
+ raise ::Appium::Core::Error::ArgumentError, "The state should be member of #{GSM_VOICE_STATES}. Not #{state}."
145
148
  end
146
149
 
147
150
  execute(:gsm_voice, {}, { state: state })
@@ -150,7 +153,10 @@ module Appium
150
153
 
151
154
  ::Appium::Core::Device.add_endpoint_method(:set_network_speed) do
152
155
  def set_network_speed(netspeed)
153
- raise "The netspeed should be member of #{NET_SPEED}. Not #{netspeed}." unless NET_SPEED.member? netspeed.to_sym
156
+ unless NET_SPEED.member? netspeed.to_sym
157
+ raise ::Appium::Core::Error::ArgumentError,
158
+ "The netspeed should be member of #{NET_SPEED}. Not #{netspeed}."
159
+ end
154
160
 
155
161
  execute(:set_network_speed, {}, { netspeed: netspeed })
156
162
  end
@@ -169,7 +175,7 @@ module Appium
169
175
  ::Appium::Core::Device.add_endpoint_method(:set_power_ac) do
170
176
  def set_power_ac(state)
171
177
  unless POWER_AC_STATE.member? state.to_sym
172
- raise "The state should be member of #{POWER_AC_STATE}. Not #{state}."
178
+ raise ::Appium::Core::Error::ArgumentError, "The state should be member of #{POWER_AC_STATE}. Not #{state}."
173
179
  end
174
180
 
175
181
  execute(:set_power_ac, {}, { state: state })
@@ -41,7 +41,9 @@ module Appium
41
41
  option[:bitRate] = bit_rate unless bit_rate.nil?
42
42
 
43
43
  unless bug_report.nil?
44
- raise 'bug_report should be true or false' unless [true, false].member?(bug_report)
44
+ unless [true, false].member?(bug_report)
45
+ raise ::Appium::Core::Error::ArgumentError, 'bug_report should be true or false'
46
+ end
45
47
 
46
48
  option[:bugReport] = bug_report
47
49
  end
@@ -417,15 +417,15 @@ module Appium
417
417
  def start_activity(opts)
418
418
  ::Appium::Logger.warn "[DEPRECATION] Please use 'mobile: startActivity' extension instead"
419
419
 
420
- raise 'opts must be a hash' unless opts.is_a? Hash
420
+ raise ::Appium::Core::Error::ArgumentError, 'opts must be a hash' unless opts.is_a? Hash
421
421
 
422
422
  option = {}
423
423
 
424
424
  app_package = opts[:app_package]
425
- raise 'app_package is required' unless app_package
425
+ raise ::Appium::Core::Error::ArgumentError, 'app_package is required' unless app_package
426
426
 
427
427
  app_activity = opts[:app_activity]
428
- raise 'app_activity is required' unless app_activity
428
+ raise ::Appium::Core::Error::ArgumentError, 'app_activity is required' unless app_activity
429
429
 
430
430
  option[:appPackage] = app_package
431
431
  option[:appActivity] = app_activity
@@ -34,7 +34,7 @@ module Appium
34
34
  # here do not convert to camel case
35
35
  key.to_s
36
36
  else
37
- raise TypeError, "expected String or Symbol, got #{key.inspect}:#{key.class}"
37
+ raise ::Appium::Core::Error::ArgumentError, "expected String or Symbol, got #{key.inspect}:#{key.class}"
38
38
  end
39
39
  end
40
40
  end
@@ -48,7 +48,7 @@ module Appium
48
48
  when :png
49
49
  bridge.screenshot.unpack('m')[0]
50
50
  else
51
- raise Core::Error::UnsupportedOperationError, "unsupported format: #{format.inspect}"
51
+ raise ::Appium::Core::Error::UnsupportedOperationError, "unsupported format: #{format.inspect}"
52
52
  end
53
53
  end
54
54
 
@@ -88,7 +88,7 @@ module Appium
88
88
  when :png
89
89
  bridge.element_screenshot(element.id).unpack('m')[0]
90
90
  else
91
- raise Core::Error::UnsupportedOperationError, "unsupported format: #{format.inspect}"
91
+ raise ::Appium::Core::Error::UnsupportedOperationError, "unsupported format: #{format.inspect}"
92
92
  end
93
93
  end
94
94
 
@@ -65,14 +65,17 @@ module Appium
65
65
  good_matches_factor: nil,
66
66
  visualize: false)
67
67
  unless MATCH_FEATURES[:detector_name].member?(detector_name.to_s)
68
- raise "detector_name should be #{MATCH_FEATURES[:detector_name]}"
68
+ raise ::Appium::Core::Error::ArgumentError, "detector_name should be #{MATCH_FEATURES[:detector_name]}"
69
69
  end
70
70
 
71
71
  unless MATCH_FEATURES[:match_func].member?(match_func.to_s)
72
- raise "match_func should be #{MATCH_FEATURES[:match_func]}"
72
+ raise ::Appium::Core::Error::ArgumentError, "match_func should be #{MATCH_FEATURES[:match_func]}"
73
73
  end
74
74
 
75
- raise "visualize should be #{MATCH_FEATURES[:visualize]}" unless MATCH_FEATURES[:visualize].member?(visualize)
75
+ unless MATCH_FEATURES[:visualize].member?(visualize)
76
+ raise ::Appium::Core::Error::ArgumentError,
77
+ "visualize should be #{MATCH_FEATURES[:visualize]}"
78
+ end
76
79
 
77
80
  options = {}
78
81
  options[:detectorName] = detector_name.to_s.upcase
@@ -109,7 +112,10 @@ module Appium
109
112
  #
110
113
  def find_image_occurrence(full_image:, partial_image:, visualize: false, threshold: nil,
111
114
  multiple: nil, match_neighbour_threshold: nil)
112
- raise "visualize should be #{MATCH_TEMPLATE[:visualize]}" unless MATCH_TEMPLATE[:visualize].member?(visualize)
115
+ unless MATCH_TEMPLATE[:visualize].member?(visualize)
116
+ raise ::Appium::Core::Error::ArgumentError,
117
+ "visualize should be #{MATCH_TEMPLATE[:visualize]}"
118
+ end
113
119
 
114
120
  options = {}
115
121
  options[:visualize] = visualize
@@ -136,7 +142,10 @@ module Appium
136
142
  # File.write 'images_similarity_visual.png', Base64.decode64(visual['visualization']) # if the image is PNG
137
143
  #
138
144
  def get_images_similarity(first_image:, second_image:, visualize: false)
139
- raise "visualize should be #{GET_SIMILARITY[:visualize]}" unless GET_SIMILARITY[:visualize].member?(visualize)
145
+ unless GET_SIMILARITY[:visualize].member?(visualize)
146
+ raise ::Appium::Core::Error::ArgumentError,
147
+ "visualize should be #{GET_SIMILARITY[:visualize]}"
148
+ end
140
149
 
141
150
  options = {}
142
151
  options[:visualize] = visualize
@@ -158,7 +167,7 @@ module Appium
158
167
  # See the documentation on +appium-support+ module for more details.
159
168
  #
160
169
  def compare_images(mode: :matchFeatures, first_image:, second_image:, options: nil)
161
- raise "content_type should be #{MODE}" unless MODE.member?(mode)
170
+ raise ::Appium::Core::Error::ArgumentError, "content_type should be #{MODE}" unless MODE.member?(mode)
162
171
 
163
172
  params = {}
164
173
  params[:mode] = mode
@@ -30,7 +30,10 @@ module Appium
30
30
  @upload_option = if remote_path.nil?
31
31
  {}
32
32
  else
33
- raise 'method should be POST or PUT' unless METHOD.member?(method.to_s.upcase)
33
+ unless METHOD.member?(method.to_s.upcase)
34
+ raise ::Appium::Core::Error::ArgumentError,
35
+ 'method should be POST or PUT'
36
+ end
34
37
 
35
38
  option = {}
36
39
  option[:remotePath] = remote_path
@@ -45,7 +48,10 @@ module Appium
45
48
 
46
49
  return if force_restart.nil?
47
50
 
48
- raise 'force_restart should be true or false' unless [true, false].member?(force_restart)
51
+ unless [true, false].member?(force_restart)
52
+ raise ::Appium::Core::Error::ArgumentError,
53
+ 'force_restart should be true or false'
54
+ end
49
55
 
50
56
  @upload_option[:forceRestart] = force_restart
51
57
  end
@@ -27,6 +27,7 @@ module Appium
27
27
  class ServerError < CoreError; end
28
28
 
29
29
  # ruby_lib_core library specific errors
30
+ class SessionNotCreatedError < CoreError; end
30
31
  class ArgumentError < CoreError; end
31
32
  end
32
33
  end
@@ -104,7 +104,7 @@ module Appium
104
104
  class Driver
105
105
  include Waitable
106
106
 
107
- # Selenium webdriver capabilities
107
+ # Selenium webdriver capabilities, but the value is provided capabilities basis.
108
108
  # @return [Core::Base::Capabilities]
109
109
  attr_reader :caps
110
110
 
@@ -125,7 +125,7 @@ module Appium
125
125
 
126
126
  # Automation name sent to appium server or received by server.<br>
127
127
  # If automation_name is <code>nil</code>, it is not set both client side and server side.
128
- # @return [Hash]
128
+ # @return [Symbol]
129
129
  attr_reader :automation_name
130
130
 
131
131
  # Custom URL for the selenium server. If set this attribute, ruby_lib_core try to handshake to the custom url.<br>
@@ -475,7 +475,8 @@ module Appium
475
475
  automation_name: automation_name,
476
476
  platform_name: platform_name)
477
477
  rescue Errno::ECONNREFUSED
478
- raise "ERROR: Unable to connect to Appium. Is the server running on #{@custom_url}?"
478
+ raise ::Appium::Core::Error::SessionNotCreatedError,
479
+ "ERROR: Unable to connect to Appium. Is the server running on #{@custom_url}?"
479
480
  end
480
481
 
481
482
  @driver
@@ -633,7 +634,7 @@ module Appium
633
634
 
634
635
  # @private
635
636
  def get_app
636
- @caps[:app] || @caps['app']
637
+ get_cap 'app'
637
638
  end
638
639
 
639
640
  # @private
@@ -677,17 +678,17 @@ module Appium
677
678
  # @private
678
679
  def set_appium_device
679
680
  # https://code.google.com/p/selenium/source/browse/spec-draft.md?repo=mobile
680
- @device = @caps[:platformName] || @caps['platformName']
681
+ @device = get_cap 'platformName'
681
682
  return @device unless @device
682
683
 
683
- @device = convert_downcase @device
684
+ @device = convert_to_symbol(convert_downcase(@device))
684
685
  end
685
686
 
686
687
  # @private
687
688
  def set_automation_name
688
- candidate = @caps[:automationName] || @caps['automationName']
689
+ candidate = get_cap 'automationName'
689
690
  @automation_name = candidate if candidate
690
- @automation_name = convert_downcase @automation_name if @automation_name
691
+ @automation_name = convert_to_symbol(convert_downcase(@automation_name)) if @automation_name
691
692
  end
692
693
 
693
694
  # @private
@@ -699,9 +700,18 @@ module Appium
699
700
  def set_automation_name_if_nil
700
701
  return unless @automation_name.nil?
701
702
 
702
- @automation_name = if @driver.capabilities['automationName']
703
- @driver.capabilities['automationName'].downcase.strip.intern
704
- end
703
+ automation_name = if @driver.capabilities['automationName']
704
+ @driver.capabilities['automationName'].downcase.strip.intern
705
+ end
706
+ @automation_name = convert_to_symbol automation_name
707
+ end
708
+
709
+ def get_cap(name)
710
+ name_with_prefix = "appium:#{name}"
711
+ @caps[convert_to_symbol name] ||
712
+ @caps[name] ||
713
+ @caps[convert_to_symbol name_with_prefix] ||
714
+ @caps[name_with_prefix]
705
715
  end
706
716
  end # class Driver
707
717
  end # module Core
@@ -117,7 +117,7 @@ module Appium
117
117
  when :png
118
118
  bridge.element_screenshot(@id).unpack('m')[0]
119
119
  else
120
- raise Core::Error::UnsupportedOperationError, "unsupported format: #{format.inspect}"
120
+ raise ::Appium::Core::Error::UnsupportedOperationError, "unsupported format: #{format.inspect}"
121
121
  end
122
122
  end
123
123
 
@@ -23,7 +23,8 @@ module Appium
23
23
  ::Appium::Core::Device.add_endpoint_method(:get_clipboard) do
24
24
  def get_clipboard(content_type: :plaintext)
25
25
  unless ::Appium::Core::Base::Device::Clipboard::CONTENT_TYPE.member?(content_type)
26
- raise "content_type should be #{::Appium::Core::Base::Device::Clipboard::CONTENT_TYPE}"
26
+ raise ::Appium::Core::Error::ArgumentError,
27
+ "content_type should be #{::Appium::Core::Base::Device::Clipboard::CONTENT_TYPE}"
27
28
  end
28
29
 
29
30
  params = { contentType: content_type }
@@ -36,7 +37,8 @@ module Appium
36
37
  ::Appium::Core::Device.add_endpoint_method(:set_clipboard) do
37
38
  def set_clipboard(content:, content_type: :plaintext)
38
39
  unless ::Appium::Core::Base::Device::Clipboard::CONTENT_TYPE.member?(content_type)
39
- raise "content_type should be #{::Appium::Core::Base::Device::Clipboard::CONTENT_TYPE}"
40
+ raise ::Appium::Core::Error::ArgumentError,
41
+ "content_type should be #{::Appium::Core::Base::Device::Clipboard::CONTENT_TYPE}"
40
42
  end
41
43
 
42
44
  params = {
@@ -14,7 +14,7 @@
14
14
 
15
15
  module Appium
16
16
  module Core
17
- VERSION = '9.1.3' unless defined? ::Appium::Core::VERSION
18
- DATE = '2024-06-05' unless defined? ::Appium::Core::DATE
17
+ VERSION = '9.2.1' unless defined? ::Appium::Core::VERSION
18
+ DATE = '2024-08-01' unless defined? ::Appium::Core::DATE
19
19
  end
20
20
  end
@@ -0,0 +1,252 @@
1
+ ---
2
+ path: ".gem_rbs_collection"
3
+ gems:
4
+ - name: activesupport
5
+ version: '7.0'
6
+ source:
7
+ type: git
8
+ name: ruby/gem_rbs_collection
9
+ revision: 3670834268f4ea9c10aefeffae7e072b51256375
10
+ remote: https://github.com/ruby/gem_rbs_collection.git
11
+ repo_dir: gems
12
+ - name: addressable
13
+ version: '2.8'
14
+ source:
15
+ type: git
16
+ name: ruby/gem_rbs_collection
17
+ revision: 3670834268f4ea9c10aefeffae7e072b51256375
18
+ remote: https://github.com/ruby/gem_rbs_collection.git
19
+ repo_dir: gems
20
+ - name: ast
21
+ version: '2.4'
22
+ source:
23
+ type: git
24
+ name: ruby/gem_rbs_collection
25
+ revision: 3670834268f4ea9c10aefeffae7e072b51256375
26
+ remote: https://github.com/ruby/gem_rbs_collection.git
27
+ repo_dir: gems
28
+ - name: base64
29
+ version: '0'
30
+ source:
31
+ type: stdlib
32
+ - name: bigdecimal
33
+ version: '0'
34
+ source:
35
+ type: stdlib
36
+ - name: concurrent-ruby
37
+ version: '1.1'
38
+ source:
39
+ type: git
40
+ name: ruby/gem_rbs_collection
41
+ revision: 3670834268f4ea9c10aefeffae7e072b51256375
42
+ remote: https://github.com/ruby/gem_rbs_collection.git
43
+ repo_dir: gems
44
+ - name: connection_pool
45
+ version: '2.4'
46
+ source:
47
+ type: git
48
+ name: ruby/gem_rbs_collection
49
+ revision: 3670834268f4ea9c10aefeffae7e072b51256375
50
+ remote: https://github.com/ruby/gem_rbs_collection.git
51
+ repo_dir: gems
52
+ - name: csv
53
+ version: '0'
54
+ source:
55
+ type: stdlib
56
+ - name: date
57
+ version: '0'
58
+ source:
59
+ type: stdlib
60
+ - name: erb
61
+ version: '0'
62
+ source:
63
+ type: stdlib
64
+ - name: ffi
65
+ version: 1.17.0
66
+ source:
67
+ type: rubygems
68
+ - name: fileutils
69
+ version: '0'
70
+ source:
71
+ type: stdlib
72
+ - name: forwardable
73
+ version: '0'
74
+ source:
75
+ type: stdlib
76
+ - name: hashdiff
77
+ version: '1.1'
78
+ source:
79
+ type: git
80
+ name: ruby/gem_rbs_collection
81
+ revision: 3670834268f4ea9c10aefeffae7e072b51256375
82
+ remote: https://github.com/ruby/gem_rbs_collection.git
83
+ repo_dir: gems
84
+ - name: i18n
85
+ version: '1.10'
86
+ source:
87
+ type: git
88
+ name: ruby/gem_rbs_collection
89
+ revision: 3670834268f4ea9c10aefeffae7e072b51256375
90
+ remote: https://github.com/ruby/gem_rbs_collection.git
91
+ repo_dir: gems
92
+ - name: json
93
+ version: '0'
94
+ source:
95
+ type: stdlib
96
+ - name: listen
97
+ version: '3.9'
98
+ source:
99
+ type: git
100
+ name: ruby/gem_rbs_collection
101
+ revision: 3670834268f4ea9c10aefeffae7e072b51256375
102
+ remote: https://github.com/ruby/gem_rbs_collection.git
103
+ repo_dir: gems
104
+ - name: logger
105
+ version: '0'
106
+ source:
107
+ type: stdlib
108
+ - name: minitest
109
+ version: '0'
110
+ source:
111
+ type: stdlib
112
+ - name: monitor
113
+ version: '0'
114
+ source:
115
+ type: stdlib
116
+ - name: mutex_m
117
+ version: '0'
118
+ source:
119
+ type: stdlib
120
+ - name: optparse
121
+ version: '0'
122
+ source:
123
+ type: stdlib
124
+ - name: parallel
125
+ version: '1.20'
126
+ source:
127
+ type: git
128
+ name: ruby/gem_rbs_collection
129
+ revision: 3670834268f4ea9c10aefeffae7e072b51256375
130
+ remote: https://github.com/ruby/gem_rbs_collection.git
131
+ repo_dir: gems
132
+ - name: parser
133
+ version: '3.2'
134
+ source:
135
+ type: git
136
+ name: ruby/gem_rbs_collection
137
+ revision: 3670834268f4ea9c10aefeffae7e072b51256375
138
+ remote: https://github.com/ruby/gem_rbs_collection.git
139
+ repo_dir: gems
140
+ - name: rainbow
141
+ version: '3.0'
142
+ source:
143
+ type: git
144
+ name: ruby/gem_rbs_collection
145
+ revision: 3670834268f4ea9c10aefeffae7e072b51256375
146
+ remote: https://github.com/ruby/gem_rbs_collection.git
147
+ repo_dir: gems
148
+ - name: rake
149
+ version: '13.0'
150
+ source:
151
+ type: git
152
+ name: ruby/gem_rbs_collection
153
+ revision: 3670834268f4ea9c10aefeffae7e072b51256375
154
+ remote: https://github.com/ruby/gem_rbs_collection.git
155
+ repo_dir: gems
156
+ - name: regexp_parser
157
+ version: '2.8'
158
+ source:
159
+ type: git
160
+ name: ruby/gem_rbs_collection
161
+ revision: 3670834268f4ea9c10aefeffae7e072b51256375
162
+ remote: https://github.com/ruby/gem_rbs_collection.git
163
+ repo_dir: gems
164
+ - name: ripper
165
+ version: '0'
166
+ source:
167
+ type: stdlib
168
+ - name: rubocop
169
+ version: '1.57'
170
+ source:
171
+ type: git
172
+ name: ruby/gem_rbs_collection
173
+ revision: 3670834268f4ea9c10aefeffae7e072b51256375
174
+ remote: https://github.com/ruby/gem_rbs_collection.git
175
+ repo_dir: gems
176
+ - name: rubocop-ast
177
+ version: '1.30'
178
+ source:
179
+ type: git
180
+ name: ruby/gem_rbs_collection
181
+ revision: 3670834268f4ea9c10aefeffae7e072b51256375
182
+ remote: https://github.com/ruby/gem_rbs_collection.git
183
+ repo_dir: gems
184
+ - name: rubyzip
185
+ version: '2.3'
186
+ source:
187
+ type: git
188
+ name: ruby/gem_rbs_collection
189
+ revision: 3670834268f4ea9c10aefeffae7e072b51256375
190
+ remote: https://github.com/ruby/gem_rbs_collection.git
191
+ repo_dir: gems
192
+ - name: securerandom
193
+ version: '0'
194
+ source:
195
+ type: stdlib
196
+ - name: simplecov
197
+ version: '0.22'
198
+ source:
199
+ type: git
200
+ name: ruby/gem_rbs_collection
201
+ revision: 3670834268f4ea9c10aefeffae7e072b51256375
202
+ remote: https://github.com/ruby/gem_rbs_collection.git
203
+ repo_dir: gems
204
+ - name: singleton
205
+ version: '0'
206
+ source:
207
+ type: stdlib
208
+ - name: strscan
209
+ version: '0'
210
+ source:
211
+ type: stdlib
212
+ - name: thor
213
+ version: '1.2'
214
+ source:
215
+ type: git
216
+ name: ruby/gem_rbs_collection
217
+ revision: 3670834268f4ea9c10aefeffae7e072b51256375
218
+ remote: https://github.com/ruby/gem_rbs_collection.git
219
+ repo_dir: gems
220
+ - name: time
221
+ version: '0'
222
+ source:
223
+ type: stdlib
224
+ - name: timeout
225
+ version: '0'
226
+ source:
227
+ type: stdlib
228
+ - name: tzinfo
229
+ version: '2.0'
230
+ source:
231
+ type: git
232
+ name: ruby/gem_rbs_collection
233
+ revision: 3670834268f4ea9c10aefeffae7e072b51256375
234
+ remote: https://github.com/ruby/gem_rbs_collection.git
235
+ repo_dir: gems
236
+ - name: webmock
237
+ version: '3.19'
238
+ source:
239
+ type: git
240
+ name: ruby/gem_rbs_collection
241
+ revision: 3670834268f4ea9c10aefeffae7e072b51256375
242
+ remote: https://github.com/ruby/gem_rbs_collection.git
243
+ repo_dir: gems
244
+ - name: yard
245
+ version: '0.9'
246
+ source:
247
+ type: git
248
+ name: ruby/gem_rbs_collection
249
+ revision: 3670834268f4ea9c10aefeffae7e072b51256375
250
+ remote: https://github.com/ruby/gem_rbs_collection.git
251
+ repo_dir: gems
252
+ gemfile_lock_path: Gemfile.lock