https://github.com/ales-vilchytski/modulejs-rails
Lightweight JavaScript module system for Ruby on Rails 4
https://github.com/ales-vilchytski/modulejs-rails
asset-pipeline javascript rails4 ruby
Last synced: 8 months ago
JSON representation
Lightweight JavaScript module system for Ruby on Rails 4
- Host: GitHub
- URL: https://github.com/ales-vilchytski/modulejs-rails
- Owner: ales-vilchytski
- License: mit
- Created: 2014-11-25T09:05:39.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2017-03-29T16:16:24.000Z (about 9 years ago)
- Last Synced: 2025-10-01T01:31:20.236Z (9 months ago)
- Topics: asset-pipeline, javascript, rails4, ruby
- Language: Ruby
- Size: 13.7 KB
- Stars: 8
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# modulejs for Ruby on Rails 4 Assets Pipeline
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:
1. Load scripts with dependencies, usually in big concatenated JavaScript file
2. Execute scripts and dependencies in proper order
Rails solves problem #1 by Assets Pipeline, modulejs solves problem #2.
## Installation
Add this line to your application's Gemfile:
```ruby
gem 'modulejs-rails'
```
And then execute:
$ bundle install
Or install it yourself as:
$ gem install modulejs-rails
## Usage
Require _modulejs_ in Assets Pipeline manifest
//= require 'modulejs'
Define your own modules (_this_ in functions points to _window_):
```javascript
modulejs.define('bar', ['foo'], function (foo) {
// module setup code and definitions
return some_bar_object;
});
```
Or setup 3rd party code:
```javascript
modulejs.define('foo', Foo);
```
And require them when needed:
```javascript
var bar = modulejs.require('bar');
bar.doStuff();
```
See full documentation here: https://larsjung.de/modulejs/
## Contributing
1. Fork it ( https://github.com/ales-vilchytski/modulejs-rails/fork )
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create a new Pull Request