Package io.kestra.plugin.graalvm.ruby
Class Eval
java.lang.Object
io.kestra.core.models.tasks.Task
io.kestra.plugin.graalvm.AbstractEval
io.kestra.plugin.graalvm.ruby.Eval
- All Implemented Interfaces:
io.kestra.core.models.Plugin,io.kestra.core.models.PluginVersioning,io.kestra.core.models.tasks.RunnableTask<AbstractEval.Output>,io.kestra.core.models.tasks.TaskInterface,io.kestra.core.models.WorkerJobLifecycle
@Plugin(examples=@Example(full=true,title="Execute a Ruby script using the GraalVM scripting engine.",code="id: evalRuby\nnamespace: company.team\n\ntasks:\n - id: evalRuby\n type: io.kestra.plugin.graalvm.ruby.Eval\n outputs:\n - map\n - out\n script: |\n Counter = Java.type(\'io.kestra.core.models.executions.metrics.Counter\')\n FileOutputStream = Java.type(\'java.io.FileOutputStream\')\n # all variables must be imported before use\n logger = Polyglot.import(\'logger\')\n runContext = Polyglot.import(\'runContext\')\n logger.info(\'Task started\')\n runContext.metric(Counter.of(\'total\', 666, \'name\', \'bla\'))\n map = {test: \'here\'}\n tempFile = runContext.workingDir().createTempFile().toFile()\n output = FileOutputStream.new(tempFile)\n output.write(\'Hello World\'.bytes)\n out = runContext.storage().putFile(tempFile)\n return {map: map, out: out}"),
metrics=@Metric(name="records",type="counter",unit="count",description="Tracks a user defined numeric value emitted from the Ruby script, such as the number of processed records or computed results."))
public class Eval
extends AbstractEval
-
Nested Class Summary
Nested classes/interfaces inherited from class io.kestra.plugin.graalvm.AbstractEval
AbstractEval.OutputNested classes/interfaces inherited from class io.kestra.core.models.tasks.Task
io.kestra.core.models.tasks.Task.TaskBuilder<C extends io.kestra.core.models.tasks.Task,B extends io.kestra.core.models.tasks.Task.TaskBuilder<C, B>> -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected @NotNull io.kestra.core.models.property.Property<String> Fields inherited from class io.kestra.plugin.graalvm.AbstractEval
outputsFields inherited from class io.kestra.core.models.tasks.Task
disabled, id, retry, timeout, type, versionFields inherited from interface io.kestra.core.models.PluginVersioning
DESCRIPTION, TITLE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected org.graalvm.polyglot.ContextbuildContext(io.kestra.core.runners.RunContext runContext, OutputStream out, OutputStream err) protected org.graalvm.polyglot.Context.BuildercontextBuilder(io.kestra.core.runners.RunContext runContext) protected org.graalvm.polyglot.SourcegenerateSource(String languageId, io.kestra.core.runners.RunContext runContext) protected org.graalvm.polyglot.ValuegetBindings(org.graalvm.polyglot.Context context, String languageId) io.kestra.core.models.property.Property<String> run(io.kestra.core.runners.RunContext runContext) Methods inherited from class io.kestra.plugin.graalvm.AbstractEval
runMethods inherited from class io.kestra.core.models.tasks.Task
findById, findById, getAssets, getDescription, getDisabled, getId, getLogLevel, getRetry, getRunIf, getTaskCache, getTimeout, getType, getVersion, getWorkerGroup, isAllowFailure, isAllowWarning, isFlowable, isLogToFile, isSendToWorkerTaskMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.kestra.core.models.WorkerJobLifecycle
kill, stop
-
Field Details
-
script
@NotNull @PluginProperty(group="main") protected @NotNull io.kestra.core.models.property.Property<String> script
-
-
Constructor Details
-
Eval
public Eval()
-
-
Method Details
-
getScript
-
run
- Throws:
Exception
-
getBindings
protected org.graalvm.polyglot.Value getBindings(org.graalvm.polyglot.Context context, String languageId) -
buildContext
protected org.graalvm.polyglot.Context buildContext(io.kestra.core.runners.RunContext runContext, OutputStream out, OutputStream err) -
contextBuilder
protected org.graalvm.polyglot.Context.Builder contextBuilder(io.kestra.core.runners.RunContext runContext) -
generateSource
protected org.graalvm.polyglot.Source generateSource(String languageId, io.kestra.core.runners.RunContext runContext) throws io.kestra.core.exceptions.IllegalVariableEvaluationException - Throws:
io.kestra.core.exceptions.IllegalVariableEvaluationException
-