Class: RubyScriptProvider::RubyScript
- Inherits:
-
Object
- Object
- RubyScriptProvider::RubyScript
- Includes:
- Runo::Com::Sun::Star::Script::Provider::XScript, Uno::UnoBase
- Defined in:
- lib/rubyscriptprovider.rb
Overview
Executes script.
Instance Method Summary collapse
-
#initialize(capsule, file_name, func_name) ⇒ RubyScript
constructor
A new instance of RubyScript.
- #invoke(args, param_index, out_params) ⇒ Object
Methods included from Uno::UnoBase
#getImplementationId, #getTypes
Constructor Details
#initialize(capsule, file_name, func_name) ⇒ RubyScript
Returns a new instance of RubyScript.
917 918 919 920 921 |
# File 'lib/rubyscriptprovider.rb', line 917 def initialize(capsule, file_name, func_name) @capsule = capsule @file_name = file_name @func_name = func_name end |
Instance Method Details
#invoke(args, param_index, out_params) ⇒ Object
923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 |
# File 'lib/rubyscriptprovider.rb', line 923 def invoke(args, param_index, out_params) ret = nil begin m = @capsule.method(@func_name) if m ret = m.call(*args) end rescue Uno::UnoError => e trace = e.backtrace trace.unshift(trace[0].gsub( /`[^']*'/, "\`#{e.uno_method}'")) if e.respond_to? :uno_method trace.pop(2) e.uno_exception.Message += "\nError during invoking method: \n" + "Script: #{@func_name}\n" + "File: #{@file_name}\nType: #{e.type_name}" + "\n\n" + %Q!#{e.uno_exception}\n#{trace.join("\n")}\n! raise rescue => e ex = RuntimeException.new( %Q!\n#{e}\n#{e.backtrace.join("\n")}\n!, self) raise Uno::UnoError, ex end return [ret, [0], [nil]] end |