class Protobuf::Field::BaseField
def define_setter
def define_setter field = self method_name = field.setter message_class.class_eval do define_method(method_name) do |val| if val.nil? || (val.respond_to?(:empty?) && val.empty?) @values.delete(field.name) elsif field.acceptable?(val) @values[field.name] = field.coerce!(val) else fail TypeError, "Unacceptable value #{val} for field #{field.name} of type #{field.type_class}" end end ::Protobuf.deprecator.deprecate_methods(method_name) end end