class Depository::Serialize::Unpacker
Public Class Methods
new(config, attrs)
click to toggle source
# File lib/depository/serialize.rb, line 61 def initialize(config, attrs) self.config = config self.attrs = attrs end
Public Instance Methods
call()
click to toggle source
# File lib/depository/serialize.rb, line 66 def call columns.select { |column, opts| opts[:type] == :datetime && ![nil, 0].include?(attrs[column]) }.each { |column, opts| attrs[column] = drop_usecs(attrs[column]) } columns.select { |column, opts| opts[:type] == :date && ![nil, 0].include?(attrs[column]) }.each { |column, opts| attrs[column] = Date.parse(attrs[column]) if attrs[column].is_a?(String) } columns.select { |column, opts| !attrs[column].nil? && opts[:type] == :boolean }.each { |column, opts| attrs[column] = [1, true].include?(attrs[column]) } config.unpacker.call(attrs) attrs end
columns()
click to toggle source
# File lib/depository/serialize.rb, line 95 def columns @columns ||= Depository::Database.db.schema(config.db) end
drop_usecs(time)
click to toggle source
# File lib/depository/serialize.rb, line 85 def drop_usecs(time) if time.is_a?(String) Time.at(Time.parse(time).to_i) elsif time.is_a?(DateTime) Time.at(time.to_time.to_i) else Time.at(time.to_i) end end