On May 9, 2005, at 11:54 PM, Vincent Foley wrote: > I would really be interested in contributing some code. I'm not > exactly sure how to do that though, although I have done Ruby coding > for a while now, I never helped on somebody else's project. Greg explained the process pretty well in his response. As he said, check out the CVS, change some code, then use the "cvs diff" command to generate a patch file and send it to me in an email. It's not hard. Getting familiar with the code it probably the only tricky step, but I try to keep it clean and well commented. HighLine is built with a practice called Test Driven Development, so the test files (in the test/ directory) cover every single feature I've added. They should help you make sense of things. From the root project directory, you can run those tests with "rake" (if you have Rake installed) or "ruby test/ts_all.rb". This also means that any feature added to HighLine needs to come with tests that cover it. Write those first, I say, so you can see what you're trying to implement. Then go tinker until the tests start passing. Currently, the two files you would be adding features to are lib/ highline.rb and lib/highline/question.rb. highline.rb covers terminal encapsulation features, while question.rb stores the state of each question. They work in tandem to accomplish some things. Finally, don't be afraid to ask questions. I won't bite. The TODO probably makes more sense to me than anyone else, for example, so ask me to translate if needed. Thanks for the interest! James Edward Gray II