grafter.pipeline.types

This namespace code for parsing and interpreting grafter.pipeline/declare-pipeline type signatures. In particular it defines a macro deftype-reader that can be used to coerce/read strings into their appropriate clojure types.

We use the declared pipelines signature to guide the interpretation of a string the target type.

parameter-types

Atom containing the parameter type hierarchy of supported pipeline types. As declared through declare-pipeline.

Types in this hierarchy should ultimately be coerceable through the parse-parameter multi-method.

In addition to using the multi-method to introduce new types, you can gain more code reuse by extending the hierarchy with:

(swap! parameter-types derive ::foo ::bar)

parse-parameter

multimethod

FIXME: write docs

preferred-type

(preferred-type param-hier parent-types)

When there are multiple defmethod implementations for parse-parameter this returns the prefered as declared via clojure’s prefer-method.

supported-parameter?

(supported-parameter? p)

Predicate function that returns true if the parameter type is a supported by parameter-type.

Supported parameters are parameter types (either classes or keywords) which are supported either an explicit dispatch for the parse-parameter multimethod or are reachable through @parameter-types type hierarchy.