title: `name': wrong number of arguments (1 for 0) (ArgumentError)
body: <p>To make a setter and a getter for <code>Dessert</code> class, I made the following code:</p>
  
  <pre><code>class Dessert 
    def initialize(name,calories)
      @name=name
      @calories=calories
    end
    def name
      @name
    end
    def name=(names)
      @name=names
    end
    def calories
      @calories
    end
    def calories=(calory)
      @calories=calory
    end       
  end
  
  d=Dessert.new("Salad",1200)
  puts d.name("Khoresht")
  puts d.calories(1600)
  puts d.name()
  puts d.calories()
  </code></pre>
  
  <p>The setter and getter must have the same name, and the compiler recognizes them by their signature. But here, I face the error:</p>
  
  <pre><code>`name': wrong number of arguments (1 for 0) (ArgumentError)   
  </code></pre>
  
  <p>for the method name (the setter).</p>
  
  <p>Why does it happen?</p>