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
coerce!(value) click to toggle source
# File lib/protobuf/field/enum_field.rb, line 36
def coerce!(value)
  enum_value = type_class.fetch(value)
  fail TypeError, "Invalid Enum value: #{value.inspect} for #{name}" unless enum_value
  enum_value
end
decode(value) click to toggle source
Calls superclass method
# File lib/protobuf/field/enum_field.rb, line 27
def decode(value)
  decoded = super(value)
  decoded if acceptable?(decoded)
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 32
def enum?
  true
end

Private Instance Methods

typed_default_value() click to toggle source

Private Instance Methods

# File lib/protobuf/field/enum_field.rb, line 48
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