billh04, have a look at the compojure project
(http://github.com/weavejester/compojure/tree/master).
In that James uses an "immigrate" function which may be useful to you.
Also the structure used is a good example of a reasonably large, quite
complex project.

Hth, Adrian.

On Fri, Apr 24, 2009 at 7:23 AM, Laurent PETIT <laurent.pe...@gmail.com> wrote:
>
> Hi,
>
> Please note that a convention (but it's really just one convention)
> could also be to name file for partB : place_partB.clj (or even
> place_part_b.clj since in clojure camel case notation is not the
> preferred way to write things, hyphens and lower cases are ->  but
> hyphens must be replaces by underscores in package/namespace names,
> and in file names).
>
> Your solution is acceptable I think (having the load at the end of the
> root file).
> You could also consider this one:
>
> ==== place.clj =======
> (ns whale.achi.model.place
>  (:load "place/partA")
>  (:load "place/partB"))
> ==================
>
> ==== place/partA.clj =======
> (in-ns 'whale.achi.model.place)
> partA
> ==================
>
> ==== place/partB.clj =======
> (in-ns 'whale.achi.model.place)
> partB
> ==================
>
> Or, to write it like it is done for clojure.core:
>
> ==== place.clj =======
> (ns whale.achi.model.place
>  (:load "place_part_a")
>  (:load "place_part_b"))
> ==================
>
> ==== place_part_a.clj =======
> (in-ns 'whale.achi.model.place)
> partA
> ==================
>
> ==== place_part_b.clj =======
> (in-ns 'whale.achi.model.place)
> partB
> ==================
>
>
> HTH,
>
> --
> Laurent
>
>
> 2009/4/24 billh04 <h...@tulane.edu>:
>>
>> I don't think I explained my need clearly.
>>
>> I try to rephrase it. Suppose I have a source file named place.clj in
>> a directory named whale/achi/model like the following:
>>
>> ==== place.clj ========
>> (ns whale.achi.model.place)
>> partA
>> partB
>> ==================
>>
>> What I want to do is to keep the same namespace but break it into two
>> files named place.clj as above and placeEvaluation.clj in a
>> subdirectory place:
>>
>> ==== place.clj =======
>> (ns whale.achi.model.place
>>    (:load "place/placeEvaluation"))
>> partA
>> ==================
>>
>>
>> ==== placeEvaluation.clj ===
>> partB
>> ======================
>>
>> When, I do this, I get the error message:
>>
>> java.lang.Exception: Unable to resolve symbol: -boardPlaces- in this
>> context (placeEvaluation.clj:19)
>>
>> since -boardPlaces- is defined in partA, but has not been loaded yet
>> (I suspect).
>>
>> I believe the following will work since partA is loaded before partB:
>>
>> ==== place.clj =======
>> (ns whale.achi.model.place)
>> partA
>> (load "place/placeEvaluation")
>> ==================
>>
>>
>> ==== placeEvaluation.clj ===
>> partB
>> ======================
>>
>> What I am seeking is how to split a file for one namespace into
>> multiple files with the same namespace.
>>
>> Also, any source file that wants to use the namespace
>> 'whale.achi.model.place would need only 'use 'whale.achi.model.place
>> and would not have to worrry about placeEvaluation but get that loaded
>> for free.
>>
>> On Apr 23, 9:29 pm, Drew Raines <aarai...@gmail.com> wrote:
>>> billh04 wrote:
>>> > Right now I have the two files "whale.achi.model.place.clj" and
>>> > "whale.achi.model.placeEvaluation.clj" that make up one name space
>>> > "whale.achi.model.place".
>>> > The first file is the "root" of the namespace.
>>>
>>> I think you're confused with how Clojure looks for packages in the
>>> filesystem.  Perhaps you want:
>>>
>>>    $ find whale
>>>    whale/achi/model/place.clj
>>>    whale/achi/model/place/evaluation.clj
>>>    $ head -2 whale/achi/model/place.clj
>>>    (ns whale.achi.model.place
>>>      (:require [whale.achi.model.place.evaluation :as eval]))
>>>    $ head -1 whale/achi/model/place/evaluation.clj
>>>    (ns whale.achi.model.place.evaluation)
>>>
>>> -Drew
>> >
>>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To post to this group, send email to clojure@googlegroups.com
To unsubscribe from this group, send email to 
clojure+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to