NAME

Catmandu::Fix::Bind::list - a binder that computes Fix-es for every element in a list

SYNOPSIS

# Create an array:
#  demo:
#    - red
#    - green
#    - yellow

# Add a foo field to every item in the demo list, by default all
# fixes will be in context of the iterated path. If the context
# is a list, then '.' will be the path of the temporary context
# variable
do list(path:demo)
   if all_equal(.,green)
       upcase(.)
   end
end

# This will result:
#  demo:
#    - red
#    - GREEN
#    - yellow

# Loop over the list but store the values in a temporary 'c' variable
# Use this c variable to copy the list to the root 'xyz' path
do list(path:demo,var:c)
   copy_field(c,xyz.$append)
end

# This will result:
#  demo:
#    - red
#    - GREEN
#    - yellow
#  xyz:
#    - red
#    - GREEN
#    - yellow

DESCRIPTION

The list binder will iterate over all the elements in a list and fixes the values in context of that list.

CONFIGURATION

path

The path to a list in the data.

var

The loop variable to be iterated over. When used, a magic temporary field will be available in the root of the record containing the iterated data.

SEE ALSO

Catmandu::Fix::Bind