Name

Connector::Tee

Description

This connector can be used to search for a value over multiple branches in a way that is transparent to the caller.

Configurarion Example

class: Connector::Tee
accept: "\\A[a-zA-Z]+\\z"
branches:
 - static
 - conn1
 - conn2

nodes:
  static:
     test1: NO
     test2: YES
     test3: 0
  conn1@: connector:connectors.conn1
  conn2@: connector:connectors.conn2

If the connector with the above configuration is called with get('test1'), the request is dispatched to nodes.static.test1 which evaluates to NO and is returned as the overall result.

If you call get('test3'), the result is NOT 0 as this does not match the regex given as accept pattern! The request is therefore resend to nodes.conn1.test3 which is revolved to another connector call. In case the result of this connector does also not match the pattern (or is empty), the same request is send to nodes.conn2.test3.

For the scalar get call, the value given to accept is evaluated as a case-sensitive regex pattern using qr// internally. If you set accept to the string, any non-empty value is accepted.

For get_hash, an empty value for accept will let the empty hash pass, if accept is set to any true value, only non-empty hashes are accepted.

For get_list, accept is ignored and only non-empty lists are accepted.