On Apr 22, 6:45 am, Christoffer Lern<le... / dragonascendant.com>
wrote:
> I'm writing a server for a networked game using ruby, but I keep
> running into issues when organizing them.
>
> Basically I have a structure looking a bit like this:
>
> lib/
>         testclient/
>         gamemodel/
>         gamecommands/
>         server/
>         utils/
> test/
>         gamemodel/
>         gamecommands/
>         server/
>         utils/
>
> The problem is the paths for the requires.
>
> For a test in say test/gamemodel, I need to require something
> like ../../lib/gamemodel/<file>
> But when running the same test from some test_all.rb in /test, the
> correct require is of course ../lib/gamemodel/<file>
> (The natural way would have been to simply write require <file>)
>
> It is possible to fix this problem by appending to the load path, but
> this means rows of duplicate code in every test file.
>
> The problem naturally extends to the lib where you also have to decide
> where the code supposedly is run from.
>
> Any suggestions on neat ways of solving this problem or are there
> perhaps packages available to make this work automatically?
>
> /Christoffer

Hi Christoffer,

When testing your lib you should only need to add lib/ to the load
path once. For instance you might do:

  ruby -Ilib test/sometest.rb

T.