From 15239dbcecb607405100a3fe2c36d1d12d0b0e6c Mon Sep 17 00:00:00 2001 From: Loic Nageleisen Date: Tue, 1 Oct 2013 09:05:02 +0200 Subject: [PATCH] Rails support --- README.mdown | 26 ++++++++++++++++++++++++-- lib/assets/javascripts/umodule.js.erb | 1 + lib/sprockets/umodule/version.rb | 2 +- lib/umodule-rails.rb | 2 ++ lib/umodule/rails.rb | 8 ++++++++ 5 files changed, 36 insertions(+), 3 deletions(-) create mode 100644 lib/assets/javascripts/umodule.js.erb create mode 100644 lib/umodule-rails.rb create mode 100644 lib/umodule/rails.rb diff --git a/README.mdown b/README.mdown index 2a20f19..cdcdd59 100644 --- a/README.mdown +++ b/README.mdown @@ -4,8 +4,30 @@ ## Goal -Save you from the boilerplate of writing module wrapping. +`sprockets-umodule` saves you from the chore of writing CommonJS umodule +wrapping boilerplate. The module name will automatically be set from its +logical path (relative path to its asset root). ## Usage -Add sprockets-umodule to your Gemfile. Name your module files with .umodule. +Add `gem 'sprockets-umodule'` to your Gemfile. Name your module files with +`.js.umodule` or `.js.umodule.coffee`, matching your poison of choice. + +If you're using Sprockets, load umodule.js by any way you see fit. For convenience, +its source is included and can be obtained with `Umodule::Source.contents`, so +it's merely a `umodule.js.erb` away: + + <%= Umodule::Source.contents %> + +Alternatively, you can add `File.dirname(Umodule::Source.bundled_path)` to the +asset load path. + +If you're using Rails, add `gem 'sprockets-umodule, require: umodule-rails` +instead, which will make it an engine and set up all of this for you, so you +just have to add `//= require +umodule` to `application.js`. + +Important note: due to some technical complications, you must also +`//= require` your umodule assets in `application.js`, and possibly manage +dependency ordering manually. In any case, they should be loaded after +`umodule.js`. diff --git a/lib/assets/javascripts/umodule.js.erb b/lib/assets/javascripts/umodule.js.erb new file mode 100644 index 0000000..2167072 --- /dev/null +++ b/lib/assets/javascripts/umodule.js.erb @@ -0,0 +1 @@ +<%= Umodule::Source.contents %> diff --git a/lib/sprockets/umodule/version.rb b/lib/sprockets/umodule/version.rb index 53ff73d..5658037 100644 --- a/lib/sprockets/umodule/version.rb +++ b/lib/sprockets/umodule/version.rb @@ -1,5 +1,5 @@ module Sprockets module Umodule - VERSION = '1.0.0' + VERSION = '1.1.0' end end diff --git a/lib/umodule-rails.rb b/lib/umodule-rails.rb new file mode 100644 index 0000000..3c7e33a --- /dev/null +++ b/lib/umodule-rails.rb @@ -0,0 +1,2 @@ +require 'sprockets-umodule' +require 'umodule/rails' diff --git a/lib/umodule/rails.rb b/lib/umodule/rails.rb new file mode 100644 index 0000000..6d6908b --- /dev/null +++ b/lib/umodule/rails.rb @@ -0,0 +1,8 @@ +require 'rails/engine' + +module Umodule + module Rails + class Engine < ::Rails::Engine + end + end +end