Metaprogramming: Unraveling the Magic
summary
Live code shows how Rails-style metaprogramming actually generates methods at runtime: reopening String to implement a working titleize that capitalizes words, using define_method to create enum predicates that return true for admin, and using public_send to dispatch add/subtract calls dynamically. Demos expose singleton methods stored in an eigenclass (class methods via metaclass), instance-level access via instance_eval, and class-level changes via class_eval (Rails uses this for concerns and scopes); undefined-method examples produce the expected errors.
AI-written summary · about
chapters (17)
- 0:00Introduction and welcome
- 1:59What is metaprogramming
- 3:03Metaprogramming in Ruby
- 4:08Open classes and monkey patching
- 6:19Method missing and dynamic methods
- 7:49Dynamic method dispatch
- 9:26Using send method
- 10:09Singleton methods
- 11:34Metaclasses and n-classes
- 12:22Defining class methods
- 12:43Mimic methods like attr_accessor
- 13:25Hook methods and lifecycle
- 14:56Accessing instance variables
- 15:44Class eval and open classes
- 16:58Cherry picking methods
- 17:46Method missing as a fallback
- 18:12Closing and thanks
related talks
34mMetaprogramming for generalists
26mMeta-programming for Dummies
25mIn Defense of Ruby Metaprogramming
38mMy Meta Moments
28mDiving into Dynamic: Demystefying Metaprogrammaing with Ruby
31mSeeing Metaprogramming and Lambda Function Patterns in Ruby
33mMetaprogramming Isn't Real, It Can't Hurt You
36mMetaprogramming? Not good enough!
