There are two ways to define a class method from a Modularity Show archive.org snapshot trait. Note that the usual caveats regarding class method visibility apply.
The recommended way is to define a method on your module's singleton class:
module SomeTrait as_trait do define_singleton_method :foo do # ... end end end
Alternatively, you can
def the method on
module SomeTrait as_trait do def self.foo # ... end end end
This is quite concise and results in faster methods than using
define_method. However, you cannot use it with parametrized traits.
The following will fail:
module SomeTrait as_trait do |name| def self.foo puts name # will raise an error because the variable 'name' is not bound to the method body end end end