class Protobuf::Field::EnumField
Public Class Methods
default()
click to toggle source
Class Methods
# File lib/protobuf/field/enum_field.rb, line 11 def self.default fail NoMethodError, "#{self}.#{__method__} must be called on an instance" end
Public Instance Methods
acceptable?(val)
click to toggle source
Public Instance Methods
# File lib/protobuf/field/enum_field.rb, line 19 def acceptable?(val) !type_class.fetch(val).nil? end
decode(value)
click to toggle source
# File lib/protobuf/field/enum_field.rb, line 27 def decode(value) value if acceptable?(value) end
encode(value)
click to toggle source
Calls superclass method
# File lib/protobuf/field/enum_field.rb, line 23 def encode(value) super(value.to_i) end
enum?()
click to toggle source
# File lib/protobuf/field/enum_field.rb, line 31 def enum? true end
Private Instance Methods
define_setter()
click to toggle source
Private Instance Methods
# File lib/protobuf/field/enum_field.rb, line 41 def define_setter field = self message_class.class_eval do define_method("#{field.name}=") do |value| orig_value = value if value.nil? @values.delete(field.name) else value = field.type_class.fetch(value) fail TypeError, "Invalid Enum value: #{orig_value.inspect} for #{field.name}" unless value @values[field.name] = value end end end end
typed_default_value()
click to toggle source
# File lib/protobuf/field/enum_field.rb, line 58 def typed_default_value if default.is_a?(Symbol) type_class.const_get(default) else type_class.fetch(default) || type_class.enums.first end end