Presentations
Templates
Features
Teams
Pricing
Log in
Sign up
Log in
Sign up
Menu
Metaprogramming
With Ruby
Why?
Generating methods to 'reduce' duplicate code
Dynamic Dispatch
To temporarily patch a third party library
Why Not?
The target probably will change at some point
Metaprogramming code is often complex
Reduced readability
Harder to debug
So, what can I use?
module_eval
class_eval
instance_eval
eval
send
include
extend
prepend
define_method
method_missing
Instance_eval
class_eval
module_eval
Ha! I tricked you!
module_eval and class_eval are
the same thing!
eval
Everyone, try this now:
BOOM!
send
Actually, this can be really useful!
include
Extend
Prepend
define_method
method_missing
THANKS TO:
James Harton
http://resistor.io
Pete Nicholls
http://metanation.com
Malcolm Locke
http://wholemeal.co.nz
Further reading:
"Metaprogramming in Ruby: It's All About the Self" http://bit.ly/9KfJlX
Metaprogramming
By Philip Arndt
Made with Slides.com
Metaprogramming
2,503
Philip Arndt
p.arndt.io
parndt