require "./handler" module Guff class BlogHandler < Handler MATCHES = [%r{ ^/ # match YYYY/MM/DD/SLUG.html (?\d{4}) / (?\d{2}) / (?\d{2}) / (?[a-z0-9._-]+) \.html $ }x, %r{ ^/ # match YYYY/MM/DD (?\d{4}) / (?\d{2}) / (?\d{2}) /? $ }x, %r{ ^/ # match YYYY/MM (?\d{4}) / (?\d{2}) /? $ }x, %r{ ^/ # match YYYY (?\d{4}) /? $ }x, %r{ # match index ^/$ }x] def call(context : HTTP::Server::Context) path = context.request.path || "" if md = MATCHES.reduce(nil) { |r, m| r || m.match(path) } context.response.puts "blog match: %s" % [md.to_s] else call_next(context) end end end end