123456789_123456789_123456789_123456789_123456789_

Module: Selenium::WebDriver::BiDi::Serialization::Record::Serializable Private

Relationships & Source Files
Defined in: rb/lib/selenium/webdriver/bidi/serialization/record.rb

Class Method Summary

Instance Method Summary

  • #as_json Internal use only

    Omit UNSET fields; emit null only for nullable ones.

Class Method Details

.as_json(value)

[ GitHub ]

  
# File 'rb/lib/selenium/webdriver/bidi/serialization/record.rb', line 247

def self.as_json(value)
  case value
  when Serializable then value.as_json
  when ::Array then value.map { |element| as_json(element) }
  when ::Hash then value.transform_values { |element| as_json(element) }
  else value
  end
end

Instance Method Details

#as_json

Omit UNSET fields; emit null only for nullable ones.

[ GitHub ]

  
# File 'rb/lib/selenium/webdriver/bidi/serialization/record.rb', line 257

def as_json(*)
  payload = {}
  self.class.fields.each do |f|
    value = public_send(f.name)
    next if UNSET.equal?(value)
    next if value.nil? && !f.nullable

    value = Serialization.to_wire(value, Protocol.const_get(f.enum)) if f.enum
    payload[f.wire_key] = Serializable.as_json(value)
  end
  payload.merge!(extensions) if self.class.extensible? && !extensions.empty?
  payload
end