lib/skala.rb in skala-0.3.0 vs lib/skala.rb in skala-1.1.0
- old
+ new
@@ -1,7 +1,40 @@
-require "skala/version"
+require "active_support"
+require "active_support/core_ext"
+require "virtus"
+if ::Object.const_defined?("Rails")
+ require_relative "skala/engine"
+end
+
module Skala
+ # virtus objects do not deep_dup correctly, so the have to include this
+ module DeepDupable
+ def deep_dup
+ Marshal.load(Marshal.dump(self))
+ end
+ end
+
require_relative "skala/adapter"
- require_relative "skala/i18n"
- require_relative "skala/transformation"
+ require_relative "skala/aleph_adapter"
+ require_relative "skala/elasticsearch_adapter"
+ require_relative "skala/primo_adapter"
+
+ require_relative "skala/hold_request"
+ require_relative "skala/item"
+ require_relative "skala/loan"
+ require_relative "skala/record"
+ require_relative "skala/transaction"
+end
+
+# patch Virtus to not serialize unset lazy attributes
+class Virtus::AttributeSet
+ def get(object)
+ each_with_object({}) do |attribute, attributes|
+ name = attribute.name
+
+ if attribute.public_reader? && (!attribute.lazy? || attribute.defined?(object))
+ attributes[name] = object.__send__(name)
+ end
+ end
+ end
end