Just like many other ruby developers, I wanted to learn metaprogramming to make the leap from Ruby novice to Ruby pro. But, approaching the subject felt a bit intimidating. I tried to learn metaprogramming several times and every time I tried, all available materials were referring to even more complicated and less known concepts such as: eigenclasses, singleton classes, ruby object model, classes being objects themselves, etc.
So, I spent several months reading about all these concepts and synthesised all available material. At the end, it just "clicked"! It turned out to be very simple! The problem was that there was no single resource where all this concepts were put together. So, I decided to produce this corse. I hope it will save your time and you will find it useful.
This video course will teach you ruby metaprogramming by introducing small, simple and less known ruby insights in each video. And once you learn them, metaprogramming will just start to make sense.
At the end of the course, you will:
- Be better Ruby developer who can write elegant code using Ruby's metaprogramming features.
- Make your test code more concise by writing test that dynamically generate code that covers all test cases.
- Be able to understand and explain the magic behind the code/syntax in all popular gems.
- Better understand the Ruby language.
- and of course write your own DSL's for your business domain (just like rspec, rake, etc.).
Metaprogramming is such an integral part of the Ruby language, that in order to learn it, you need to understand the specific language features of Ruby. This features are less known and not covered in books. But, once you are introduced to them, metaprogramming starts to make sense. That's why, the course will start by introducing several key Ruby language insights. After this section, you will understand why is it that some method or variable is not available in some scope and available in others or how scope changes in your code and more.
In the second section of the course, we will cover all the SDK methods that are involved in metaprogramming. Along the way, we will go through several examples that demystifies magic behind most popular gem code as well.
In the last section of the course, we will put everything we've learnt into practice and will build our own rspec, domain specific language and some of the rails most popular magical methods.