Implementing metaprogramming with define_method
In this section, you'll learn about another metaprogramming mechanism called define _method
that will allow you to dynamically create methods at runtime in a Ruby program.
We'll continue with our Author
class and use a method called define_method
here:
class Author define_method("some_method") do puts "Some details" end end
Next, we'll call this method:
author = Author.new author.some_method
When you run this code, it'll print out the Some details
value.
You may wonder how this is different from a regular method, such as this one:
def some_method puts "Some details" end
The answer is, they are the same!
So, this is not the kind of implementation you'd use define_method
for in the real world. However, I wanted to start with this as a base case so you can see the core functionality.
Now let's look at a more practical example. Going back to our Author
class, let's imagine that we have different genres and we have to print out the details of...