Skip to content

Improve your custom toolbox and develop process with a lot of powerful features

Notifications You must be signed in to change notification settings

ETMC-Exponenta/ToolboxExtender

Repository files navigation

Toolbox Extender

When you create toolbox you often face issues, i.e.:

  • how to automate routine tasks related to the toolbox building end using
  • how to easily and correctly distribute your toolbox via the internet
  • how to make users notice that a newer version of the toolbox is available
  • how to easily store toolbox data (i.e. user preferences) not in the curent folder but in some convinient location

Toolbox Extender address those issues extending built-in MATLAB capabilities of toolbox creating.

View Toolbox Extender on File Exchange

Why should I use?

  • It will save your time spended on toolbox developing
  • You will avoid some typical errors related to toolbox building and distribution due to automation
  • Your toolboxes will have unique features (autoupdating via internet and user preferences storing)
  • It's easy to add exdended capabilities to your toolbox
  • It's easy to use them due to built-in documentation and examples

Core features:

  • Easily install/uninstall toolbox and check current version (Extender)
  • Access toolbox documentation and examples (Extender)
  • Automatic toolbox building and deployment to GitHub (Dev)
  • Ability of installed toolbox to automatically update itself to the latest version from GitHub (Updater)
  • Toolbox ability to store any data within itself, i.e. settings (Storage)
  • Web installer that allows to install your toolbox from web with one-line command (installers)

Requirements

  • MATLAB R2019b or later
  • Installed Git for Dev and Updater functionality
  • Public toolbox project on GitHub for Updater functionality

Details

Extender Class

Contains core functions. Required for other classes and functionality.

Can be useful itself:

  • open toolbox documentation or examples
  • get current toolbox version
  • add MATLAB favorite and toolbar shortcut
  • uninstall toolbox

See ToolboxExtender (class) documentation

Dev Class

Helps you to build toolbox and deploy it to GitHub:

  • generate html-documentation from .mlx-files
  • update toolbox version and build .mltbx
  • commit and push project to GitHub
  • create tag with version number and push it to GitHub
  • create release page and upload .mltbx binary

See ToolboxDev (class) documentation

Updater Class

Updater class will add to your custom evergreen toolbox:

  • feature to check the latest version on GitHub
  • ability to automatically download and install the latest version

See ToolboxUpdater (class) documentation

Storage Class

Helps you easily store any data within installed toolbox, i.e. user settings

  • store all toolbox data in .mat-file, .json-file or MATLAB preferences
  • files are stored in convenient Add-ons folder
  • load any data you need by name
  • clear storage if you don't need it

See ToolboxStorage (class) documentation

Installers

Optimize distribution of your toolbox:

  • Exclude .mltbx binary from source files
  • Provide your users with one-line MATLAB command that installs your toolbox directly form GitHub to MATLAB or MATLAB Online

See Installers documentation

How to

Install

1st approach (recommended)

Execute in MATLAB

eval(webread('https://exponenta.ru/install/ext'))

2nd approach

Download and install ToolboxExtender.mltbx

3rd approach (not recommended, olny for testing)

Download project zip-arhive, unpack, open this folder in MATLAB as current and execute

install

Open documentation

Use Toolbox Extender App or

ToolboxExtender.help

Use

  1. In toolbox project directory create toolbox project file (.prj)

  2. Upload your project to GitHub (optionally)

  3. Use Toolbox Extender App to initialize required classes or run command

ToolboxExtender.add([classname])

It will initialize in the curent toolbox project folder a copy of the ToolboxExtender class and classname (optional):

  • 'all' - ToolboxExtender, ToolboxDev, ToolboxStorage, ToolboxUpdater classes
  • 'extender' or without argument - only ToolboxExtender class
  • 'dev' - ToolboxExtender, ToolboxDev classes
  • 'storage' - ToolboxExtender, ToolboxStorage classes
  • 'updater' - ToolboxExtender, ToolboxUpdater classes

Initialized classes will have names depended on the project name, i.e.: ProjectNameExtender, ProjectNameDev, etc.

  1. Also files will be generated in project directory: ToolboxConfig.xml with project and Extender info, dev_on.m script to activate developer tools (optionally). Do not delete ToolboxConfig.xml!

Update installed Toolbox Extender

Use Toolbox Extender App or...

Check installed and latest version

ToolboxExtender.ver

Update to the latest version if available

ToolboxExtender.update

Toolbox Extender App

You can use Toolbox Extender App to work with the main Toolbox Extender functionality.

The app can be found in APPS section of main MATLAB Window or

ToolboxExtenderApp

Examples of Toolbox Extender usage


by Pavel Roslovets, ETMC Exponenta

About

Improve your custom toolbox and develop process with a lot of powerful features

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages