class Protobuf::Field::BaseField
def initialize(message_class, rule, type, name, tag, options)
Constructor
#
def initialize(message_class, rule, type, name, tag, options) @message_class, @rule, @type, @name, @tag = \ message_class, rule, type, name, tag @getter_method_name = name @setter_method_name = "#{name}=".to_sym @default = options.delete(:default) @extension = options.delete(:extension) @packed = repeated? && options.delete(:packed) @deprecated = options.delete(:deprecated) unless options.empty? warn "WARNING: Invalid options: #{options.inspect} (in #{@message_class.name.split('::').last}.#{@name})" end if packed? && ! [WireType::VARINT, WireType::FIXED32, WireType::FIXED64].include?(wire_type) raise "Can't use packed encoding for `#{@type}' type" end @default_value = \ case @rule when :repeated then FieldArray.new(self).freeze when :required then nil when :optional then typed_default_value end define_accessor end