Method: Hanami::Model::Types::ClassMethods#Collection

Defined in:
lib/hanami/model/types.rb

#Collection(type) ⇒ Object

Define an array of given type

Examples:

require "hanami/model"

class Account < Hanami::Entity
  attributes do
    # ...
    attribute :users, Types::Collection(User)
  end
end

 = Account.new(users: [User.new(name: "Luca")])
user    = .users.first
user.class # => User
user.name  # => "Luca"

 = Account.new(users: [{ name: "MG" }])
user    = .users.first
user.class # => User
user.name  # => "MG"

Parameters:

  • type (Object)

    an object

Since:

  • 0.7.0



75
76
77
78
# File 'lib/hanami/model/types.rb', line 75

def Collection(type)
  type = Schema::CoercibleType.new(type) unless type.is_a?(Dry::Types::Definition)
  Types::Array.member(type)
end