Method Driven Development
I’ve created a screencast to show you a technique I sometimes use. I call this approach “Method Driven Development” (MDD).
(I’m sure many people use this technique, though I don’t know if there’s a name for it.)
Using MDD, I explore the Geocoder gem with the goal of finding the distance between Toronto and Chicago.
After watching this video, you’ll understand the ins and outs of MDD, including how to:
- investigate the methods that are available on each Ruby object
- sift through those methods and quickly find the method you want
- pull up docs on the method without leaving
- use Ruby’s
Plus, you’ll also learn the basics of the geocoder gem: searching, distance between, working with kilometeres and miles.
Ready to give it a try? Install the interesting_methods gem I’ve just released and then code along as you watch this video.
There’s a few thoughtful
pry tips on a reddit thread for this screencast:
Most useful is that
pry has an
ls command to show just the useful stuff about an object.
Let’s say you have an
Animal class that
class Animal def speak puts 'Moo' end end
Meanwhile in pry:
pry> ls Animal Object.methods: yaml_tag Animal#methods: speak
Rails looks like:
pry> ls Rails constants: Application Configuration ConsoleMethods Engine Html InfoController LineFiltering Paths Railtie TestUnit VERSION Command Console Dom Generators Info Initializable MailersController Rack Secrets TestUnitRailtie WelcomeController #<Module:0x00007faa75953720>#methods: reachable? ActiveSupport::Autoload#methods: autoload autoload_at autoload_under autoloads eager_autoload eager_load! Rails.methods: app_class application backtrace_cleaner cache= env gem_version initialize! logger public_path version app_class= application= cache configuration env= groups initialized? logger= root instance variables: @_at_path @_autoloads @_eager_autoload @_env @_under_path @app_class @application @cache @logger