-
-
Couldn't load subscription status.
- Fork 933
Open
Description
I am using JRuby 9.2.7.0 on Ubuntu 18.04 64 bit with JDK11.
Can you show me an example of ruby script where we are implementing a java interface and invoking initialize method?
I have following script but in initialize method, the values are of type NilClass.
class MyScript
# Import the interface required by the Script snap.
include com.snaplogic.scripting.language.ScriptHook
attr_reader :log, :input, :output, :error
def initialize(log, input, output, error)
puts input.class.name
# above line outputs NilClass; how to fix it?
@log = log
@input = input
@output = output
@error = error
end
# The "execute()" method is called once when the pipeline is started
# and allowed to process its inputs or just send data to its outputs.
def execute()
while input.hasNext() do
begin
# Read the next document, wrap it in a map and write out the wrapper
doc = input.next()
wrapper = {
"original" => doc
}
log.info("Executed Ruby script")
output.write(doc, wrapper)
rescue => e
log.error("Bad Rublet " + e.message)
errWrapper = {
"errMsg" => e.message
}
error.write(errWrapper)
end
end
end
end
# The Script Snap will look for a ScriptHook object in the "hook"
# variable. The snap will then call the hook's "execute" method.
$hook = MyScript.new($log, $input, $output, $error)
Metadata
Metadata
Assignees
Labels
No labels