Sha256: 64ac9ea47f1a00abc7bc6f4d200812fba7c290edac87aba618e4747cadc7a5c9
Contents?: true
Size: 993 Bytes
Versions: 5
Compression:
Stored size: 993 Bytes
Contents
module CouchbaseOrm module Types class Array < ActiveModel::Type::Value attr_reader :type_class attr_reader :model_class def initialize(type: nil) if type.is_a?(Class) && type < CouchbaseOrm::NestedDocument @model_class = type @type_class = CouchbaseOrm::Types::Nested.new(type: @model_class) else @type_class = ActiveModel::Type.registry.lookup(type) end super() end def cast(values) return [] if values.nil? raise ArgumentError, "#{values.inspect} must be an array" unless values.is_a?(::Array) values.map(&@type_class.method(:cast)) end def serialize(values) return [] if values.nil? values.map(&@type_class.method(:serialize)) end end end end
Version data entries
5 entries across 5 versions & 1 rubygems