addressalign-toparrow-leftarrow-rightbackbellblockcalendarcameraccwcheckchevron-downchevron-leftchevron-rightchevron-small-downchevron-small-leftchevron-small-rightchevron-small-upchevron-upcircle-with-checkcircle-with-crosscircle-with-pluscontroller-playcrossdots-three-verticaleditemptyheartexporteye-with-lineeyefacebookfolderfullheartglobegmailgooglegroupshelp-with-circleimageimagesinstagramFill 1light-bulblinklocation-pinm-swarmSearchmailmessagesminusmoremuplabelShape 3 + Rectangle 1ShapeoutlookpersonJoin Group on CardStartprice-ribbonprintShapeShapeShapeShapeImported LayersImported LayersImported Layersshieldstartickettrashtriangle-downtriangle-uptwitteruserwarningyahoo

Level Up Your Ruby with Salman Ansari

  • Feb 17, 2014 · 7:00 PM


We all love Ruby. It is a beautiful, powerful, and incredibly flexible dynamic language. Of course, a lot of us don't really get to swim into the deeper realms of Ruby. Often, we assume that it is unnecessary, and better left to those crazy geeks who write all those gems for us. 

With this talk, I hope to show you that it can be quite straightforward to write dynamic abstractions for your app, and gaining that skill-set can become a valuable asset in your toolbox. We will take a journey through some of the lesser known parts of Ruby, such as meta-programming with define_method to build DSLs of your own (like acts_as_state_machine), understanding how method calling (a.k.a. message passing) really works under the hood, and extending core Ruby classes (e.g. String).

We'll go through some examples of how you can use these techniques to implement useful DSLs. We will also have a little fun, and see how futzing around with core classes too much can also get you into some serious trouble (and how to avoid it). Hopefully, we'll learn something, and either way we're bound to have some fun! :)

About Salman Ansari

Salman's passion is software engineering. He loves building quality products and seeks environments where he is constantly learning and consistently challenged. Ultimately, his success metric is building products that speak for themselves.

After graduating with a CS degree from Waterloo in 2007, Salman joined Involver as its founding engineer, and played a pivotal role in the development of all its products. In the winter of 2012, Oracle acquired Involver, and he is now working to evolve the product further as part of the new Oracle Social Cloud suite.


Event Sponsored by Clever Canary

Join or login to comment.

  • Salman A.

    Hey all,

    I think an email was sent out but just in case you didn't get it already, here are some links from the talk:



    GitHub Repo:

    Thanks again to everyone that came out!

    February 18, 2014

  • A former member
    A former member

    Very interesting course. Please send the git code link to the ~20 people who made the effort to attend.

    February 18, 2014

  • Nikola

    Sorry, that's 175 Varick

    February 17, 2014

  • Nikola

    Hey guys,

    We're on the 8th Fl of We Work, 175 Charlton. Use the 'alternative' loading dock entrance on Charlton and take the elevator up.

    February 17, 2014

  • A former member
    A former member

    Complete Ruby newbie.

    February 17, 2014

  • Giordano H.

    First official developer meet up for me. I'm excited. :]

    February 15, 2014

  • Justino G.

    Learning ruby

    February 8, 2014

Our Sponsors

  • Microsoft

    Microsoft provides space for our meetups and study groups.

  • WeWork

    WeWork provides space for our meetups and study groups

  • Code School

    Code School provides Swabbies with a free 48 hour hall pass.

  • Thinkful

    Swabbies get $50 off each month of Thinkful's online mentorship course.

  • Treehouse

    Treehouse provides a special rate for Swabbies; inquire at our meetups!

People in this
Meetup are also in:

Sign up

Meetup members, Log in

By clicking "Sign up" or "Sign up using Facebook", you confirm that you accept our Terms of Service & Privacy Policy