28 lines
701 B
Ruby
28 lines
701 B
Ruby
class LiquidServlet < WEBrick::HTTPServlet::AbstractServlet
|
|
|
|
def do_GET(req, res)
|
|
handle(:get, req, res)
|
|
end
|
|
|
|
def do_POST(req, res)
|
|
handle(:post, req, res)
|
|
end
|
|
|
|
private
|
|
|
|
def handle(type, req, res)
|
|
@request, @response = req, res
|
|
|
|
@request.path_info =~ /(\w+)$/
|
|
@action = $1 || 'index'
|
|
@assigns = send(@action) if respond_to?(@action)
|
|
|
|
@response['Content-Type'] = "text/html"
|
|
@response.status = 200
|
|
@response.body = Liquid::Template.parse(read_template).render(@assigns, :filters => [ProductsFilter])
|
|
end
|
|
|
|
def read_template(filename = @action)
|
|
File.read( File.dirname(__FILE__) + "/templates/#{filename}.liquid" )
|
|
end
|
|
end |