Advanced Ruby: Behind the Magic

This course teaches everything I wish I knew about Ruby when I was starting my career as a Rails developer. We'll learn lots of Ruby tricks that are used to build Rails and other libraries. Dispell the magic with 6+ hours of Ruby knowledge.
Introduction
Welcome to the course 👋
2 mins
Join our Discord
Livestreams
Ruby Methods and Classes
In this section, we'll be exploring methods and classes in Ruby to build a foundation for more complex things.
Monkey Patching
7 mins
Using Refinements for Safer Monkey Patching
8 mins
Alias vs alias_method
9 mins
Introspecting Classes and Methods
9 mins
Class Instance Variable Inheritance
14 mins
Blocks, Procs, and Lambdas
Blocks in Ruby
13 mins
Blocks vs Procs vs Lambdas
11 mins
The to_proc method
9 mins
The Splat Operator (*)
10 mins
Requiring Files and Autoloaders in Ruby
Require & Require Relative
11 mins
Load & Autoload
5 mins
Zeitwerk Autoloader
6 mins
Building an Autoloader from scratch
14 mins
Module Nesting
7 mins
Metaprogramming
Intercepting errors with method_missing
9 mins
Duck typing with respond_to?
6 mins
Improving with respond_to_missing?
7 mins
Defining methods dynamically with define_method
7 mins
Using a database to generate dynamic methods like ActiveRecord
13 mins
Recreating ActiveRecord initialize
12 mins
ActiveRecord where queries
6 mins
Module Include vs Extend & recreating ActiveSupport Concern
14 mins
How to use class_eval to define multiple methods at once
11 mins
Ruby's Eigenclass
8 mins
Metaprogramming Rich Text Mentions
8 mins
Domain Specific Languages
Domain Specific Languages (DSLs) in Ruby
14 mins
Defining Methods Dynamically at Runtime
12 mins
How the Rails RouteSet and Mapper works
13 mins
Rails Route Mapper From Scratch
10 mins
Rake from Scratch
18 mins
Gilded Rose Kata
Refactoring challenge that has a lot of interesting solutions.
Gilded Rose Part 1
19 mins
Gilded Rose Part 2
30 mins
Gilded Rose Part 3 - Refactoring with Modules
16 mins
Bonus Lessons
Three Meditating Munks
8 mins
Dec 18th, 2020 LiveStream
(1h 09m 35s)