How do I make my Ruby script extension compliant?

You should not open modal windows during the startup cycle as it halts the application processes.

Instead either open the Ruby Console and use puts statements to send text to STDOUT,
… or … use non-modal GUI objects like UI::Notifcation or UI::HtmlDialog windows.

ALL your extension code and support files (except the registrar file,) must be in the extension subdirectory (ie… the folder having the same name as the registrar file.) So when you select the registrar script file and the folder … everything for the extension is selected for the RBZ zip archive.
(Ie, in the SketchupExtension constructor call, the 2nd argument should refer to the main loader file in the extension’s subfolder.)

It is common after the zip is created, to add a version suffix to the end of the name prior to the “.rbz” extension. Examples:

  • The RBZ naming from one of the Trimble open source community extensions, the SketchUp Shapes extension: "su_shapes-2.0.1.rbz".
  • The naming for one of TIG’s extensions: "TIG_AreaTextTag_v1.6.rbz"

Notice how the registrar file and the extension subfolder names are prefixed by the author/company namespace module name, followed by an underscore, and then the extension submodule name. This is necessary because the "Plugins" directory is a shared filespace. So registrar files and their accompanying extension subfolders need to be uniquely qualified to avoid naming collisions.


Some other helpful webpages …