test-driven learning Ruby meta-programming. Forked for up-to-date ruby versions

René Maya 50ac8f43d2 Add continuous integration 5 gadi atpakaļ
knowledge 203dd5afbb Replace last refactoring steps due to failing koan 5 gadi atpakaļ
.continuous_integration.yml 50ac8f43d2 Add continuous integration 5 gadi atpakaļ
README.markdown 8d2daf2b9d Add instructions to run kata and solution permutations 5 gadi atpakaļ
meta_guru.rb b1b173235c removing unnecessary whitespace 15 gadi atpakaļ
meta_koans.rb a26a1dc422 Update how helpers get required 5 gadi atpakaļ
meta_student.rb 06ccf39a83 Remove unnecessary block declaration 5 gadi atpakaļ

README.markdown

Training on Ruby Meta-programming with MetaKoans

I've been asked a few times by clients to give Ruby meta-programming training to other developers. The first time that this happened, I was lucky to stumble upon RubyQuiz #67 - metakoans.rb.

After using MetaKoans as a training tool for the first time, I realized that, while it was great for helping people to learn Ruby meta-programming, it didn't lend itself as easily as it could to being solved in an incremental fashion. For details on this, see my blog article on the topic.

I've rewritten the koans so that the solution can be developed more incrementally. To train from the beginning simply:

$ ruby meta_koans.rb

I've also saved the knowledge permutations that I made for each koan, to prove that the problem can be solved in a stepwise fashion included under the knowledge directory.

To replay a specific permutation:

$ ruby meta_koans.rb [koan_num] [revision]

that is

$ ruby meta_koans.rb 1 4

If you're looking to learn Ruby meta-programming, don't look at my knowledge files!