I have been preparing a release of Transaction::Simple 1.4 and want to
make it work with Ruby 1.9, so I've been using today's snapshot to run
the tests. A few things seem to be a bit more thorough than previously
done, but one change I don't understand -- and it probably happened a
while ago while I was busy getting married and all that.

I have some code like:

  if rr.instance_variables.include?("@__transaction_checkpoint__")

This works beautifully on 1.8; it fails miserably on 1.9. The version
that fixes it on 1.9 fails just as miserably on 1.8:

  if rr.instance_variables.include?(:@__transaction_checkpoint__)

Now, I don't *really* need this particular test except to dramatically
reduce the number of warnings generated by Transaction::Simple; what
I'm curious about is why the change was made. Alternatively, without
doing a check on RUBY_VERSION, how can I have one test that works in
both Ruby 1.8 and Ruby 1.9?

-austin
P.S. Matz, I will be posting afterwards to my blog a bit further about
the transaction stuff that we talked about at RubyConf. Is the "ugly
hack" that you implemented going to remain, or are we going to have
something a little nicer? There's also some stuff that Pit Capitain
suggested to me that fixes the problem for up to 90% of cases
(excepting where custom Marshaling is required and other
circumstances).
-- 
Austin Ziegler * halostatue / gmail.com * http://www.halostatue.ca/
               * austin / halostatue.ca * http://www.halostatue.ca/feed/
               * austin / zieglers.ca