class Jubatus::Common::Datum

Constants

TYPE

Attributes

binary_values[R]
num_values[R]
string_values[R]

Public Class Methods

from_msgpack(m) click to toggle source
# File lib/jubatus/common/datum.rb, line 64
def Datum.from_msgpack(m)
  val = TYPE.from_msgpack(m)
  d = Datum.new
  d.string_values.concat(m[0])
  d.num_values.concat(m[1])
  d.binary_values.concat(m[2])
  return d
end
new(values = {}) click to toggle source
# File lib/jubatus/common/datum.rb, line 11
def initialize(values = {})
  @string_values = []
  @num_values = []
  @binary_values = []
  values.each { |key, v|
    raise TypeError unless String === key || Symbol === key
    k = key.to_s
    if String === v
      @string_values << [k, v]
    elsif Integer === v
      @num_values << [k, v.to_f]
    elsif Float === v
      @num_values << [k, v]
    else
      raise TypeError
    end
  }
end

Public Instance Methods

add_binary(key, value) click to toggle source
# File lib/jubatus/common/datum.rb, line 50
def add_binary(key, value)
  raise TypeError unless String === key
  if String === value
    @binary_values << [key, value]
  else
    raise TypeError
  end
end
add_number(key, value) click to toggle source
# File lib/jubatus/common/datum.rb, line 39
def add_number(key, value)
  raise TypeError unless String === key
  if Integer === value
    @num_values << [key, value.to_f]
  elsif Float === value
    @num_values << [key, value]
  else
    raise TypeError
  end
end
add_string(key, value) click to toggle source
# File lib/jubatus/common/datum.rb, line 30
def add_string(key, value)
  raise TypeError unless String === key
  if String === value
    @string_values << [key, value]
  else
    raise TypeError
  end
end
to_msgpack(out = '') click to toggle source
# File lib/jubatus/common/datum.rb, line 59
def to_msgpack(out = '')
  t = [@string_values, @num_values, @binary_values]
  return TYPE.to_msgpack(t)
end
to_s() click to toggle source
# File lib/jubatus/common/datum.rb, line 73
def to_s
  gen = Jubatus::Common::MessageStringGenerator.new
  gen.open("datum")
  gen.add("string_values", @string_values)
  gen.add("num_values", @num_values)
  gen.add("binary_values", @binary_values)
  gen.close()
  return gen.to_s
end