James Gray
5/10/2005 2:02:00 PM
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