summaryrefslogtreecommitdiffstats
path: root/src/helpers.cr
diff options
context:
space:
mode:
Diffstat (limited to 'src/helpers.cr')
-rw-r--r--src/helpers.cr34
1 files changed, 16 insertions, 18 deletions
diff --git a/src/helpers.cr b/src/helpers.cr
index 7aefe615..deb46080 100644
--- a/src/helpers.cr
+++ b/src/helpers.cr
@@ -1,3 +1,18 @@
+macro add_mapping(mapping)
+ def initialize({{*mapping.keys.map { |id| "@#{id}".id }}})
+ end
+
+ def to_a
+ return [{{*mapping.keys.map { |id| "@#{id}".id }}}]
+ end
+
+ DB.mapping({{mapping}})
+end
+
+macro templated(filename)
+ render "src/views/#{{{filename}}}.ecr", "src/views/layout.ecr"
+end
+
class Video
module HTTPParamConverter
def self.from_rs(rs)
@@ -5,24 +20,7 @@ class Video
end
end
- def initialize(id, info, updated, title, views, likes, dislikes, wilson_score, published, description)
- @id = id
- @info = info
- @updated = updated
- @title = title
- @views = views
- @likes = likes
- @dislikes = dislikes
- @wilson_score = wilson_score
- @published = published
- @description = description
- end
-
- def to_a
- return [@id, @info, @updated, @title, @views, @likes, @dislikes, @wilson_score, @published, @description]
- end
-
- DB.mapping({
+ add_mapping({
id: String,
info: {
type: HTTP::Params,