Module: RubyScriptProvider
- Defined in:
- lib/rubyscriptprovider.rb,
lib/rubyscriptprovider.rb,
lib/rubyscriptprovider.rb,
lib/rubyscriptprovider.rb
Overview
When you want to execute a macro written in Ruby, it should be placed under user_profile/Scripts/ruby directory.
Defined Under Namespace
Modules: PackageManager, RubyScripts Classes: BaseNode, CommandEnvironment, DirBrowseNode, DummyInteractionHandler, DummyProgressHandler, FileBrowseNode, PackageBrowseNode, RubyScript, ScriptBrowseNode, ScriptContext, ScriptProviderImpl, Storage, URL
Constant Summary collapse
- LANGUAGE =
"Ruby"
- NAME =
"#{LANGUAGE}ScriptProvider"
- RB_EXTENSION =
".rb"
- DOC_PROTOCOL =
"vnd.sun.star.tdoc:"
- Property =
Runo.uno_require 'com.sun.star.beans.Property'
- Command =
Runo.uno_require 'com.sun.star.ucb.Command'
- ScriptFrameworkErrorException =
Runo.uno_require( "com.sun.star.script.provider.ScriptFrameworkErrorException")
- RuntimeException =
Runo.uno_require( "com.sun.star.uno.RuntimeException")
- BrowseNodeTypes =
Runo.uno_require( "com.sun.star.script.browse.BrowseNodeTypes")
Class Method Summary collapse
-
.get_context(ctx, doc) ⇒ Object
get_context(ctx, doc) -> obj Get document context.
-
.get_document_model(ctx, uri) ⇒ Object
get_document_model(ctx, uri) -> obj Get document model from internal uri.
Class Method Details
.get_context(ctx, doc) ⇒ Object
get_context(ctx, doc) -> obj Get document context.
510 511 512 513 514 |
# File 'lib/rubyscriptprovider.rb', line 510 def self.get_context(ctx, doc) return ctx.getServiceManager.createInstanceWithContext( "com.sun.star.frame.TransientDocumentsDocumentContentFactory", ctx). createDocumentContent(doc).getIdentifier.getContentIdentifier end |
.get_document_model(ctx, uri) ⇒ Object
get_document_model(ctx, uri) -> obj Get document model from internal uri.
487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 |
# File 'lib/rubyscriptprovider.rb', line 487 def self.get_document_model(ctx, uri) doc = nil smgr = ctx.getServiceManager ucb = smgr.createInstanceWithArgumentsAndContext( "com.sun.star.ucb.UniversalContentBroker", ["Local", "Office"], ctx) identifier = ucb.createContentIdentifier(uri) content = ucb.queryContent(identifier) property = Property.new("DocumentModel", -1, Uno.get_type("void"), 1) command = Command.new( "getPropertyValues", -1, Runo::Any.new("[]com.sun.star.beans.Property", [property])) env = CommandEnvironment.new begin result_set = content.execute(command, 0, env) doc = result_set.getObject(1, nil) rescue => e p e.to_s + "\n" + e.backtrace.join("\n") + "\n" end return doc end |