Transform a file from Kestra with a Ruby script using the GraalVM scripting engine.
yaml
type: "io.kestra.plugin.graalvm.ruby.filetransform"
yaml
id: transformRuby
namespace: company.team
tasks:
- id: download
type: io.kestra.plugin.core.http.Download
uri: https://dummyjson.com/carts/1
- id: jsonToIon
type: io.kestra.plugin.serdes.json.JsonToIon
from: "{{outputs.download.uri}}"
- id: transformRuby
type: io.kestra.plugin.graalvm.ruby.FileTransform
from: "{{ outputs.jsonToIon.uri }}"
script: |
row = Polyglot.import('row')
if row[:id] == 55
# remove un-needed row
Polyglot.export('row', nil)
else
# remove the 'products' column
row[:products] = nil
# add a 'totalItems' column
row[:totalItems] = row[:totalProducts] * row[:totalQuantity]
end
Source file containing rows to transform.
Can be a Kestra internal storage URI, a map or a list.
The script to evaluate
Number of concurrent parallel transformations to execute.
Take care that the order is not respected if you use parallelism.
Format
uri
URI of a temporary result file.
The file will be serialized as an ION file.