diff options
Diffstat (limited to 'src/guff/post.cr')
-rw-r--r-- | src/guff/post.cr | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/src/guff/post.cr b/src/guff/post.cr index 7247e15..735682c 100644 --- a/src/guff/post.cr +++ b/src/guff/post.cr @@ -1,10 +1,21 @@ -class Guff:Post +class Guff::Post def initialize(@row : Hash(String, ::SQLite3::Value)) end - def to_json - @row.merge({ - "tags": @row["tags"].split('|') - }).to_json + 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 end |