Sha256: fd28ce5580d973ce591260d325de541c413ab1479250c5e1b7f1d06296bfb5bd
Contents?: true
Size: 1.71 KB
Versions: 1
Compression:
Stored size: 1.71 KB
Contents
java_import "clojure.lang.PersistentHashSet" java_import "clojure.lang.Keyword" module Zweikopf module Primitive def self.is_primitive_type?(obj) # monkey patch to remove DateTime from list of primitives and allow them to be converted. :-/ [String, Fixnum, Integer, Float, TrueClass, FalseClass].include?(obj.class) end end module Keyword # Monkey patch special handling for datalog variables def self.from_ruby(keyword) if keyword.to_s =~ /^[?$]/ Java::ClojureLang::Symbol.intern(keyword.to_s) else ::Keyword.intern(keyword.to_s) end end end end module Dalton module Translation module_function #TODO: Fork Zweikopf, add Set handling, submit pull request 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 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 end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
dalton-0.0.1 | lib/dalton/translation.rb |