Method: Moped::Protocol::Message::ClassMethods#int32

Defined in:
lib/moped/protocol/message.rb

#int32(name) ⇒ Object

Declare a 32 bit signed integer field.

Examples:

class Query < Message
  int32 :length
end

Parameters:

  • name (String)

    the name of this field



203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
# File 'lib/moped/protocol/message.rb', line 203

def int32(name)
  attr_writer name

  class_eval <<-RUBY, __FILE__, __LINE__ + 1
    def #{name}
      @#{name} ||= 0
    end

    def serialize_#{name}(buffer)
      buffer << [#{name}].pack('l<')
    end

    def deserialize_#{name}(buffer)
      self.#{name}, = buffer.read(4).unpack('l<')
    end
  RUBY

  fields << name
end