Lightweight JavaScript module system (http://larsjung.de/modulejs/), v2.2.0. Inspired by article: https://www.reinteractive.net/posts/172-a-better-way-to-modularise-your-js-in-rails
When you want to use modules in JavaScript you should solve next problems:
- Load scripts with dependencies, usually in big concatenated JavaScript file
- Execute scripts and dependencies in proper order
Rails solves problem #1 by Assets Pipeline, modulejs solves problem #2.
Add this line to your application's Gemfile:
gem 'modulejs-rails'
And then execute:
$ bundle install
Or install it yourself as:
$ gem install modulejs-rails
Require modulejs in Assets Pipeline manifest
//= require 'modulejs'
Define your own modules (this in functions points to window):
modulejs.define('bar', ['foo'], function (foo) {
// module setup code and definitions
return some_bar_object;
});
Or setup 3rd party code:
modulejs.define('foo', Foo);
And require them when needed:
var bar = modulejs.require('bar');
bar.doStuff();
See full documentation here: https://larsjung.de/modulejs/
- Fork it ( https://github.com/ales-vilchytski/modulejs-rails/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request