class Protobuf::Field::BaseFieldObjectDefinitions::RequiredBaseSetField

Public Class Methods

new(selph) click to toggle source
# File lib/protobuf/field/base_field_object_definitions.rb, line 331
def initialize(selph)
  @selph = selph
  @tag = selph.tag
  @fully_qualified_name = selph.fully_qualified_name
end

Public Instance Methods

call(values, value, _ignore_nil_for_repeated, message_instance) click to toggle source
# File lib/protobuf/field/base_field_object_definitions.rb, line 337
def call(values, value, _ignore_nil_for_repeated, message_instance)
  if value.nil?
    values.delete(@fully_qualified_name)
    message_instance._protobuf_message_unset_required_field_tags << @tag
  else
    message_instance._protobuf_message_unset_required_field_tags.delete(@tag)
    values[@fully_qualified_name] = @selph.coerce!(value)
  end
end