Exactly as it's written on the page.
The first part returns fine, and then I start the second part with the "sandy_addr = Address.new" and it gives me this.
irb(main):181:0> sandy_addr = Address.new
ArgumentError: wrong number of arguments (0 for 1)
from (irb):181:in `initialize'
from (irb):181
irb(main):182:0>
i've tried most of the examples and to the best of my knowledge, all of them
work just fine.
The first part returns fine, and then I start the second part with the
"sandy_addr = Address.new" and it gives me this.
irb(main):181:0> sandy_addr = Address.new
ArgumentError: wrong number of arguments (0 for 1)
from (irb):181:in `initialize'
from (irb):181
from :0
irb(main):182:0>
Do you do all your programs on an irb shell ? Its cool for small stuff, but
if your programs are ``pretty big" the chance of commiting a typo on the
shell and overlooking it is pretty large.
Try pasting the entire thing onto a .rb file and then running ruby on it.
Also, out of pure curiosity(and nothing else), which operating system are
you using.
Exactly as it's written on the page.
The first part returns fine, and then I start the second part with the
"sandy_addr = Address.new" and it gives me this.
irb(main):181:0> sandy_addr = Address.new
ArgumentError: wrong number of arguments (0 for 1)
from (irb):181:in `initialize'
from (irb):181
from :0
irb(main):182:0>
Anybody?
I guess the problem could be here: (in Person.initialize)
@address = Address.new
since the initialize() of Address needs 1 param (and not 0):
class Address
def initialize(street) @street = street
end
end
i.e. the wrong line should read
@address = Address.new('Calle Bolívar, Buenos Aires')
Exactly as it's written on the page.
The first part returns fine, and then I start the second part with the
"sandy_addr = Address.new" and it gives me this.
irb(main):181:0> sandy_addr = Address.new
ArgumentError: wrong number of arguments (0 for 1)
from (irb):181:in `initialize'
from (irb):181
from :0
irb(main):182:0>
Anybody?
Ah, OK, i scrolled down and there is the correct definition of Address
you should use:
class Address
attr_accessor :street, :city, :state, :zip
def initialize @street = @city = @state = @zip = ""
end
end
so you probably (like me) used a different implementation of Address,
where the constructor takes a parameter.
Replace your implementation of Address with the above one, and
everything should work.
I'm using irb to get a feel for it yah, I'm probably going to have start committing to using a text editor (i want textmate so bad, but don't have a mac).
Anyways I figured out what the problem was...
address = addres.new
is a typo on the page, once I added the second s, i've actually made it to the end of the example.
I'm using linux btw.
I'd prefer to use this on my windows, (dualboot) so i don't have chmod everything but limited time and space.
i've tried most of the examples and to the best of my knowledge, all of them
work just fine.
The first part returns fine, and then I start the second part with the
"sandy_addr = Address.new" and it gives me this.
irb(main):181:0> sandy_addr = Address.new
ArgumentError: wrong number of arguments (0 for 1)
from (irb):181:in `initialize'
from (irb):181
from :0
irb(main):182:0>
Do you do all your programs on an irb shell ? Its cool for small stuff, but
if your programs are ``pretty big" the chance of commiting a typo on the
shell and overlooking it is pretty large.
Try pasting the entire thing onto a .rb file and then running ruby on it.
Also, out of pure curiosity(and nothing else), which operating system are
you using.
Regards,
- vihan
--
skt
shyguyfrenzy@gmail.com
"I sing a song, falling upon deaf ears; unsung."
Exactly as it's written on the page.
The first part returns fine, and then I start the second part with the
"sandy_addr = Address.new" and it gives me this.
irb(main):181:0> sandy_addr = Address.new
ArgumentError: wrong number of arguments (0 for 1)
from (irb):181:in `initialize'
from (irb):181
from :0
irb(main):182:0>
Anybody?
I guess the problem could be here: (in Person.initialize)
@address = Address.new
since the initialize() of Address needs 1 param (and not 0):
class Address
def initialize(street) @street = street
end
end
i.e. the wrong line should read
@address = Address.new('Calle Bolívar, Buenos Aires')
If you find you are always doing chmod +x on files with
#!/usr/bin/ruby in the first line, you can always run them with 'ruby
<filename>'. That doesn't require making the file executable, since
it's treated as a datafile by the ruby exec. If for some reason your
new files aren't rw, you probably need to set your umask in your shell
startup script (~/.bashrc or similar).
There are lots of good text editors out there, I'd recommend vim/emacs
but then you'd have two problems nano is probably the way to go for
instant gratification.
···
On 11/9/06, skt <shyguyfrenzy@gmail.com> wrote:
I'm using linux btw.
I'd prefer to use this on my windows, (dualboot) so i don't have chmod
everything but limited time and space.