From: Colby Callahan Date: 2013-02-06T05:26:12+09:00 Subject: Re: using an instance variable inside a method --0015175d04ee1e20f704d5000503 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable @price is an instance variable not a class variable ($price) I believe. On Tue, Feb 5, 2013 at 12:17 PM, FirstName Surname wr= ote: > Hello. > > I'm learning ruby 1.9 by reading the book "Programming Ruby 1.9 > The Pragmatic Programmers=92 Guide" > > Actually i'm on the page 57 and i think something is wrong. Let's show > the involved code : > > #--- > # Excerpted from "Programming Ruby", > # published by The Pragmatic Bookshelf. > # Copyrights apply to this code. It may not be used to create training > material, > # courses, books, articles, and the like. Contact us if you are in > doubt. > # We make no guarantees that this code is fit for any purpose. > # Visit http://www.pragmaticprogrammer.com/titles/ruby3 for more book > information. > #--- > class BookInStock > > attr_reader :isbn > attr_accessor :price > > def initialize(isbn, price) > @isbn =3D isbn > @price =3D Float(price) > end > > def price_in_cents > Integer(price*100 + 0.5) > end > # ... > end > book =3D BookInStock.new("isbn1", 33.80) > puts "Price =3D #{book.price}" > puts "Price in cents =3D #{book.price_in_cents}" > > > About the method price_in_cents, i think it should be written like that > instead : > > def price_in_cents > Integer(@price*100 + 0.5) > end > > Simply because unless i'm really missing something, "price" is a class > attribute after all there, it seems that in this case the "@" is > implicit, but that doesn't look the appropriate way to write it, right ? > Anyway i've tested with and without the "@", the result is the same. > > So is this a common practice in ruby or what ? > > Thx for reading. > > -- > Posted via http://www.ruby-forum.com/. > --0015175d04ee1e20f704d5000503 Content-Type: text/html; charset=windows-1252 Content-Transfer-Encoding: quoted-printable
@price is an instance variable not a class variable ($pric= e) I believe.




On Tue, Feb 5, 2013 at 12:17 PM, FirstN= ame Surname <lists@ruby-forum.com> wrote:
Hello.

I'm learning ruby 1.9 by reading the book "Programming Ruby 1.9 The Pragmatic Programmers=92 Guide"

Actually i'm on the page 57 and i think something is wrong. Let's s= how
the involved code :

#---
# Excerpted from "Programming Ruby",
# published by The Pragmatic Bookshelf.
# Copyrights apply to this code. It may not be used to create training
material,
# courses, books, articles, and the like. Contact us if you are in
doubt.
# We make no guarantees that this code is fit for any purpose.
# Visit http://www.pragmaticprogrammer.com/titles/ruby3 for more bo= ok
information.
#---
class BookInStock

=A0 attr_reader =A0 :isbn
=A0 attr_accessor :price

=A0 def initialize(isbn, price)
=A0 =A0 @isbn =A0=3D isbn
=A0 =A0 @price =3D Float(price)
=A0 end

=A0 def price_in_cents
=A0 =A0 Integer(price*100 + 0.5)
=A0 end
=A0 # ...
end
book =3D BookInStock.new("isbn1", 33.80)
puts "Price =A0 =A0 =A0 =A0 =A0=3D #{book.price}"
puts "Price in cents =3D #{book.price_in_cents}"


About the method price_in_cents, i think it should be written like that
instead :

=A0 def price_in_cents
=A0 =A0 Integer(@price*100 + 0.5)
=A0 end

Simply because unless i'm really missing something, "price" i= s a class
attribute after all there, it seems that in this case the "@" is<= br> implicit, but that doesn't look the appropriate way to write it, right = ?
Anyway i've tested with and without the "@", the result is th= e same.

So is this a common practice in ruby or what ?

Thx for reading.

--
Posted via http://= www.ruby-forum.com/.

--0015175d04ee1e20f704d5000503--