Class: BiDiGenerate::Command Private
- Inherits:
-
Struct
- Object
- Struct
- BiDiGenerate::Command
- Defined in:
- lib/selenium/webdriver/bidi/support/bidi_generate.rb
Overview
This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.
params_class is the Parameters class the named args construct (nil for a no-arg
command); union_params picks its variant via .build rather than .new. result_ref
is the Protocol-relative result class path, or nil to return the raw hash.
Instance Attribute Summary collapse
-
#method_name ⇒ Object
Returns the value of attribute method_name.
-
#params ⇒ Object
Returns the value of attribute params.
-
#params_class ⇒ Object
Returns the value of attribute params_class.
-
#result_ref ⇒ Object
Returns the value of attribute result_ref.
-
#spec_href ⇒ Object
Returns the value of attribute spec_href.
-
#union_params ⇒ Object
Returns the value of attribute union_params.
-
#wire_name ⇒ Object
Returns the value of attribute wire_name.
Instance Method Summary collapse
-
#def_header(indent) ⇒ Object
private
def nameordef name(...)— wrapped one argument per line when the signature would exceed the line limit. - #enum_checks(indent) ⇒ Object private
-
#execute_call(indent) ⇒ Object
private
@transport.execute(cmd:[, params: params][, result:]). - #optional_params ⇒ Object private
-
#params_assignment(indent) ⇒ Object
private
The
params = …line built before the execute call, or nil for a no-arg command. - #rbs_params ⇒ Object private
- #rbs_return ⇒ Object private
-
#rbs_signature ⇒ Object
private
The RBS method signature
(params) -> return— the return is the typed result class when the command parses one, elseuntyped. - #required_params ⇒ Object private
Instance Attribute Details
#method_name ⇒ Object
Returns the value of attribute method_name
180 181 182 |
# File 'lib/selenium/webdriver/bidi/support/bidi_generate.rb', line 180 def method_name @method_name end |
#params ⇒ Object
Returns the value of attribute params
180 181 182 |
# File 'lib/selenium/webdriver/bidi/support/bidi_generate.rb', line 180 def params @params end |
#params_class ⇒ Object
Returns the value of attribute params_class
180 181 182 |
# File 'lib/selenium/webdriver/bidi/support/bidi_generate.rb', line 180 def params_class @params_class end |
#result_ref ⇒ Object
Returns the value of attribute result_ref
180 181 182 |
# File 'lib/selenium/webdriver/bidi/support/bidi_generate.rb', line 180 def result_ref @result_ref end |
#spec_href ⇒ Object
Returns the value of attribute spec_href
180 181 182 |
# File 'lib/selenium/webdriver/bidi/support/bidi_generate.rb', line 180 def spec_href @spec_href end |
#union_params ⇒ Object
Returns the value of attribute union_params
180 181 182 |
# File 'lib/selenium/webdriver/bidi/support/bidi_generate.rb', line 180 def union_params @union_params end |
#wire_name ⇒ Object
Returns the value of attribute wire_name
180 181 182 |
# File 'lib/selenium/webdriver/bidi/support/bidi_generate.rb', line 180 def wire_name @wire_name end |
Instance Method Details
#def_header(indent) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
def name or def name(...) — wrapped one argument per line when the signature
would exceed the line limit.
188 189 190 191 192 193 |
# File 'lib/selenium/webdriver/bidi/support/bidi_generate.rb', line 188 def def_header(indent) return "def #{method_name}" if params.empty? BiDiGenerate.wrap_call("def #{method_name}", required_params.map(&:sig_part) + optional_params.map(&:sig_part), indent) end |
#enum_checks(indent) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
184 |
# File 'lib/selenium/webdriver/bidi/support/bidi_generate.rb', line 184 def enum_checks(indent) = params.filter_map { |p| p.enum_check(indent) } |
#execute_call(indent) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
@transport.execute(cmd:[, params: params][, result:]). The result type is
referenced directly (resolved lazily in the method body, and unambiguous within
Protocol). Params, when present, are the params local built above.
223 224 225 226 227 228 |
# File 'lib/selenium/webdriver/bidi/support/bidi_generate.rb', line 223 def execute_call(indent) args = ["cmd: '#{wire_name}'"] args << 'params: params' unless params.empty? args << "result: #{result_ref}" if result_ref BiDiGenerate.wrap_call('execute', args, indent) end |
#optional_params ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
183 |
# File 'lib/selenium/webdriver/bidi/support/bidi_generate.rb', line 183 def optional_params = params.reject(&:required) |
#params_assignment(indent) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
The params = … line built before the execute call, or nil for a no-arg command. A
record builds its Parameters object and a union dispatches via .build (whose typed
as_json emits explicit null where a flat hash through Transport could not). Wrapped
one entry per line when long, so it (and the short execute call) stay within the limit.
213 214 215 216 217 218 |
# File 'lib/selenium/webdriver/bidi/support/bidi_generate.rb', line 213 def params_assignment(indent) return nil if params.empty? kwargs = params.map { |p| "#{p.ruby_name}: #{p.ruby_name}" } BiDiGenerate.wrap_call("params = #{params_class}.#{union_params ? 'build' : 'new'}", kwargs, indent) end |
#rbs_params ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
201 202 203 |
# File 'lib/selenium/webdriver/bidi/support/bidi_generate.rb', line 201 def rbs_params (required_params.map(&:rbs_part) + optional_params.map(&:rbs_part)).join(', ') end |
#rbs_return ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
205 206 207 |
# File 'lib/selenium/webdriver/bidi/support/bidi_generate.rb', line 205 def rbs_return result_ref ? "::Selenium::WebDriver::BiDi::Protocol::#{result_ref}" : 'untyped' end |
#rbs_signature ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
The RBS method signature (params) -> return — the return is the typed result class
when the command parses one, else untyped.
197 198 199 |
# File 'lib/selenium/webdriver/bidi/support/bidi_generate.rb', line 197 def rbs_signature "(#{rbs_params}) -> #{rbs_return}" end |
#required_params ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
182 |
# File 'lib/selenium/webdriver/bidi/support/bidi_generate.rb', line 182 def required_params = params.select(&:required) |