Completely agreed, @straight-shoota! In fact, the very next episode is going to be a walkthrough of implementing this without any dependencies at all.
In the future, I have plans to try to integrate this a bit more heavily with the views in Lucky so that every object you pass to a page will implicitly be “Decorated” without having to initialize them yourself, but you’re correct that right now the macro basically sets up exactly what you’ve proposed: decorator/base.cr at main · stephendolan/decorator · GitHub
I’ll also admit that since macros are new to me coming from Ruby, I was excited to find a relatively easy use case that allowed my code to be a bit more expressive and to get some experience with extracting common code into a shard.
Thanks very much for the comment, and for all of your work and contributions to this wonderful language .