NAME

Articulate::Flow::LocationSwitch - case switching for location

CONFIGURATION

- class: Articulate::Flow::LocationSwitch
  args:
    where:
      '/assets/*/*/*':
        - Enrich::Asset
    otherwise:
      - Enrich::Content

DESCRIPTION

This provides a convenient interface to a common branching pattern. When performing actions like enrich and augment, a developer will typically want to make some processes dependant on the location of the content being stored.

Rather than having to write a 'black box' provider every time, this class provides a standard way of doing it.

METHODS

enrich

$self->enrich( $item, $request );
$self->process_method( enrich => $item, $request );

augment

$self->augment( $item, $request );
$self->process_method( augment => $item, $request );

process_method

$self->process_method( $verb, $item, $request );

Goes through each of the keys of $self->where; if the location of $item matches location specification given (see Articulate::LocationSpecification), then instantiates the value of that key and performs the same verb on the arguments.

If none of the where clauses matched, the otherwise provider, if one is specified, will be used.