0
respostas

Duvida com o passagem de parametro para um método

Quando eu executo o meu código o terminal recebo o seguinte erro

O erro :

C:/Users/mateus viana/Videos/Ruby/exercisiosAlura/Curso Ruby Orienta��o Objeto/Sistema De Compras de Livros/Sistema.rb: C:/Users/mateus viana/Videos/Ruby/exercisiosAlura/Curso Ruby Orientação Objeto/Sistema De Compras de Livros/Estoque.rb:28: syntax error, unexpected ',', expecting ')' (SyntaxError)
    que_mais_vendeu_por( &:titulo , "LIVRO")
                                   ^
C:/Users/mateus viana/Videos/Ruby/exercisiosAlura/Curso Ruby Orientação Objeto/Sistema De Compras de Livros/Estoque.rb:28: syntax error, unexpected ')', expecting keyword_end
    que_mais_vendeu_por( &:titulo , "LIVRO")
                                            ^
C:/Users/mateus viana/Videos/Ruby/exercisiosAlura/Curso Ruby Orientação Objeto/Sistema De Compras de Livros/Estoque.rb:32: syntax error, unexpected ',', expecting ')'
  def que_mais_vendeu_por(&campo , tipo)
                                  ^

segue abaixo o código da minha classe estoque

Estoque.rb

class Estoque

  attr_reader :livros

  def initialize()

    @livros = []
    @livros.extend(Contador)
    @vendas = []

  end


  def mais_baratos_que(valor)

    @livros.select do |livro|

      livro.preco <= valor

    end

  end

  def livro_que_mais_vendeu_por_titulo

    que_mais_vendeu_por( &:titulo , "LIVRO")

  end

  def que_mais_vendeu_por(&campo , tipo)

    @vendas.select{|l| l.tipo == tipo.sort {|v1 , v2|}

      quantidade_de_vendas_por(v1 , &:campo) <=> quantidade_de_vendas_por(v2 , &:campo)

    }.last

  end

  def quantidade_de_vendas_por(livro , &campo )

    @vendas.count {|venda|  campo.call(venda) == campo.call(livro) }

  end

  def total

    return @livros.size

  end

  def exporta_csv()


    @livros.each do |livro|

      livro.to_csv

    end


  end


  def <<(livro)

    if livro

      @livros << livro

    end

    self
  end

  def vende(livro)

    @livros.delete(livro)
    @vendas << livro

  end

end