This page discusses software that must be installed on your system to support portions of the SketchApps Plugin Framework (PF). For convenience, some items are "bundled" (ie, provided as part of the framework); feel free to replace them with newer copies if and when this seems appropriate.

Many of these prerequisites are available both as RubyGems and as GitHub archives. Even if you decide to get a copy of the source code from GitHub, I suggest that you download the gems, as well:

  • cucumber, gherkin, rspec, selenium-client

  • eventmachine, em-dir-watcher, em-websocket

As these prerequisites hint, my own efforts are simply a small mashup, based on the work of many others. Let's hear it for public-spirited software developers!


These libraries are used by all of my plugins that use WebDialogs:

Embedded Ruby

Embedded Ruby allows DF to generate assorted files (eg, HTML, JavaScript) from templates. I grabbed a copy from the Ruby 1.8.6 distribution on Mac OS X 10.5.8 (Leopard). It appears to works well with SketchUp 8.x; please let me know if it fails for you.

jQuery UI (including jQuery)

jQuery is amazingly good at reducing the amount of JavaScript code it takes to capture events, manipulate the DOM, etc. jQuery UI is a useful collection of User Interface (UI) widgets.


Cucumber, RSpec, Selenium IDE and RC

Even if you don't buy into the whole BDD and TDD story, the tooling that these folks have developed is awesome. I'm currently using Cucumber and Selenium to write tests for su_proxy. Once I get that out of the way, I plan to take on the example plugins.

Hint: The RSpec Book and The Cucumber Book are both available!

Specifics: Selenium IDE and RC (includes Core); cucumber, gherkin, rspec, and selenium-client gems

EventMachine, etc.

Browser_Dialog uses EventMachine to run the su_proxy server. This is kind of like using a sledgehammer on a gnat, but it's a very nice sledgehammer. (It also rocks for creating massively scalable web applications.)

The su_proxy server also uses a couple of EventMachine add-ons:
   em-dir-watcher watches the plugin's output directory for outgoing message files.
   em-websocket lets EventMachine use WebSockets to talk to web browsers.

Specifics: eventmachine, em-dir-watcher, and em-websocket gems

Google SketchUp 8.*

SketchUp 8 has some important bug fixes and enhancements. UI.start_timer's ability to handle sub-second times is critical to the use of Browser_Dialog. Being able to say that you're using Ruby 1.8.6 will also reduce the snickering on the #ruby-lang IRC channel. So, be sure to upgrade...

Although SketchUp Pro is convenient, it isn't critical for PF, DF, etc. In particular, note that the Model Viewer can be used for some of the duties of the Component Attributes dialog. Even if you find Pro too pricy for regular use, download a trial copy and save it for emergency use.

Specifics: Google SketchUp (preferably SketchUp 8 Pro)

PackageMaker 3.0.3

This is the tool PF uses to create Mac OS X installers.

Ruby 1.8.6

Yeah, I know it's out of date. However, it's what SketchUp uses and most of my code expects it.


PF's Documentation tool is a thin wrapper on YARD, Loren Segal's excellent re-casting of RDoc.

Specifics: yard gems

Download Sites, etc.

This wiki page is maintained by Rich Morin, an independent consultant specializing in software design, development, and documentation. Please feel free to email comments, inquiries, suggestions, etc!

Topic revision: r6 - 06 Mar 2012, RichMorin
This site is powered by Foswiki Copyright © by the contributing authors. All material on this wiki is the property of the contributing authors.
Foswiki version v2.1.6, Release Foswiki-2.1.6, Plugin API version 2.4
Ideas, requests, problems regarding CFCL Wiki? Send us email