Skip to content

Commit 10752ad

Browse files
authored
feat: simpler renderable html macro (#1836)
1 parent 2c95e34 commit 10752ad

File tree

1 file changed

+7
-13
lines changed

1 file changed

+7
-13
lines changed

src/lucky/renderable.cr

+7-13
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,13 @@ module Lucky::Renderable
4444
# end
4545
# ```
4646
macro html(page_class = nil, _with_status_code = 200, **assigns)
47-
{% page_class = page_class || "#{@type.name}Page".id %}
48-
validate_page_class!({{ page_class }})
47+
{% page_class = page_class || parse_type("#{@type.name}Page") %}
48+
{% ancestors = page_class.resolve.ancestors %}
49+
{% if ancestors.includes?(Lucky::Action) %}
50+
{% page_class.raise "You accidentally rendered an action (#{page_class}) instead of an HTMLPage in the #{@type.name} action. Did you mean #{page_class}Page?" %}
51+
{% elsif !ancestors.includes?(Lucky::HTMLPage) %}
52+
{% page_class.raise "Couldn't render #{page_class} in #{@type.name} because it is not an HTMLPage" %}
53+
{% end %}
4954

5055
# Found in {{ @type.name }}
5156
view = {{ page_class }}.new(
@@ -91,17 +96,6 @@ module Lucky::Renderable
9196
{% end %}
9297
end
9398

94-
# :nodoc:
95-
macro validate_page_class!(page_class)
96-
{% ancestors = page_class.resolve.ancestors %}
97-
98-
{% if ancestors.includes?(Lucky::Action) %}
99-
{% page_class.raise "You accidentally rendered an action (#{page_class}) instead of an HTMLPage in the #{@type.name} action. Did you mean #{page_class}Page?" %}
100-
{% elsif !ancestors.includes?(Lucky::HTMLPage) %}
101-
{% page_class.raise "Couldn't render #{page_class} in #{@type.name} because it is not an HTMLPage" %}
102-
{% end %}
103-
end
104-
10599
# Disable cookies
106100
#
107101
# When `disable_cookies` is used, no `Set-Cookie` header will be written to

0 commit comments

Comments
 (0)