require "html"
require "ecr/macros"
class Guff::Post
  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
  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