From: JSU Date: 2009-06-17T07:00:05+09:00 Subject: Syntax error in Ruby Cookbook example I am practicing/learning Ruby using Study Notes from www.ruby-lang.org. I am working on Validation program taken from Ruby Cookbook, but unable to run program as is. Please advise where I may have gone wrong. Thanks in advance. JSU # p050inputvalidation.rb # Here's an example from the Ruby Cookbook, # showing how one can do validation of user's inputs. class Name # Define default getter methods, but not setter methods. attr_reader :first, :last # When someone tries to set a first name, # enforce rules about it. def first=(first) if (first == nil or first.size == 0) raise ArgumentError.new('Everyone must have a first name.') end first = first.dup first[0] = first[0].chr.capitalize @first = first end # When someone tries to set a last name, # enforce rules about it. def last=(last) if (last == nil || last.size == 0) raise ArgumentError.new('Everyone must have a last name.') end last[0] = last[0].chr.capitalize @last = last end def full_name "#{@first} #{@last}" end # Delegate to the setter methods instead of # setting the instance variables directly. def initialize(first, last) self.first = first self.last = last end end jacob = Name.new('Jacob', 'Berendes') jacob.first = 'Mary Sue' jacob.full_name # => "Mary Sue Berendes" john = Name.new('John', 'Von Neumann') john.full_name # "John Von Neumann" john.first = 'john' john.first # => "john" john.first = nil # ArgumentError: Everyone must have a first name. Name.new('Kero, international football star and performance artist', nil) # ArgumentError: Everyone must have a last name. And my output is as follows: >ruby p050inputvalidation.rb p050inputvalidation.rb:11:in `first=': Everyone must have a first name. (ArgumentError) from p050inputvalidation.rb:46 >Exit code: 1 Thanks again!