A skippy library for SketchUp
This project is in very early stage of development. Experimental. Pre-alpha. Anything might change at any given time until a stable release has been announced.
This is a general purpose Ruby library for SketchUp extensions.
Previous incarnations of tt-lib was distributed as an .rbz
, identically to any normal extension. By it self it did nothing, but a number of extensions depended on it to be installed. This was convent for development, but not for maintenance or end users.
The long term goal for tt-lib³ is to become a skippy library. Skippy will - in time - manage library dependencies for SketchUp extension projects; Installing, updating etc. While making sure the consumed libraries are embedded into the extension package and namespace.
Until skippy is more mature, this library can be used as a resource and a reference point for small utility classes and methods useful in common SketchUp extension development.
The library will consist of a number of small generic classes and modules designed for their own specific purpose.
Objects that holds state are implemented at classes, while stateless functionality is put into mix-in-able modules.
Modules in this library include self
, so you can use their methods by calling them on the module itself, or by including it into your current scope.
Example: (As a mix-in)
require 'example/vendor/tt-lib/drawing_helper'
module Example
class CustomTool
include DrawingHelper
def draw(view)
draw_points(view, points, size)
draw_edges(view, edges, 2, 'red')
end
end
end
Example: (As a separate module reference)
require 'example/vendor/tt-lib/drawing_helper'
module Example
class CustomTool
def draw(view)
DrawingHelper.draw_points(view, points, size)
DrawingHelper.draw_edges(view, edges, 2, 'red')
end
end
end
Each module, class and methods should have tests that verify their behavior.
Each module, class and methods should have documentation for what it does, it's parameters, it's types and examples.
RuboCop enforces coding style and linting for code consistency.