[MacRuby-devel] Weird behaviour for a weird line of code

Mark Rada mrada at marketcircle.com
Sun Nov 14 18:37:47 PST 2010


Hey,

I wrote a line of code that I thought was correct (but maybe not so pretty) and in one case it was giving me a weird error. I was wondering if someone could explain to me what is wrong with it; I suspect there is some behaviour of MacRuby that I am not understanding. Here are a few examples that are close to what I had:

A working case: (Case #1)

	require 'uri'
	test = URI.parse url unless (url = nil).nil? # works, as I expected, url is nil and the left side is not evaluated


Ok, try again, but without a nil value for url: (Case #2)

	require 'uri'
	 test = URI.parse url unless (url = 'http://macruby.org/').nil?  # error about url not being defined


Now, when I try this out in macirb: (Case #3)

	require 'uri'
	 test = URI.parse url unless (url = 'http://macruby.org/').nil?  # error again

	 test = URI.parse url unless (url = 'http://wikipedia.org/').nil? # works fine this time

	puts test.to_s  # gives me the wikipedia value


If it doesn't work in the second case, why does it start working in the third case?

Thanks,
	Mark



More information about the MacRuby-devel mailing list