bespoke-convenient
v1.0.0
Published
Convenient extension methods for building Bespoke.js plugins
Downloads
11
Readme
bespoke-convenient
Convenient extension methods for building Bespoke.js plugins. This plugin is targeted towards plugin developers, not everyday bespoke users looking to make a nice presentation.
Download
Download the production version or the development version, or use a package manager.
Usage
This plugin is shipped in a UMD format, meaning that it is available as a CommonJS/AMD module or browser global.
For example, when using CommonJS modules:
var bespoke = require('bespoke'),
convenient = require('bespoke-convenient');
var cv = convenient.builder("myplugin");
When using browser globals:
var cv = bespoke.plugins.convenient.builder("myplugin");
Since this is a plugin written for other bespoke plugin developers, have a look at the source files to learn more.
// convenient.builder(pluginName)
// bespoke.plugins.convenient.builder(pluginName)
// Convenient plugin level functions - create the variable cv in your plugin.
var cv = convenient.builder("myplugin");
// cv.activateDeck(deck)
// Activate convenient features and return an object with functions bound to the deck.
var cvBoundToDeck = cv.activateDeck(deck);
// cv.getStorage(deck)
// cvBoundToDeck.getStorage()
// Get a plugin storage object for the deck. Prior deck activation is required.
// Useful if you store state per deck, not for the entire plugin.
var storage = cvBoundToDeck.getStorage();
storage.anything = "Here you can save any options and state for this particular deck.";
storage.whatever = { happens: "happens" };
// cv.generateErrorObject(message)
// An error object with a prefixed error message.
throw cv.generateErrorObject("Look, sometimes bad things happen, and there is nothing you can do about it, so why worry? -- Simba, The Lion King");
// cv.fire(deck, eventName, innerEvent, slide, customData)
// cvBoundToDeck.fire(eventName, innerEvent, slide, customData)
// Fire an event on the deck, with plugin name etcetera filled in.
// innerEvent: either a DOM/browser event or a bespoke event
// slide: either the index of the affected slide, or the slide object itself
var success = cvBoundToDeck.fire("myevent", e, 123, { someExtraPluginData: "data value", somePluginStatus: 999 });
// cv.createEventData(deck, eventNamespace, eventName, innerEvent, slide, eventData)
// cvBoundToDeck.createEventData(eventNamespace, eventName, innerEvent, slide, eventData)
// Creates the event same object used by cvBoundToDeck.fire(...).
var eventData = cvBoundToDeck.createEventData();
// convenient.copyArray(array)
// Mostly useful for function arguments
var args = convenient.copyArray(arguments);
// cv.log([object], ...)
// Log a prefixed log message, by default to the developer console
cv.log("Something", "happened", 1974);
Package managers
npm
$ npm install bespoke-convenient
Bower
$ bower install bespoke-convenient
TODO
- Move more shared functionality into this plugin.
Credits
Mark Dalgleish for bespoke.js and related tools. This plugin was built with generator-bespokeplugin.
AJ Batac, ajbatac on flickr, for his photo E-Mart Convenience Store (CC BY 2.0).
License
Copyright (c) 2013, 2014, Joel Purra All rights reserved.
When using bespoke-convenient, comply to the MIT license. Please see the LICENSE file for details, and the MIT License on Wikipedia.