I'm not sure any of the previous answers will help you learn ruby,
hopefully this is a better explanation to why this error occurred.

Your original statement:
     pin_number == @pin ? puts "Balance: $#{@balance}." : pin_error

the ruby interpreter thinks you are doing this
  if pin_number == @pin

puts "Balance: $#{balance}" : pin_error

  else

since you didn't include the parentheses it tries to pass the remaining
parts of the short-hand conditional into the puts function

if you try calling:
     puts "Balance: $#{@balance}" : pin_error

you will see a similar error message.

By putting the parentheses around "Balance: $#{@balance}" you are telling
the ruby interpreter that you only want that argument passed into the puts
function.

Hopefully that sheds some more light on the error.

-Cameron

On Wed, Nov 19, 2014 at 9:09 AM, Roelof Wobben <r.wobben / home.nl> wrote:

> Yukihiro Matsumoto schreef op 19-11-2014 16:03:
>
>> pin_number == @pin ? puts("Balance: $#{@balance}.") : pin_error
>>
>
> Sorry, it works,
>
> My fault is that I made it a private function.
>
> Roelof
>
>