require "html" require "ecr/macros" class Guff::Post getter :row def initialize(@row : Hash(String, ::SQLite3::Value)) end def to_json(io) @row.reduce({} of String => String | Array(String)) do |r, k, v| r[k] = v.to_s r end.merge({ "tags": tags }).to_json(io) end def name : String @row["name"] as String end private def tags : Array(String) @tags ||= if @row.has_key?("tags") && (@row["tags"] as String).size > 0 (@row["tags"] as String).split('|') else [] of String end end private def h(s) : String HTML.escape(s) end # FIXME: does this belong elsewhere? ECR.def_to_s("./src/guff/views/ecrs/post.ecr") end