Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Metaprogramming Ruby
Table of Contents
1: Foreword
2: Acknowledgments
3: Introduction
The “M” Word
About This Book
About You
Part 1 Metaprogramming Ruby
4: Monday: The Object Model
Monday with Bill
Open Classes
The Truth About Classes
Quiz: Missing Lines
What Happens When You Call a Method?
Quiz: Tangle of Modules
Object Model Wrap-Up
5: Tuesday: Methods
A Duplication Problem
Dynamic Methods
method_missing()
Quiz: Bug Hunt
More method_missing()
6: Wednesday: Blocks
How to Handle Hump Day
Quiz: Ruby#
Closures
instance_eval()
Callable Objects
Writing a Domain-Specific Language
Quiz: A Better DSL
7: Thursday: Class Definitions
Class Definitions Demystified
Quiz: Class Taboo
Singleton Methods
Eigenclasses
Quiz: Module Trouble
Aliases
Quiz: Broken Math
8: Friday: Code That Writes Code
Leading the Way
Kernel#eval
Quiz: Checked Attributes (Step 1)
Quiz: Checked Attributes (Step 2)
Quiz: Checked Attributes (Step 3)
Quiz: Checked Attributes (Step 4)
Hook Methods
Quiz: Checked Attributes (Step 5)
9: Epilogue
Part 2 Metaprogramming in Rails
10: The Design of ActiveRecord
Preparing for the Tour
The Design of ActiveRecord
Lessons Learned
11: Inside ActiveRecord
Dynamic Attributes
Dynamic Finders
Lessons Learned
12: Metaprogramming Safely
Testing Metaprogramming
Defusing Monkeypatches
Lessons Learned
Part 3 Appendixes
13: Common Idioms
Mimic Methods
Nil Guards
Tricks with Method Arguments
Self Yield
Symbol#to_proc()
14: Domain-Specific Languages
The Case for Domain-Specific Languages
Internal and External DSLs
DSLs and Metaprogramming
15: Spell Book
The Spells
16: Bibliography
← Prev
Back
Next →
← Prev
Back
Next →