Class: Protobuf::Field::BaseFieldObjectDefinitions::MapSetField
- Inherits:
-
Object
- Object
- Protobuf::Field::BaseFieldObjectDefinitions::MapSetField
- Defined in:
- lib/protobuf/field/base_field_object_definitions.rb
Instance Method Summary collapse
- #call(values, value, _ignore_nil_for_repeated, _message_instance) ⇒ Object
-
#initialize(selph) ⇒ MapSetField
constructor
A new instance of MapSetField.
Constructor Details
#initialize(selph) ⇒ MapSetField
Returns a new instance of MapSetField.
201 202 203 204 205 |
# File 'lib/protobuf/field/base_field_object_definitions.rb', line 201 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
207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 |
# File 'lib/protobuf/field/base_field_object_definitions.rb', line 207 def call(values, value, _ignore_nil_for_repeated, ) unless value.is_a?(Hash) fail TypeError, " Expected map value\n Got '\#{value.class}' for map protobuf field \#{@selph.name}\n TYPE_ERROR\n end\n\n if value.empty?\n values.delete(@fully_qualified_name)\n else\n values[@fully_qualified_name] ||= ::Protobuf::Field::FieldHash.new(@selph)\n values[@fully_qualified_name].replace(value)\n end\nend\n" |