bazaarvoice/jolt — pull request #110 by milosimpson (2014-10-13 05:00:38+00:00)
Title: Ability to Transpose data in Shiftr.

Fixes #91 #108

Added to the '@' wildcard functionality to allow for data lookup in the input tree.
- Example :
input : {
"data" : {
"key" : "penguins",
"value" : "fish"
}

spec : {
"data" : {
"@value" : "@key"
}
}

output : {
"penguins" : "fish"
}

This will pull values from the "data" Map, from the "key" and "value" keys.
- Complex paths after the '@' can be embedded in a parenthesis
- Example : "@(path.to.data.down.the[2].tree.&(1,1))"
- Note : The "path" after an '@' can not contain any '*' wildcards.

- Cleaned up the Parsing of PathElements for Shiftr.
- Refactored the WalkedPath so that it can contain a pointer to the input from each level

- For Transpose, the ability to coerce a Boolean into a String of "true" or "false".
- Ability to specify a String value on the LHS by using the # operator.
-- Compelling usecase is transposing a boolean into more useful String values.

Also, added to the '#' operator so that values from the spec can be written directly
to the output. This was possible before, but required two passes thru Shiftr.