Extension Migrator for Developers

Extension Migrator can help users maintain their favorite extensions when updating SketchUp. For extension developers, there are few things to keep in mind to make sure your extensions work with Extension Migrator.

Name and Descriptions

Extension Migrator extracts name and description metadata of installed extensions to show users the name of each extension available to migrate. Each extension’s Ruby code specifies these properties.

To make sure your extension name and description displays as intended, use a simple extension root RB file like this one:

# Supported :)
EXTENSION = SketchupExtension.new("JD Cube Maker", "jd_cubemaker/main.rb")
EXTENSION.creator = "Jane Doe"
EXTENSION.version = "1.0.0"

More complicated data like dynamically loading values from a separate file, using conditional values that change the display name, or using string interpolation may result in the migrator not picking this data up. Here’s an example of what not to do:

# Not supported :(
NAME = "Cube Maker"
EXTENSION = SketchupExtension.new("JD " + NAME), "jd_cubemaker/main.rb")
EXTENSION.version = File.read("jd_cubemaker/version.txt")

If Extension Migrator can’t pick up the extension name and description, it falls back to the .rb file name. The extension will still appear in the list, it just won’t have the proper name.

Licensing

The license for paid extensions should be fetched and activated the first time the user interacts with the extension after migration. If an extension uses a custom licensing system, that license may not be found. To help users during migration, SketchUp recommends including a friendly reminder when a license is missing prompting the user to enter their license key again.

Was this article helpful?