diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 18:07:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 18:07:14 +0000 |
commit | a175314c3e5827eb193872241446f2f8f5c9d33c (patch) | |
tree | cd3d60ca99ae00829c52a6ca79150a5b6e62528b /storage/mroonga/vendor/groonga/plugins/ruby/eval.rb | |
parent | Initial commit. (diff) | |
download | mariadb-10.5-9e4947182e0b875da38088fdd168e775f473b8ad.tar.xz mariadb-10.5-9e4947182e0b875da38088fdd168e775f473b8ad.zip |
Adding upstream version 1:10.5.12.upstream/1%10.5.12upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'storage/mroonga/vendor/groonga/plugins/ruby/eval.rb')
-rw-r--r-- | storage/mroonga/vendor/groonga/plugins/ruby/eval.rb | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/storage/mroonga/vendor/groonga/plugins/ruby/eval.rb b/storage/mroonga/vendor/groonga/plugins/ruby/eval.rb new file mode 100644 index 00000000..e7619cf2 --- /dev/null +++ b/storage/mroonga/vendor/groonga/plugins/ruby/eval.rb @@ -0,0 +1,36 @@ +module Groonga + module Ruby + class EvalCommand < Command + register("ruby_eval", + [ + "script", + ]) + + def run_body(input) + script = input[:script] + unless script.is_a?(String) + message = "script must be a string: <#{script.inspect}>" + raise Groonga::InvalidArgument, message + end + + eval_context = EvalContext.new + begin + result = eval_context.eval(script) + rescue Exception => error + writer.map("result", 1) do + writer.write("exception") + writer.map("exception", 1) do + writer.write("message") + writer.write(error.message) + end + end + else + writer.map("result", 1) do + writer.write("value") + writer.write(result) + end + end + end + end + end +end |