Well, you don't have runtime eval or send in Crystal, so some variants of metaprogramming can be ruled out.
However, there are compile time versions of method_missing, delegates and instance_exec available (usually with slightly different naming due to not having the exact same semantics as the ruby counterparts), so it is still possible to do some magic.