在Ruby世界中对于元编程所涵盖的范围并没有一个非常确切的定义;有时,元编程是得到你所需要的功能代码的最便捷的方法——不是直接编码,而是以程序的方式在运行的时候自动生成。通过使用Ruby的动态功能,我们可以从一个简单的对象开始,逐渐向它加入独立的方法或者是一整个module。不仅如此,通过使用class_eval,我们可以在运行时生成整个模组。最后,我们可以使用Ruby的自省工具所提供的优越功能来让程序在尽兴改动之前,先检测它自己的方法。
在现实生活中,元编程是领域特定语言的一个关键支柱。你当然可以不适用后者使用一点点元编程来构建DSL,就像DSL 特定领域语言中的例子一样;不过,使用元编程一般能够极大地简化构建DSL的工序。