Skip to content

Instantly share code, notes, and snippets.

@olvap
Last active February 13, 2020 19:45
Show Gist options
  • Save olvap/37ba6d9af9ad4ed4ea118db9ec1aa934 to your computer and use it in GitHub Desktop.
Save olvap/37ba6d9af9ad4ed4ea118db9ec1aa934 to your computer and use it in GitHub Desktop.
class Produto
attr_accessor :nome, :categoria, :preco, :estoque
def initialize(nome:, categoria: 'Geral', preco:, estoque:)
@nome = nome
@categoria = categoria
@preco = preco
@estoque = estoque
end
end
describe 'Produto' do
it 'deveria conseguir criar um objeto Produto de categoria específica' do
nome = 'Cabo HDMI'
categoria = 'Eletrônicos'
preco = 25
estoque = 5
produto = Produto.new(nome: nome, categoria: categoria , preco: preco, estoque: estoque)
expect(produto.nome).to eq 'Cabo HDMI'
expect(produto.categoria).to eq 'Eletrônicos'
expect(produto.preco).to eq 25
expect(produto.estoque).to eq 5
end
@olvap
Copy link
Author

olvap commented Feb 13, 2020

son dos formas diferentes de definir los argumentos de un metodo.

class Producto
  def initialize(name)
  end
end

esto se usa asi:
Producto.new("nombre")

y esto:

class Producto
  def initialize(name:)
  end
end

Se usa asi
Producto.new(name: "nombre")

@aledruetta
Copy link

Y hash no necesita un delimitador, tipo { }, como en Python? Los dos puntos al final de la "key:" ya identifican la estructura.

@olvap
Copy link
Author

olvap commented Feb 13, 2020

no es realmente un hash, son variables con nombres, pero muchas veces no es necesario usar las llaves. es como los parentesis, a veces es evidente y no son necesarios

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment