MooTools More
MooTools Plugins and Enhancements Repository
Contribute
You are welcome to contribute to MooTools! What we ask of you:
a. To report a bug:
- Create a jsFiddle with the minimal amount of code to reproduce the bug.
- Create a Github Issue, and link to the jsFiddle.
b. To fix a bug:
- Clone the repo.
- Fix the bug.
- Add a spec.
- Build and run the specs.
- Push to your Github fork.
- Create Pull Request, and send Pull Request.
Do try to contribute! This is a community project.
TO DO
- change the interactive specs to work without the Clientcide dev app
- deprecate and remove things from -More that are deprecated or not maintained anymore
- add touch / mobile functionality
- make detach method for all classes that attach to elements
- make destroy method for all classes that create elements
StyleGuide
Building & Testing
Current build process uses Grunt, Grunt MooTools Packager plugin, and Karma related repos.
By default, the build process runs the tests (specs) relevant to the build. To build without testing see the packager
build targets.
Testing locally
MooTools More has 2 test suites. One interactive that needs you to click & drag elements, and one non-interactive where the Jasmine & Karma do the whole job.
To run the interactive specs you have to install mootools-ui-runner. If you follow the link you find the 2 step quick setup.
To run the non-interactive specs you can follow these steps in order:
$ git clone https://github.com/mootools/mootools-more # clone the MooTools repo
$ cd mootools-more # get into the directory
$ npm install # install de testing tools
$ npm install grunt-cli -g # install the Grunt command line interface
$ grunt default # run the specs!
You can also change which browser to call in the Gruntfile.js. Note that most browsers need to be closed when starting tests so Grunt-Karma opens and closes the browser. Otherwise they might not close on its own and fire a timeout error for inactivity.
Example:
continuous: {
browsers: ['PhantomJS', 'IE', 'Chrome', 'Firefox', 'Safari']
},
If the log is too long, or if you want to store it in a file you can do:
$ grunt > logs.txt # This will create a new file called "logs.txt" in the local directory
Building MooTools With Compatibility
This means 1.5.x
that is compatible with: 1.4.x
, 1.3.x
, 1.2.x
, and so on.
Examples
grunt # to build and run specs, or
grunt packager:all # to only build the source
Building MooTools Without Compatibility
This means 1.5.x
without deprecated code in 1.4.x
, 1.3.x
, 1.2.x
, and so on.
'Proceed at your own risk'
See the changelog or the blog related to each version for migrating your code.
Examples
grunt nocompat # to build and run specs, or
grunt packager:nocompat # to only build the source
Testing on Travis & Sauce Labs
Every new Build and Pull Request is now tested on Travis and Sauce Labs. You can also open your own free account on Travis and Sauce Labs to test new code ideas there.
Travis testing uses PhantomJS which is a headless browser. When connected to Sauce Labs then it is possible to choose any number of different Browsers and Platforms. You will need in this case to change the login key so it will match your account.
Browsers, Platforms, and More
This test suite is ready for Travis & SauceLabs. You can also run locally.
Support:
- IE
- Firefox
- Safari
- Chrome
- Opera
- PhantomJS (virtual browser)