When using puts out only the address, not the expected message

1

Hello, I'm starting with the ruby language and I encounter the following problem that is at the time of starting message through to_s:

main class

require File.expand_path("lib/Livro")

biblioteca = []

instancia = Livro.new "Ruby", "X", "Casa do Código", 56.40
instancia_dois = Livro.new "Java", "Y", "Casa do Código", 78.9

biblioteca << instancia
biblioteca << instancia_dois

puts biblioteca

class accessed

class Livro

    attr_accessor :preco,:autor,:editora,:nome

    def initialize nome_livro, autor,_editora = nil, preco
      @nome = nome_livro
      @autor = autor
      @editora = editora
      @preco = preco    
    end

    def to_s
      "Autor: #{@nome}, Autor: #{@autor}, Editora: #{@editora},Preço: #{@preco}"
    end
end 

In the output of the code instead of the message attached to to_s only the addresses of the objects appear, I tried to search the internet but found nothing that could help thanks right away.

    
asked by anonymous 13.07.2016 / 20:27

1 answer

0

Hello I ran your code here and it worked:

Instantiating the class

class Livro

 attr_accessor :preco,:autor,:editora,:nome    

 def initialize nome_livro, autor,_editora = nil, preco    
   @nome = nome_livro      
   @autor = autor      
   @editora = editora      
   @preco = preco          
 end      

 def to_s    
   "Autor: #{@nome}, Autor: #{@autor}, Editora: #{@editora},Preço: #{@preco}"      
 end      
end   

And running the tests:

biblioteca = []

instancia = Livro.new "Ruby", "X", "Casa do Código", 56.40
=> #<Livro:0x00000001f18aa0 @autor="X", @editora=nil, @nome="Ruby", @preco=56.4>
instancia_dois = Livro.new "Java", "Y", "Casa do Código", 78.9
=> #<Livro:0x00000001e71688 @autor="Y", @editora=nil, @nome="Java", @preco=78.9>

biblioteca << instancia
=> [#<Livro:0x00000001f18aa0 @autor="X", @editora=nil, @nome="Ruby", @preco=56.4>]
biblioteca << instancia_dois
=> [#<Livro:0x00000001f18aa0 @autor="X", @editora=nil, @nome="Ruby", @preco=56.4>, #<Livro:0x00000001e71688 @autor="Y", @editora=nil, @nome="Java", @preco=78.9>]

puts biblioteca
Autor: Ruby, Autor: X, Editora: ,Preço: 56.4
Autor: Java, Autor: Y, Editora: ,Preço: 78.9

I executed everything directly on the console.

    
14.07.2016 / 13:41