module Dalton::Translation

Public Instance Methods

from_clj(object) click to toggle source

TODO: Fork Zweikopf, add Set handling, submit pull request

# File lib/dalton/translation.rb, line 30
def from_clj(object)
  Zweikopf::Transformer.from_clj(object) do |value|
    case value
      when Java::ClojureLang::Symbol
        value.to_s.to_sym
      when Java::JavaUtil::Set
        Set.new(value.map{|x| from_clj(x)})
      when Java::JavaUtil::ArrayList
        value.map { |x| from_clj(x) }
      when Java::Datomic::Entity, Java::DatomicQuery::EntityMap
        Dalton::Entity.new(value)
      when Java::JavaUtil::Date
        Time.at(value.getTime / 1000).to_datetime
      else
        value
    end
  end
end
from_ruby(object) click to toggle source
# File lib/dalton/translation.rb, line 49
def from_ruby(object)
  Zweikopf::Transformer.from_ruby(object) do |value|
    case value
      when ::Set
        PersistentHashSet.create(value.map{|x| from_ruby(x)})
      when Dalton::Entity
        value.datomic_entity
      when DateTime
        Java::JavaUtil::Date.new(value.to_time.to_i * 1000)
      else
        value
    end
  end
end