1
resposta

Erro com o método "calcula_preco" direto na classe "Livro"

Desde quando inseri o método calcula preço direto na classe "Livro" o código me retorna um erro na hora de instanciar um objeto livro. Alguém pode me ajudar, por favor?

class Livro
    attr_reader :titulo, :preco, :ano_lancamento
    def initialize(titulo, preco, ano_lancamento, possui_reimpressao)
        @titulo = titulo
        @preco = calcula_preco(base)
        @ano_lancamento = ano_lancamento
        @possui_reimpressao = possui_reimpressao
    end

    def possui_reimpressao?
        @possui_reimpressao
    end

    private
    def calcula_preco(base)
        if @ano_lancamento < 2006
            if @possui_reimpressao
                base * 0.9
            else
                base * 0.95
            end
        elsif @ano_lancamento <= 2010
            base * 0.96
        else
            base
        end
    end
end

agile = Livro.new("Agile Web Development Rails", 70.00, 2011, true)
1 resposta

Oi Dougllas, tudo bem? Acontece que no cálculo do preço você está passando um argumento chamado base, mas não está passando esse valor, que talvez seja o preço informado no construtor não? Depois disso, tudo deve funcionar corretamente.