Pig Latin Translator - follow-up
Some points in addition to what checkorbored pointed out:


You should use character classes and the i flag for your regexen. E.g. instead of /a|e|i|o|u|A|E|I|O|U/ you can write /[aeiou]/i.
You should get rid of the explicit return statements where not necessary.
return foo if bar
return baz


should really be written as

if bar
  foo
else
  baz
end


Except if foo and baz are booleans in which case the whole thing can just be replaced by bar or !bar.
def initialize (options = {:dash =&gt; true})
  @dash = options[:dash]
end


In this case it doesn't matter because there's only one option in your options hash, but the usual idiom to implement keyword arguments with defaults looks like this:

def initialize (options = {})
  options = {:dash =&gt; true}.merge(options)
  @dash = options[:dash]
end


The reason that (options = {defaults}) is generally not used, is that it doesn't allow the user to specify some options, but use the default for others. So if you do def bla(options = {:foo =&gt; 42, :bar =&gt; 23}) and the user calls bla(:bar =&gt; 24) the value for :foo will be nil, not 42. That doesn't happen if you use merge instead.