9 Nisan 2009 Perşembe

RHP (RHP: HTML Preprocessor)

**UYARI: Aşağıda gördüğünüz şeyler geyik amaçlıdır, ciddiye almayınız**
Ruby, PHP'ye kıyasla dandik olan, yumoşlar ve mac kullanan zengin çocukları için olan bir dil, hepimiz bunun farkındayız. Ayrıca rails ölçeklenemiyor, ruby acayip yavaş ve rails bir getto. Rails ölçeklenemiyor demiş miydim?
Neyse benim gibi bazı delikanlı ve cesur insanlar çıkıp Ruby için daha adam gibi web zıbıdıkları yazabiliyor. RHP de bunlardan biri. Kendisi rack üzerine oturtulmuş olup, oldukça basit bir yapıdadır. Şu anki implementasyonu sadece 18 satır tutmakta olup, PHP'nin aslında ne kadar basit ancak bir o kadar muhteşem olduğunu da göstermektedir. Öyle rails gibi noob işi commentlere, testlere falan gerek yok.
Ve aşağıda da RHP'nin rackup dosyasının komple kaynak kodunu görmekteyiz;

require 'erb'
class RHP
Headers = {"Content-Type" => "text/html"}
def call(env)
req = Rack::Request.new(env)
filename = env["PATH_INFO"][1..-1]
$_REQUEST = req.params
begin
[300, Headers, ERB.new(File.read(filename)).result(binding)]
rescue Errno::ENOENT
[404, Headers, "404"]
rescue
[500, Headers, "500"]
end
end
end

run RHP.new


şu da örnek bir RHP sayfası

<%= Time.now %>


<%= $_REQUEST['id'] %>

<%
class Point
attr_accessor :x, :y
def initialize(x,y)
@x, @y = x,y
end
def to_s
"(#{@x},#{@y})"
end
end
$pt = Point.new(42,21)
%>
<%= $pt %>

<% require 'digest/md5' %>
<%= Digest::MD5.hexdigest("42") %>

Hiç yorum yok:

Yorum Gönder