2016-08-18 12 views
0

Где я должен использовать файлы с кодами, которые я пишу себе в приложении Clojure luminus? И как я могу экспортировать функцию из нее и импортировать ее в другой файл? Скажем, я создал файл «helper1.clj», как я могу получить доступ к функциям из него в «src/clj/my_app/routes/home.clj»? И где я должен поместить файл «helper1.clj»?Пользовательские файлы в luminus

ответ

3

Посмотрите на файл project.clj. Вы увидите строку:

:source-paths ["src/clj"] 

Это означает, что каталог src/clj будет корнем всех пространств имен. Пространство имен - это путь к каталогу, разделенный точками, причем конечная часть пространства имен является именем файла. Пример:

File name:     my_app/src/clj/dirone/dirtwo/myfile.clj 
Namespace in this file: (ns dirone.dirtwo.myfile ...) 

С, что в настоящее время установлено, вы, вероятно, следует поместить новые файлы в src/clj/my_app на данный момент. Пространство имен для helper.clj будет выглядеть:

(ns my-app.helper ...) 

Вы можете создавать новые каталоги в src/clj, например, src/clj/newdir. Файл в этой директории под названием anotherfile.clj будет иметь пространство имен:

(ns newdir.anotherfile ...) 

Посмотрите в файле my_app/routes/home.clj и смотреть сверху, и вы увидите, где :require [my-app.layout :as layout]. Вы бы добавили следующее, чтобы ссылаться на свою функцию myfunc в свой файл helper.clj:

;... list of items under :require 
[my-app.helper :as h] 
;... 

(def something (h/myfunc ...))