Sha256: 24b24b0860162c31c96fcea4835bd4631800cc7ed41777ca8e0c1ff8e230a0c0

Contents?: true

Size: 1.1 KB

Versions: 32

Compression:

Stored size: 1.1 KB

Contents

require 'delegate'
require 'protobuf/enum'

##
# Adding extension to Numeric until
# we can get people to stop calling #value
# on EnumValue
class Numeric
  unless method_defined?(:value)
    def value
      self
    end
  end
end

module Protobuf
  class EnumValue < SimpleDelegator

    attr_reader :parent_class, :name

    ##
    # Constructor
    #
    def initialize(parent_class, name, value)
      @parent_class = parent_class
      @name = name
      @value = value
      super(@value)
    end

    # Overriding the class so ActiveRecord/Arel visitor will visit the enum as a Fixnum
    def class
      Fixnum
    end

    def inspect
      "\#<Protobuf::EnumValue #{@parent_class}::#{@name}=#{@value}>"
    end

    def to_i
      @value
    end

    def to_int
      @value.to_int
    end

    def to_s(format = :value_string)
      case format
      when :value_string then
        self.to_i.to_s
      when :name then
        name.to_s
      else
        self.to_i.to_s
      end
    end

    def value
      @value
    end

    ##
    # Instance Aliases
    #
    alias_method :to_hash_value, :to_i
  end
end

Version data entries

32 entries across 32 versions & 1 rubygems

Version Path
protobuf-2.5.4-java lib/protobuf/enum_value.rb
protobuf-2.5.4 lib/protobuf/enum_value.rb
protobuf-2.5.3 lib/protobuf/enum_value.rb
protobuf-2.5.2-java lib/protobuf/enum_value.rb
protobuf-2.5.2 lib/protobuf/enum_value.rb
protobuf-2.5.1 lib/protobuf/enum_value.rb
protobuf-2.5.0-java lib/protobuf/enum_value.rb
protobuf-2.5.0 lib/protobuf/enum_value.rb
protobuf-2.4.8-java lib/protobuf/enum_value.rb
protobuf-2.4.8 lib/protobuf/enum_value.rb
protobuf-2.4.7-java lib/protobuf/enum_value.rb
protobuf-2.4.7 lib/protobuf/enum_value.rb
protobuf-2.4.6 lib/protobuf/enum_value.rb
protobuf-2.4.5-java lib/protobuf/enum_value.rb
protobuf-2.4.5 lib/protobuf/enum_value.rb
protobuf-2.4.4-java lib/protobuf/enum_value.rb
protobuf-2.4.4 lib/protobuf/enum_value.rb
protobuf-2.4.3-java lib/protobuf/enum_value.rb
protobuf-2.4.3 lib/protobuf/enum_value.rb
protobuf-2.4.3.rc1 lib/protobuf/enum_value.rb