Sha256: 401a26548ac0c440dd2b0cb728fb513fe1dd51ce2ef9e7c71078f36dc6dc57ce

Contents?: true

Size: 725 Bytes

Versions: 1

Compression:

Stored size: 725 Bytes

Contents

class Car
  attr_reader :car_id, :model, :owner_id, :tenant_id

  def initialize(car_id, model, owner_id, tenant_id)
    validate_null('car_id', car_id)
    validate_null('model', model)
    validate_null('owner_id', owner_id)
    validate_null('tenant_id', tenant_id)

    validate_title_length(model)

    @car_id = car_id
    @model = model
    @owner_id = owner_id
    @tenant_id = tenant_id
  end

  private

  def validate_null(name, value)
    if value.nil?
      raise ArgumentError, "Argument '#{name}' cannot be null"
    end
  end

  def validate_title_length(model)
    if model.length > 255
      raise ArgumentError, "Model exceeds 255 characters limit: #{model}"
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
shnaider_carproj-0.1.0 lib/models/car.rb