Dominic Son wrote:
> Hi. I'm confused as to why this variable* is nessesary:
>
> -----------
>
> def add_product(product)
>
> existing_product = @items.find {|item| item.product == product}
>
>     if existing_product
>     existing_product.increment_quantity
>
>         else
>         existing_product = CartItem.new(product)
>         @items << existing_product
>
>     end
>
>   existing_product*
>
> end
>
> --------------
>
> i'm a newb, and to a newb, i can't understand why a var just sits there. 
> can someone please explain what the purpose of exisiting_product* is?
>
> i'd figure exisiting_product* wouldn't be needed since on the 2nd line,
> existing_product is initialized with @items.find..blahblahblah..
>
>
>   
In Ruby, methods return the value of the last expression if there is no 
explicit return. That's why it looks like existing_product is just 
sitting there. It's the same as:

def add_product(product)

    ...stuff..

    return existing_product

end

-Justin