<% require "cgi-lib" class Hacker attr_reader :name, :scriptstr def initialize(name, scriptstr) @name, @scriptstr = name, scriptstr end def result; eval @scriptstr; end end hackers_data = [ ['わたなべ氏', 'print(eval %-%: Just another ruby hacker, :-)'], ['青山氏', '(eval %|eval %:print %/Just another ruby hacker, /:|)'], ['前田氏', "'tsuJona rehtbuR ah yrekc,'.unpack('N6c').pack('V6c').display"], ['わたなべ氏', %q|$> << "4a75737420616e6f746865722052756279206861636b65722c".gsub(/../, '=\\&').unpack("M").join|], ['前田氏', 'print "Just another Ruby hacker,".unpack("M")'], ['前田氏', '$><<"jUST ANOTHER rUBY HACKER,".swapcase'], ['あおき氏', '[74,117,115,116,32,97,110,111,116,104,101,114,32,82,117,98,121,32,104,97,99,107,101,114,44,10 ].each do |i| print i.chr end'], ['ふなば氏', %q|'abcdefghijklmnopqrstuvwxyz'.tr('gqtkmevuxndyfohljsrwzciabp','nyae kcrRt,auorhh e stJub').display|], ['わたなべ氏', 'print eval %<%%Just another Ruby hacker,%%>'] ] %>

various 'Just another Ruby Hacker,'

<%hackers_data.each do |h| hacker = Hacker.new(*h)%> <%end%>
HackerName Script Result
<%=hacker.name%> <%=CGI::escapeHTML(hacker.scriptstr)%> <%hacker.result%>