palindromic quine

回文になっている quine です。以下のように動けば正解です。

$ ruby pquine.rb > pquine2.rb
$ diff pquine.rb pquine2.rb
$ ruby -e 's = File.read("pquine.rb"); p(s == s.reverse)'
true


以下は僕の考えた解答。
どれも改行コードは LF で、ファイル末尾に改行をつけないで実行してください。
まずはインチキ。

DATA.rewind
$> << DATA.read
__END__
__DNE__
daer.ATAD << >$
dniwer.ATAD

一行コメントを使うとわりと簡単。

eval s="$><<\"eval s=\#{t=s.inspect}#\"+(s[5,7]+t).reverse"#"esrever.)t+]7,5[s(+"\#}tcepsni.s=t{#\=s lave"\<<>$"=s lave

method_missing で。

s=<<ab
def
method_missing*x;0;end
alias
dne print;nigeb;dne"s=<<ab
"+s+"ab
eval s;s lave
ba
"<<s.chomp.reverse<<"
ba<<=s"
nigeb;begin;end
fednu
!eniuq cimordnilap
ab
eval s;s lave
ba
palindromic quine!
undef
dne;nigeb;begin
"s=<<ab
"<<esrever.pmohc.s<<"
ab
eval s;s lave
ba"+s+"
ba<<=s"end;begin;tnirp end
saila
dne;0;x*gnissim_dohtem
fed
ba<<=s