Midge
Midge is a quick and cheap javascript module system for the rails asset pipeline. It supports multiple namespaces and
Installation
Add this line to your application's Gemfile:
gem 'midge'
And then execute:
$ bundle
Or install it yourself as:
$ gem install midge
Usage
First run the install.
$ rails generate midge:install
In the initializer you setup what file extensions will go to what "module".
# /config/initializers/midge.rb
Midge.setup do |config|
config.jst_processor ".midge_template", "Midge"
config.js_processor ".midge", "Midge"
end
With this setup you can create a file with the extension of ".midge.js" or
".midge.coffee" and it will be module enabled. In the file attach public
functionality onto the exports
object. For example:
// /app/assets/javascripts/person.midge.js
exports.Person = function() {
this.name = "A guy";
};
The output for this after running through the asset pipeline would be something like:
(function(exports) {
exports.Person = function() {
this.name = "A guy";
};
}).call(this, (this.Midge || (this.Midge = {})));
So with this in place you can access the Person
object on the Midge
namespace.
var guy = new Midge.Person;
Voila! Simple albeit limited javascript modules.
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Added some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request