Version 1:  The "pretty" one with 'end's

require 'rubygems'
require 'ruby2ruby'

class Quine < Object
  def initialize
    puts "require 'rubygems'\nrequire 'ruby2ruby'\n#{Ruby2Ruby.translate
self.class}\nQuine.new\n"
  end
end
Quine.new


Version two, much less maintainable:

a="a=%p;puts a%%a";puts a%a

Version 3, cheating (unix only):

puts `cat #{$0}`