Olá! Estou tentando prosseguir com os exercícios, mas estou recebendo sempre o mesmo erro:
22:in `calcula_preco': undefined method `<' for nil:NilClass (NoMethodError)
Obrigada!
class Livro
attr_reader :titulo,:preco, :ano
def initialize(titulo, preco, ano, reimpressao)
@titulo = titulo
@preco = calcula_preco preco
@ano = ano
@reimpressao = reimpressao
end
def to_csv
"#{@titulo}, #{@ano}, #{@preco}"
end
def reimpressao?
@reimpressao
end
private
def calcula_preco base
if @ano < 2006
if @reimpressao
base * 0.9
else
base 0.95
end
elseif @ano <= 2010
base * 0.96
else
base
end
end
end
def livro_para_newsletter livro
if livro.ano < 1999
puts "Newsletter/Liquidação"
puts livro.titulo
puts livro.preco
puts livro.reimpressao
end
end
class Estoque
def initialize
@livros = []
end
def exporta_csv
@livros.each do |livro|
puts to_csv
end
end
def mais_barato_que valor
@livros.select do |livro|
livro.preco <= valor
end
end
def total
@livros.size
end
def adiciona livro
@livros << livro if livro
end
end
algoritmos = Livro.new("Algoritmos", 100, 1998, true)
arquitetura = Livro.new("Livro de Arquitetura", 70, 2011, true)
estoque = Estoque.new
estoque.adiciona << algoritmos
estoque.adiciona << arquitetura
estoque.adiciona = [algoritmos, arquitetura]
estoque.adiciona << Livro.new("The pragmatic programmer", 100, 1999, true)
estoque.adiciona << Livro.new("Programando com Ruby", 100, 2004, true)
estoque.adiciona livro
estoque.exporta_csv
baratos = estoque.mais_barato_que 80
baratos.each do |livro|
puts livro.titulo
end