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



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

def method_name
  @method_name
end

#paramsObject

Returns the value of attribute params

Returns:

  • (Object)

    the current value of params



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

def params
  @params
end

#params_classObject

Returns the value of attribute params_class

Returns:

  • (Object)

    the current value of params_class



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

def params_class
  @params_class
end

#result_refObject

Returns the value of attribute result_ref

Returns:

  • (Object)

    the current value of result_ref



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

def result_ref
  @result_ref
end

#spec_hrefObject

Returns the value of attribute spec_href

Returns:

  • (Object)

    the current value of spec_href



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

def spec_href
  @spec_href
end

#union_paramsObject

Returns the value of attribute union_params

Returns:

  • (Object)

    the current value of union_params



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

def union_params
  @union_params
end

#wire_nameObject

Returns the value of attribute wire_name

Returns:

  • (Object)

    the current value of wire_name



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

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.



186
187
188
189
190
191
# File 'lib/selenium/webdriver/bidi/support/bidi_generate.rb', line 186

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.



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

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.



221
222
223
224
225
226
# File 'lib/selenium/webdriver/bidi/support/bidi_generate.rb', line 221

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.



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

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.



211
212
213
214
215
216
# File 'lib/selenium/webdriver/bidi/support/bidi_generate.rb', line 211

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.



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

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.



203
204
205
# File 'lib/selenium/webdriver/bidi/support/bidi_generate.rb', line 203

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.



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

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.



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

def required_params = params.select(&:required)