def myfunction(a, b = nil)
  if (b):
    puts "There's a B!"
  else
    puts "Business as usual..."
  end
end

If you have more than one argument, then do something like this...

def myfunction(args={})

a = args[:a] || 'my default A'

b = args[:b] || 'my default B'

# and so on...
end

myfunction(:a => 'b', :b => 'c')

You can do this with merge too (i.e., build a hash with the keys A, B,
and so on, and then merge it with the argument).

I think there's a more graceful way to do this, but I'm too tired to find it! :(

--Jeremy

On 1/2/07, Peter Lynch <argnosis / yahoo.com.au> wrote:
> I would like to know if a function has been called with or without an
> optional argument.
>
> If I have -
>
>  def the_Function (a, b = '')
>  end
>
> and I invoke it like this -
>
>  the_Function('a')
>  the_Function('a', '')
>
> is there any way for me to tell within the_Function which form of
> invocation was used?
>
> --
> Posted via http://www.ruby-forum.com/.
>
>


-- 
My free Ruby e-book:
http://www.humblelittlerubybook.com/book/

My blogs:
http://www.mrneighborly.com/
http://www.rubyinpractice.com/