mirror of
https://github.com/kemko/liquid.git
synced 2026-01-02 00:05:42 +03:00
* Enabled frozen string literals * Update rubocop config * Prefer string interpolation in simple cases Co-Authored-By: Dylan Thacker-Smith <dylan.smith@shopify.com>
31 lines
712 B
Ruby
31 lines
712 B
Ruby
# frozen_string_literal: true
|
|
|
|
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 = req
|
|
@response = res
|
|
|
|
@request.path_info =~ /(\w+)\z/
|
|
@action = Regexp.last_match(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("#{__dir__}/templates/#{filename}.liquid")
|
|
end
|
|
end
|