class Bitfinex::Models::Model

Public Class Methods

new(data, fields, boolFields) click to toggle source
# File lib/models/model.rb, line 4
def initialize (data, fields, boolFields)
  @fields = fields
  @boolFields = boolFields

  if data.kind_of?(Array)
    apply(self.class.unserialize(data))
  elsif data.kind_of?(Hash)
    apply(data)
  end
end
unserialize(data, fields, boolFields) click to toggle source
# File lib/models/model.rb, line 39
def self.unserialize (data, fields, boolFields)
  obj = {}

  fields.each do |key, index|
    return if index.nil?

    if boolFields.include?(key)
      obj[key] = data[index] == 1
    else
      obj[key] = data[index]
    end
  end

  return obj
end

Public Instance Methods

apply(obj) click to toggle source
# File lib/models/model.rb, line 31
def apply (obj)
  @fields.each do |key, index|
    return if index.nil?

    instance_variable_set("@#{key}", obj[key])
  end
end
serialize() click to toggle source
# File lib/models/model.rb, line 15
def serialize
  arr = []

  @fields.each do |key, index|
    return if index.nil?

    if @boolFields.include?(key)
      arr[index] = instance_variable_get("@#{key}") ? 1 : 0
    else
      arr[index] = instance_variable_get("@#{key}")
    end
  end

  arr
end