metaprogramming refactor

Hey Nathan,
Good to talk with you today. I was curious to know how you were using method_missing. If I understand how you were using it, this should be a cleaner way to handle that situation.
(I'm using select instead of where because then it should only look up project files once and then use a cached copy to pick which file. It may need some more tweaking in this particular case.)
~evan
Merge pull request #1 from evanboho/patch-1

metaprogramming refactor