- Change
CallableTree::Node::Internal#broadcastable
to takematchable
keyword parameter as boolean. It defaults totrue
, which is the same behavior as before. - Change
CallableTree::Node::Internal#composable
to takematchable
keyword parameter as boolean. It defaults totrue
, which is the same behavior as before. - Change
CallableTree::Node::Internal#seekable
to takematchable
keyword parameter as boolean. It defaults totrue
, which is the same behavior as before.
- Change
CallableTree::Node::Internal#broadcastable
to taketerminable
keyword parameter as boolean. It defaults tofalse
, which is the same behavior as before. - Change
CallableTree::Node::Internal#composable
to taketerminable
keyword parameter as boolean. It defaults tofalse
, which is the same behavior as before. - Change
CallableTree::Node::Internal#seekable
to taketerminable
keyword parameter as boolean. It defaults totrue
, which is the same behavior as before.
- (Experimental) Add
CallableTree::Node::Internal::Builder#identifier
. - (Experimental) Add
CallableTree::Node::External::Builder#identifier
. - (Experimental) Add
CallableTree::Node::Hooks::Terminator
.
- Add
CallableTree::Node#internal?
- Add
CallableTree::Node#external?
- (Experimental) Change the callables (matcher, caller, terminator) specified in the builder style to receive the current node instance as the
_node_
keyword argument.
- (Experimental) Add
CallableTree::Node::Hooks::Matcher
. Using this together withCallableTree::Node::Hooks::Caller
helps to output logs. Seeexamples/builder/logging.rb
for details.
- Add
CallableTree::Node::Internal#seekable?
as an alias forCallableTree::Node::Internal#seek?
. - Add
CallableTree::Node::Internal#seekable
as an alias forCallableTree::Node::Internal#seek
. - Add
CallableTree::Node::Internal#seekable!
as an alias forCallableTree::Node::Internal#seek!
. - Add
CallableTree::Node::Internal#broadcastable?
as an alias forCallableTree::Node::Internal#broadcast?
. - Add
CallableTree::Node::Internal#broadcastable
as an alias forCallableTree::Node::Internal#broadcast
. - Add
CallableTree::Node::Internal#broadcastable!
as an alias forCallableTree::Node::Internal#broadcast!
. - Add
CallableTree::Node::Internal#composable?
as an alias forCallableTree::Node::Internal#compose?
. - Add
CallableTree::Node::Internal#composable
as an alias forCallableTree::Node::Internal#compose
. - Add
CallableTree::Node::Internal#composable!
as an alias forCallableTree::Node::Internal#compose!
. - (Experimental) Add
CallableTree::Node::Internal::Builder#terminator
to use instead ofCallableTree::Node::Internal::Builder#terminater
. Seeexamples/builder/*.rb
for details.
- (Experimental) Add
CallableTree::Node::Internal::Builder
. Seeexamples/builder/*.rb
for details. - (Experimental) Add
CallableTree::Node::External::Builder
. Seeexamples/builder/*.rb
for details.
- Add
recursive
option toCallableTree::Node::Internal#reject
andCallableTree::Node::Internal#reject!
. - Add
CallableTree::Node::Internal#find
to return the first node evaluated astrue
by block.
- Change
CallableTree::Node::Hooks::Call#before_call
to return a new instance. To keep the same behavior as the older version, useCallableTree::Node::Hooks::Call#before_call!
that makes destructive change. - Change
CallableTree::Node::Hooks::Call#around_call
to return a new instance. To keep the same behavior as the older version, useCallableTree::Node::Hooks::Call#around_call!
that makes destructive change. - Change
CallableTree::Node::Hooks::Call#after_call
to return a new instance. To keep the same behavior as the older version, useCallableTree::Node::Hooks::Call#after_call!
that makes destructive change.
- Add
CallableTree::Node::Internal#seek?
to check whether the node's strategy isseek
or not. - Add
CallableTree::Node::Internal#broadcast?
to check whether the node's strategy isbroadcast
or not. - Add
CallableTree::Node::Internal#compose?
to check whether the node's strategy iscompose
or not.
- Change
CallableTree::Node#match?
to accept inputs to the node as variable length arguments. - Change
CallableTree::Node#call
to accept inputs to the node as variable length arguments. - Change
CallableTree::Node#terminate?
to accept inputs to the node as variable length arguments, after theoutput
argument. - Add
CallableTree::Node::Internal#[]
to return the child node usingindex
. - Change
CallableTree::Node::Internal#children
to return a new array including child nodes of the node. - Add
CallableTree::Node::Internal#children!
to return destructively changeable array including child nodes of the node.
- Add
CallableTree::Node::Internal#shake
to recursively executeCallableTree::Node::Internal#reject
, including child nodes. The child nodes that are empty because their children have been rejected will also be rejected. - Add
CallableTree::Node::Internal#shake!
that make destructive change. - Add
CallableTree::Node#outline
that may be useful for writing the specs.
- Add
CallableTree::Node::Internal#reject
to return a new node instance without rejected child nodes. - Add
CallableTree::Node::Internal#reject!
to destructively reject child nodes.
- Add
CallableTree::Node#root?
. - Add
CallableTree::Node::Internal#seek!
that make destructive change. - Add
CallableTree::Node::Internal#broadcast!
that make destructive change. - Add
CallableTree::Node::Internal#compose!
that make destructive change.
- Change
CallableTree::Node::Internal#append
to return a new instance. To keep the same behavior as the older version, useCallableTree::Node::External#append!
that make destructive change. - Remove
CallableTree::Node::Internal#<<
. UseCallableTree::Node::External#append!
instead. - Change
CallableTree::Node::External#verbosify
to return a new instance. To keep the same behavior as the older version, useCallableTree::Node::External#verbosify!
that make destructive change.
- Minor improvements
- Add
CallableTree::Node::Internal#compose
(experimental)
- Add
CallableTree::Node::Internal#broadcast
(experimental)
- Initial release