Class: BiDiGenerate::Command Private

Inherits:
Struct
  • Object
show all
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

Instance Method Summary collapse

Instance Attribute Details

#method_nameObject

Returns the value of attribute method_name

Returns:

  • (Object)

    the current value of method_name



174
175
176
# File 'lib/selenium/webdriver/bidi/support/bidi_generate.rb', line 174

def method_name
  @method_name
end

#paramsObject

Returns the value of attribute params

Returns:

  • (Object)

    the current value of params



174
175
176
# File 'lib/selenium/webdriver/bidi/support/bidi_generate.rb', line 174

def params
  @params
end

#params_classObject

Returns the value of attribute params_class

Returns:

  • (Object)

    the current value of params_class



174
175
176
# File 'lib/selenium/webdriver/bidi/support/bidi_generate.rb', line 174

def params_class
  @params_class
end

#result_refObject

Returns the value of attribute result_ref

Returns:

  • (Object)

    the current value of result_ref



174
175
176
# File 'lib/selenium/webdriver/bidi/support/bidi_generate.rb', line 174

def result_ref
  @result_ref
end

#union_paramsObject

Returns the value of attribute union_params

Returns:

  • (Object)

    the current value of union_params



174
175
176
# File 'lib/selenium/webdriver/bidi/support/bidi_generate.rb', line 174

def union_params
  @union_params
end

#wire_nameObject

Returns the value of attribute wire_name

Returns:

  • (Object)

    the current value of wire_name



174
175
176
# File 'lib/selenium/webdriver/bidi/support/bidi_generate.rb', line 174

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.



182
183
184
185
186
187
# File 'lib/selenium/webdriver/bidi/support/bidi_generate.rb', line 182

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.



178
# File 'lib/selenium/webdriver/bidi/support/bidi_generate.rb', line 178

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.



217
218
219
220
221
222
# File 'lib/selenium/webdriver/bidi/support/bidi_generate.rb', line 217

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_paramsObject

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.



177
# File 'lib/selenium/webdriver/bidi/support/bidi_generate.rb', line 177

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.



207
208
209
210
211
212
# File 'lib/selenium/webdriver/bidi/support/bidi_generate.rb', line 207

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_paramsObject

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.



195
196
197
# File 'lib/selenium/webdriver/bidi/support/bidi_generate.rb', line 195

def rbs_params
  (required_params.map(&:rbs_part) + optional_params.map(&:rbs_part)).join(', ')
end

#rbs_returnObject

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.



199
200
201
# File 'lib/selenium/webdriver/bidi/support/bidi_generate.rb', line 199

def rbs_return
  result_ref ? "::Selenium::WebDriver::BiDi::Protocol::#{result_ref}" : 'untyped'
end

#rbs_signatureObject

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.



191
192
193
# File 'lib/selenium/webdriver/bidi/support/bidi_generate.rb', line 191

def rbs_signature
  "(#{rbs_params}) -> #{rbs_return}"
end

#required_paramsObject

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.



176
# File 'lib/selenium/webdriver/bidi/support/bidi_generate.rb', line 176

def required_params = params.select(&:required)