class NoBrainer::TypedArray
Public Class Methods
name()
click to toggle source
# File lib/no_brainer/document/types/array.rb, line 53 def self.name str = String.new "Array" str += "(#{object_type.name})" if respond_to?(:object_type) str end
nobrainer_cast_db_to_model(values)
click to toggle source
# File lib/no_brainer/document/types/array.rb, line 81 def self.nobrainer_cast_db_to_model(values) values = ::Array.wrap(values) if object_type.respond_to?(:nobrainer_cast_db_to_model) values.map { |value| object_type.nobrainer_cast_db_to_model(value) } else values end end
nobrainer_cast_model_to_db(values)
click to toggle source
# File lib/no_brainer/document/types/array.rb, line 72 def self.nobrainer_cast_model_to_db(values) values = ::Array.wrap(values) if object_type.respond_to?(:nobrainer_cast_model_to_db) values.map { |value| object_type.nobrainer_cast_model_to_db(value) } else values end end
nobrainer_cast_user_to_model(values)
click to toggle source
delegate cast methods to object_type cast methods, if defined
# File lib/no_brainer/document/types/array.rb, line 60 def self.nobrainer_cast_user_to_model(values) cast_type = object_type.respond_to?(:nobrainer_cast_user_to_model) && object_type values = ::Array.wrap(values).map do |value| value = cast_type.nobrainer_cast_user_to_model(value) if cast_type unless (value.nil? && allow_nil?) || value.is_a?(object_type) raise NoBrainer::Error::InvalidType, type: object_type.name, value: value end value end new(values) end
of(object_type, allow_nil: false)
click to toggle source
# File lib/no_brainer/document/types/array.rb, line 45 def self.of(object_type, allow_nil: false) NoBrainer::Document::Types.load_type_extensions(object_type) ::Class.new(TypedArray) do define_singleton_method(:object_type) { object_type } define_singleton_method(:allow_nil?) { allow_nil } end end