BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage News InfoQ Presentation: MetaProgramming Ruby

InfoQ Presentation: MetaProgramming Ruby

Bookmarks
Metaprogramming is one of the technologies used to implement some distinctive Ruby on Rails features such as has_many. In this presentation, Dave Thomas (PragDave) focuses on the Ruby features that make metaprogramming possible:
  • Class definitions are active - they get executed
    This allows to execute custom code when a class gets first loaded.
  • All method calls have a receiver, i.e. a self object
    A crucial fact in Ruby - Dave explains how self some methods of metaprogramming work with manipulating self.
  • Classes are objects too
  • Open and singleton classes - it's always possible to add members to classes
Other topics include how to use eval flexibly with bindings and more.

Check out "MetaProgramming Ruby".

Rate this Article

Adoption
Style

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

  • This is cool!!!

    by Jure Srsen,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Tnx. It would be really nice if more Ruby presentations like this would be available.

  • eph

    by Andrei Zinca,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    An otherwise good presentation ruined by an awful, macabre joke.

  • problems

    by jimmy coyne,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Is any body else having problems viewing this presentation?

  • Re: problems

    by Sean Cribbs,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    +1

  • Re: problems

    by johan andries,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    On Windows, for me it works in IE but not in FireFox.

  • able to download this?

    by Hrafn Nordhri,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Are we able to download this?

  • Re: This is cool!!!

    by Dilya Han,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    You can watch Dave's other talk about Metaprogramming in ruby on YouTube here. YouTube also has many others talking about metaprogramming as well.

    Also, there is a great Video Course about "Ruby Metaprogramming" here as well. Well worths its' price.

    Disclaimer: I did peer review for the course. So, the author gave me $100 OFF coupon that I added to the URL above as well.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

BT