Ruby is a so enjoyable programming language.
One of the biggest attraction of Ruby is that it is easy to "meta-programming".
The words "meta-programming" sounds that are complex and not very common, but it is very familiar in Ruby. Many popular features of Ruby, eg attr_accessor() or has_many() on Rails, are also built with Ruby's meta-programming mechanism.
Although meta-programming is familiar in Ruby, the knack is required in order to use it well. Unreserved use of reflection API easily makes a code hard to maintenance.
In this presentation, I want to tell you ideas for using practical meta-programming without too much increase the complexity. I hope that people feels meta-programming more familiar and easy to maintenance, and they enjoys Ruby programming more.
This story is based on the presentation I hold at Ruby Association seminar. I'm going to update towards the September 2014, the time with Ruby 2.1 is.