All notable changes to this project will be documented in this file. This change log follows the conventions of keepachangelog.com.
dance
v0.1.4.1.
shuriken.iterator
.shuriken.namespace
:ns-resource
.
- Clojurescript support for:
exception
string
namespace
sequential
associative
spec
test
debug
- Fix
monkey-patch
,reflection
andbyte-buddy
. - Fix
sequential
wheretakes
((set (take ...))
) would rewritesequential/takes
. - Fix all the tests.
- Restore
shuriken.monkey-patches.pprint-newlines-test
.
- Fix some reflection warning for ns:
exception
,namespace
,spec
.
associative
:getsoc
is now a macro.- renamed
merge-with-plan
toplan-merge
.
navigation
: renamed toshuriken.tree
.monkey-patch
: renamedonly
&refresh-only
toonce
andrefresh-once
.namespace
: renamedimport-namespace
toimport-namespace-vars
.
byte-buddy
:copy-class!
.exception
:capturex
.reflection
:write-field
,class-tree
.tree
:tree
.sequential
:get-some
.
associative
:deflatten-keys
now accepts a:with
option in mimetism withmerge-with
.
- bumped
dance
to0.1.3
.
destructure
:restructure
can now accept keyword-keyed maps.
destructure
::as-map
option fordeconstruct
.
destructure
:efface-but
.
destructure
:efface
.
destructure
:entangle
.
destructure
:restructure
works properly with hashmap:or
parameters.
namespace
:fully-qualify
supports symbols that look like classes but resolve to none.
macro
:macroexpand-do
avoids overwriting macroexpansion files, allowing for manual edits of the expansion.
macro
:macroexpand-do
uses unexpanded code in macroexpansion file names.
macro
:macroexpand-do
.
macro
:macroexpand-all-code
.meta
:preserve-meta
.
spec
: removed::defmacro-form
spec (alias for::defn-form
).
associative
:continue|
to enhancemerge-with-plan
.
destructure
: edge cases.
spec
::single-body
info onargs+bodies
spec.pprint-fn
works.
sequential
: additional arguments for:assoc-nth
&update-nth
:not-found
.assoc-nth-in
&update-nth-in
:not-found-f
.
sequential
: edge cases.
pprint-fn
monkey-patch.
fn-source
monkey-patch.
macro
:macroexpand-do
accepts quoted and unquoted code.monkey-patch
: guard against unexisting sources indefine-again
.monkey-patches.pprint-meta
: handleclojure.lang.IMeta
like vars.namespace
: better support of class names forunqualify
& friends.
namespace
:unqualify
,fully-qualify
andfully-qualified?
now handle symbols starting with a dot.monkey-patches.pprint-meta
:- works recursively.
- handles shorthands (
^Tag
&^:boolean-flag
).
- bumped
dance
to0.1.2
.
monkey-patches.pprint-meta
.
spec
:::reify-form
&::deftype-form
.
associative
:filter-keys
,filter-vals
,remove-keys
&remove-vals
.spec
:::defn-form
(same as::defmacro-form
).
sequential
:order
now ignores constraints about absent elements and raises an exception if the collection is notdistinct?
.
sequential
: invert the meaning of:>
and:<
inorder
.
macro
: remove debug statement inmacroexpand-do
.
exception
:silence
andthrown?
now support regex patterns.
sequential
: fixassoc-nth
onnil
andassoc-nth-in
on sequences.
sequential
: fixassoc-nth
andassoc-nth-in
.
associative
:map-intersection
.
associative
:map-keys
andmap-vals
order on sequences.
associative
:map-keys
andmap-vals
order on lists.
debug
: fixdebug-print
again.
debug
:debug-print
now handles multi-line results properly.
associative
:getsoc
.
spec
: somes specs useseq?
insted oflist?
as a more general predicate.
spec
::shuriken.spec/leftn-spec
and:shuriken.spec/letfn-specs
spec
::shuriken.spec/fn-form
spec.
spec
: spec:shuriken.spec/macro-definition
renamed to:shuriken.spec/defmacro-form
.
sequential
:insert-at
.
sequential
: in addition toget-nth-in
&assoc-nth-in
, added:get-nth
&assoc-nth
.update-nth
&update-nth-in
.
sequential
:takes
handles0
-sized chunks.
sequential
:takes
.
sequential
:order
to order a sequence with constraints.
map-keys
&map-vals
: will preserve the class of the passed associative structure.
string
:join-words
.lazy
:deep-doall
.
context
: exported to lexikon.
string
:words
.
multi
: exported to methodman.
multi
:multi-name
.
multi
: fix bug in bug fix of super-method
.
multi
: error reporting in super-method
.
multi
:defmethods
.
associative
:submap?
.exception
:silence
andthrown?
can match and ExceptionInfo ex-data with a map (works withsubmap?
).reflection
:read-field
,method
&static-method
.multi
:method
.augmentable-multi
&augment-method
.extendable-multi
&extend-method
.
exception
:silence
andthrown
can match the exception message if passed a string.
associative
:split-map
&map-difference
.
- Externalized
threading
,weaving
,dance
andfn
(this latter asarity
) into distinct libs of their own.
associative
: a plan tomerge-plan
can be a map as well as a function.
- Exposed
spec
namespace.
string
: exposedadjust
,format-code
,join-lines
,lines
&no-print
.debug
: exposeddebug-print
.
- Exposed test utils in
shuriken.test
. Not included inshuriken.core
.
threading
:and->
,and->>
,or->
&or->>
associative
:map-keys
&map-vals
.
sequential
:get-nth-in
&assoc-nth-in
.
multi
: insuper-method
, use the default dispatch val of the multi instead of:default
.
multi
:super-method
.
multi
:call-multi
renamed tocall-method
.
macro
:is-form?
,wrap-form
&unwrap-form
.lexical-context
.stored-locals!
,binding-stored-locals
& more.lexical-eval
.
multi
:call-multi
.
predicates-composer
: namespace renamed toweaving
:|
(constantly
).*|
,<-|
&->|
.when|
,if|
&tap|
.and?
,or?
,not?
renamed toand|
,or|
,not|
.
debug
:debug
.sequential
:max-by
&min-by
.string:
tabulate
&truncate
.threading
:defthreading
if->
&if->>
.when->
&when->>
.pp->
.<-
.
macro
:file-eval
uses the local lexical context.
macro
: fixclean-code
andmacroexpand-some
.
macro
:macroexpand-do
accepts predicates.file-eval
has better file output.
macro
: errors fromfile-eval
display both the extended message with the temporary file path and the actual error stacktrace.
macroexpand-do
: dumps the expanded form at the file-eval stage.
tap
threads the initial expr to the forms in its body that are threading forms.
macro
:file-eval
,macroexpand-n
.threading
:tap
,tap->
&tap->>
.
macro
:macroexpand-do
usefile-eval
to evaluate the expression's expansion. Useful to track exceptions raised by macro-generated code.
macro
:macroexpand-do
with a number callsmacroexpand-1
the right number of times.
macro
:macroexpand-some
.
macro
:macroexpand-do
supports n iterations ofmacroexpand-1
as well asmacroexpand-some
.
namespace
:fully-qualify
,fully-qualified?
andunqualify
support static method symbols likesome.Class/staticMethod
.
navigation
:prepostwalk
&prepostwalk-demo
.monkey-patch
:monkey-patch
,only
&refresh-only
.macro
:clean-code
.
namespace
:once-ns
.
shuriken.dev
namespace withshuriken.monkey-patches.syntax-quote
.
- Remove
shuriken.monkey-patches.syntax-quote
fromshuriken.core
. shuriken.monkey-patches.syntax-quote
changesclojure.lang.LispReader
to useclojure.tools.reader/read
.
- Monkey-patch clojure:
- New
pprint
translations for reader macro~@
.
- New
- Execute code in another namespace with
with-ns
. - Ensure a namespace is loaded only once with
once-ns
even usinguse
orrequire
with:reload
:reload-all
. - Monkey-patch clojure to:
- Use clojure.tools.reader
read
andread-string
. - Introduce
syntax-quote
. - New
pprint
translations for the backquote reader macro.
- Use clojure.tools.reader
macro
: beautify output.- CHANGELOG: some dates were not in ISO yyyy-mm-dd format.
macro
: fixed a string inmacroexpand-do
.
macro
:macroexpand-do
.
flow
:silence
,thrown?
.
sequential
:separate
.
sequential
:slice
.
associative
:index-by
.
namespace
:fully-qualified?
,unqualify
.
navigation
:tree-seq-breadth
.
associative
:flatten-keys
,deflatten-keys
,deep-merge
.meta
:without-meta
.
namespace
:fully-qualify
.
- predicate composers:
and?
,or?
¬?
.