Sha256: 231dea78c132e9244c3bc4ec36e5e2867d78cac395d25033e5e9aa3bc8533841

Contents?: true

Size: 735 Bytes

Versions: 4

Compression:

Stored size: 735 Bytes

Contents

require 'protobuf/field/integer_field'

module Protobuf
  module Field
    class Int64Field < IntegerField

      ##
      # Class Methods
      #

      def self.max
        INT64_MAX
      end

      def self.min
        INT64_MIN
      end

      ##
      # Instance Methods
      #
      def acceptable?(val)
        if val.is_a?(Integer) || val.is_a?(Numeric)
          val >= INT64_MIN && val <= INT64_MAX
        else
          Integer(val, 10) >= INT64_MIN && Integer(val, 10) <= INT64_MAX
        end
      rescue
        return false
      end

      def json_encode(value, options = {})
        if options[:proto3]
          value == 0 ? nil : value.to_s
        else
          value
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
protobuf-cucumber-3.10.8 lib/protobuf/field/int64_field.rb
protobuf-cucumber-3.10.7 lib/protobuf/field/int64_field.rb
protobuf-cucumber-3.10.6 lib/protobuf/field/int64_field.rb
protobuf-cucumber-3.10.5 lib/protobuf/field/int64_field.rb