UI-Grid Plugin Generator
This repo is a Yeoman generator for UI-Grid plugins.
What You Get
- Standard Angular project build cycle, with jshint, jsrc, ngAnnotate, and lesscss
- Automated tests with Karma
Automated e2e tests with Protractor- Automated docs generation with Dgeni
- Development environment based on your docs: use examples to demonstrate and test functionality.
- Automated publishing with gh-pages: use your generated docs files to create your plugin's website.
Get Started
Install yeoman if you don't already have it, and the plugin generator:
npm install -g yeoman generator-ui-grid-plugin
Create your plugin folder and bootstrap the plugin
mkdir my-plugin
cd my-plugin
yo ui-grid-plugin
Follow the prompts. The generator will ask you for your plugin's name, its description, and blah. Wait for all the dependencies to be installed, then you can get started.
Run it!
You can start up a development task like so. It will run on port 4000. If you want another port there's a switch for that.
gulp watch
gulp watch --port 9999
Writing Your Plugin
- All the .js files in src/ will be concatenated together and ngAnnotated.
- Tests in test/ will be run with karma.
- You can add tutorials by putting .md files in
docs/content/
. They use markdown and @ngdoc formatting. - You can add whatever other dependencies you need, from npm or bower.
Caveats
- The JSHint and JSCS config follows the same practices that UI-Grid does (or at least UI-Grid tries to). It's kind of strict, so if you want to make modifications feel free.
Badges
There's a generator for adding badge/shield images to the top of your README.md Just run this and select the options you want (you'll need to have your repository set in package.json):
yo ui-grid-plugin:badges
Coveralls
One of the badges is for Coveralls, and you'll need to sign up at http://coveralls.io if you want to use it. It's a great free, automated test coverage tool.
Development
Protractor
Note: Protractor tests do not work, currently. They throw a "window is not defined" error, which isn't documented well anywhere that I can find.
Publish
The publish
task takes automatically generated docs and dist files and push them to the gh-pages branch.
gulp publish --tag v0.0.1
Travis will also publish to gh-pages. You will need to set the version in bower.json
and package.json
. A gulp-bump task is included to make it easier. Here's some examples:
gulp bump --version 1.0.1
gulp bump --type minor
gulp bump --type patch
Commit and then push to GitHub. Travis will pick up the commit, create a tag for the new version, and push the updates to you gh-pages branch.
Travis
In order for Travis to publish your generated content to your gh-pages branch on GitHub, you need to give it a secure token it can use. Travis has a ruby gem for encrypting strings:
gem install travis
travis login
# enter your login info
travis encrypt GITHUB_TOKEN=youtokenhere
It will print out the encrypted string. It's important to make sure you use GITHUB_TOKEN
as the name and that you're in your project folder and have
You can run this generator to add it:
yo ui-grid-plugin:travis
It will prompt you for the encrypted string, and will store it in your .travis.yml
file. Be sure to paste just the encrypted string and not the - secure:
prefix.