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 |