aboutsummaryrefslogtreecommitdiff
path: root/src/guff/api-docs-html-view.cr
blob: 83c28d03e12a45f1aed7ef52ff793f3384ad2488 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
require "html"
require "ecr/macros"
require "./page-html-view"
require "./api-methods"

module Guff
  class APIDocsHTMLView
    TITLE = "Guff API Documentation"

    def self.run(context : HTTP::Server::Context)
      page = PageHTMLView.new(TITLE, new.to_s)
      context.response.content_type = page.content_type
      context.response.puts page
    end

    private def namespaces
      APIMethods::API.keys.sort
    end

    private def methods(namespace : String)
      APIMethods::API[namespace].keys.sort
    end

    def h(s : String)
      HTML.escape(s || "")
    end

    ECR.def_to_s("./src/guff/views/api-docs.ecr")
  end
end