An Arachne module that provides a component which says hello when an Arachne application starts.
This is designed to be a very simple module, but with all the basic parts, so you can see how they work.
There are only a couple files to worry about:
resources/arachne-modules.edn
defines the module. It must be named exactlyarachne-modules.edn
, on the root of the classpath, to allow the module to be discovered and loaded.src/arachne/hello.clj
contains all the source code for the module. Normally modules would have their functionality split up between serveral source files, but to make it easy to visualize this project has it all in one place.
These files are heavily commented and documented. Reading and understanding them is highly recommended if you want to understand how modules work; all of the code is very similar to what you will need to write, for any module.
This module allows you to define components called "greeters." When Arachne
starts, each greeter will print out a custom message to System/out
.
A config initialization script using this module looks something like this:
(require '[arachne.core.dsl :as core])
(require '[arachne.hello :as hello])
(core/runtime :test/runtime [:test.greeting/spanish :test.greeting/informal])
(hello/greeter :test.greeting/spanish "Hola!")
(hello/greeter :test.greeting/informal "Hi!")
And the output when you start an Arachne app using that config:
Hola!
Hi!
-
You can run the tests in
test/arachne/hello_test.clj
, which create a full Arachne application using the module. There are two configs provided for trying out the different possibilities, both in thetest-configs
directory. -
You can compile the module into a jar in the standard way, using
lein install
to install it to your local Maven repository. From there, you can declare a dependency on it and use it from any Arachne project
Copyright © 2016 Luke VanderHart