invidious/src/invidious/helpers/macros.cr

50 行
1.1 KiB
Crystal
Raw 通常表示 履歴

macro db_mapping(mapping)
2018-08-05 05:30:44 +09:00
def initialize({{*mapping.keys.map { |id| "@#{id}".id }}})
end
def to_a
2019-04-11 06:23:37 +09:00
return [ {{*mapping.keys.map { |id| "@#{id}".id }}} ]
2018-08-05 05:30:44 +09:00
end
2019-04-11 06:23:37 +09:00
def self.to_type_tuple
return { {{*mapping.keys.map { |id| "#{id}" }}} }
end
DB.mapping( {{mapping}} )
2018-08-05 05:30:44 +09:00
end
2019-03-29 03:43:40 +09:00
macro json_mapping(mapping)
def initialize({{*mapping.keys.map { |id| "@#{id}".id }}})
end
def to_a
2019-04-11 06:23:37 +09:00
return [ {{*mapping.keys.map { |id| "@#{id}".id }}} ]
2019-03-29 03:43:40 +09:00
end
2019-04-11 06:23:37 +09:00
JSON.mapping( {{mapping}} )
YAML.mapping( {{mapping}} )
end
macro yaml_mapping(mapping)
def initialize({{*mapping.keys.map { |id| "@#{id}".id }}})
end
def to_a
2019-04-11 06:23:37 +09:00
return [ {{*mapping.keys.map { |id| "@#{id}".id }}} ]
end
def to_tuple
return { {{*mapping.keys.map { |id| "@#{id}".id }}} }
end
YAML.mapping({{mapping}})
2019-03-29 03:43:40 +09:00
end
2018-08-16 10:31:47 +09:00
macro templated(filename, template = "template")
render "src/invidious/views/#{{{filename}}}.ecr", "src/invidious/views/#{{{template}}}.ecr"
2018-08-05 05:30:44 +09:00
end
macro rendered(filename)
render "src/invidious/views/#{{{filename}}}.ecr"
end