I\'m dealing with game dialogue files (conversation between player and non-playable-characters) where dialogue choices and their outcome depend on certain conditions and res
A DSL would be a Mercedes-Benz implementation for this and would be fun to write in Ruby. You are right, it would take a lot of work but it might pay off if it was well written and this game really took off.
One thing to consider if going the XML route is the parser/engine you will be using to render it. Last I checked, REXML was the only show in town for Rubyists. If you like REXML then XML sounds like a good way to go, but if you have not tried it I would suggest doing that before making this decision. I am not picking on REXML, just advising a little caution since you will be completely dependent on this library, whatever you use.