Improve your custom toolbox and develop process with a lot of powerful features
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
+ToolboxExtender
doc
resources
scripts
.gitignore
DesktopToolset.xml
README.md
ToolboxConfig.xml
ToolboxDev.m
ToolboxExtender-icon.png
ToolboxExtender.m
ToolboxExtender.mltbx
ToolboxExtender.prj
ToolboxExtenderApp.mlapp
ToolboxStorage.m
ToolboxUpdater.m
dev_on.m
icon-help.png
icon-update.png
info.xml
retest.m

README.md

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.

File Exchange entry: Toolbox Extender

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)

Requirements

  • MATLAB R2018b
  • Installed Git for Dev functionality
  • Public toolbox project on GitHub for Updater functionality

Extender Class

Contains core functions. Required for other classes and functionality.

Can be useful itself:

  • open toolbox documentation or examples
  • get current toolbox version
  • uninstall toolbox

See ToolboxExtender (class) documentation

Dev Class

Helps you to build toolbox and deploy it to GitHub:

  • 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 one .mat file in convenient Add-ons folder
  • load any data you need by name
  • clear storage if you don't need it

See ToolboxStorage (class) documentation

Examples of Toolbox Extender usage

  • MATLAB WEB API
  • MATLAB Course for Educators
  • (send us your examples)

Installation

Download and run ToolboxExtender.mltbx

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

How to open documentation

Use Toolbox Extender App or

ToolboxExtender.help

How to 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])

This 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!

  2. Manually add ...Dev.m class and dev_on.m script to excluded files of your project

How to 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


by Pavel Roslovets, ETMC Exponenta