Sha256: 7275f4ea9d12af11f0d86e14a9b3202da893076be0c3dbe9c575ced52d93ed0b

Contents?: true

Size: 822 Bytes

Versions: 1

Compression:

Stored size: 822 Bytes

Contents

module BaseModels

  class Person
    include CleanModel::Base

    attribute :first_name
    attribute :last_name
    attribute :nationality, default: :argentina
    attribute :age, default: -> { Time.now.year - 1979 }

    validates_presence_of :first_name, :last_name
  end

  class Engine
    include CleanModel::Base

    attribute :power, class_name: :numeric
    attribute :cylinders, class_name: :integer
    attribute :valves, class_name: 'Integer'
  end

  class Car
    include CleanModel::Base

    attribute :brand
    attribute :model
    attribute :engine, class_name: 'BaseModels::Engine'
    attribute :comfort, transformation: lambda { |v| v.is_a?(String) ? v.split(',').map(&:strip) : v }
  end

  class Factory
    include CleanModel::Base

    attribute :cars, collection: 'BaseModels::Car'
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
clean_model-0.0.6 spec/support/models/base_models.rb