Class: Protobuf::Field::BaseFieldObjectDefinitions::RequiredBaseSetField

Inherits:
Object
  • Object
show all
Defined in:
lib/protobuf/field/base_field_object_definitions.rb

Instance Method Summary collapse

Constructor Details

#initialize(selph) ⇒ RequiredBaseSetField

Returns a new instance of RequiredBaseSetField.



331
332
333
334
335
# 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

Instance Method Details

#call(values, value, _ignore_nil_for_repeated, message_instance) ⇒ Object



337
338
339
340
341
342
343
344
345
# 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