https://www.webcodegeeks.com/ruby/metaprogramming-in-ruby/
Metaprogramming in Ruby