Getting ArgumenError while trying to create instance of a ruby class

I am trying to improve my OO ruby skills. I’ve created a class and when calling and trying to make ans instance of it, I get error.

Here is the code.

class EncapsulatedPerson
    def initialize(name)
        set_name(name)
    end

    def name
        @first_name + " "+ @last_name
    end

    def set_name
        first_name, last_name = name.split(/s+/)
        set_first_name(first_name)
        set_last_name(last_name)
    end

    def set_first_name
        @first_name = name
    end

    def set_last_name
        @last_name = name
    end

end

when I load the file, which I wrote above lines into, and attempt to create instances of this class

2.2.0 :004 > ep = EncapsulatedPerson.new('William Wallace')
ArgumentError: wrong number of arguments (1 for 0)
  ... # 

As I understand from error, I should pass 0 arguments when creating new instance (However I believe def initialize(name) ... necessiates one (name) argument’

2.2.0 :003 > ep = EncapsulatedPerson.new
ArgumentError: wrong number of arguments (0 for 1)

I’ve totally confused. How many arguments does new method require when trying to instantiate it? One argument or no argument?


Source: oop

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.