sprockets-commonjs 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/README.md +2 -1
- data/examples/example.js +2 -65
- data/lib/sprockets/commonjs.rb +4 -7
- data/lib/sprockets/engine.rb +10 -0
- data/sprockets-commonjs.gemspec +2 -2
- metadata +6 -5
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -29,4 +29,5 @@ One caveat to the approach this library takes, is that dependencies loaded throu
|
|
29
29
|
|
30
30
|
1. Add `gem 'sprockets-commonjs'` to your `Gemfile`
|
31
31
|
1. Add `.module.js` to any JavaScript files you want as modules, i.e. `users.module.js`
|
32
|
-
1. Require all the modules, e.g.: `//= require_tree ./
|
32
|
+
1. Require all the modules, e.g.: `//= require_tree ./models`
|
33
|
+
1. Or, require individual modules, e.g.: `//= require users.module`
|
data/examples/example.js
CHANGED
@@ -1,74 +1,11 @@
|
|
1
|
-
|
2
|
-
var modules = {}, cache = {};
|
3
|
-
|
4
|
-
if (this.require && this.require.modules) {
|
5
|
-
modules = this.require.modules;
|
6
|
-
}
|
7
|
-
|
8
|
-
var require = function(name, root) {
|
9
|
-
var path = expand(root, name), indexPath = expand(path, './index'), module, fn;
|
10
|
-
module = cache[path] || cache[indexPath];
|
11
|
-
if (module) {
|
12
|
-
return module;
|
13
|
-
} else if (fn = modules[path] || modules[path = indexPath]) {
|
14
|
-
module = {id: path, exports: {}};
|
15
|
-
cache[path] = module.exports;
|
16
|
-
fn(module.exports, function(name) {
|
17
|
-
return require(name, dirname(path));
|
18
|
-
}, module);
|
19
|
-
return cache[path] = module.exports;
|
20
|
-
} else {
|
21
|
-
throw 'module ' + name + ' not found';
|
22
|
-
}
|
23
|
-
};
|
24
|
-
|
25
|
-
var expand = function(root, name) {
|
26
|
-
var results = [], parts, part;
|
27
|
-
// If path is relative
|
28
|
-
if (/^\.\.?(\/|$)/.test(name)) {
|
29
|
-
parts = [root, name].join('/').split('/');
|
30
|
-
} else {
|
31
|
-
parts = name.split('/');
|
32
|
-
}
|
33
|
-
for (var i = 0, length = parts.length; i < length; i++) {
|
34
|
-
part = parts[i];
|
35
|
-
if (part == '..') {
|
36
|
-
results.pop();
|
37
|
-
} else if (part != '.' && part != '') {
|
38
|
-
results.push(part);
|
39
|
-
}
|
40
|
-
}
|
41
|
-
return results.join('/');
|
42
|
-
};
|
43
|
-
|
44
|
-
var dirname = function(path) {
|
45
|
-
return path.split('/').slice(0, -1).join('/');
|
46
|
-
};
|
47
|
-
|
48
|
-
this.require = function(name) {
|
49
|
-
return require(name, '');
|
50
|
-
};
|
51
|
-
|
52
|
-
this.require.define = function(bundle) {
|
53
|
-
for (var key in bundle) {
|
54
|
-
modules[key] = bundle[key];
|
55
|
-
}
|
56
|
-
};
|
57
|
-
|
58
|
-
this.require.modules = modules;
|
59
|
-
this.require.cache = cache;
|
60
|
-
return this.require;
|
61
|
-
}).call(this);
|
62
|
-
this.require.define({"modules/program.module":function(exports, require, module){module.exports = function(){
|
1
|
+
module.exports = function(){
|
63
2
|
alert('Long live the Programs!');
|
64
3
|
};
|
65
|
-
|
66
|
-
this.require.define({"modules/user.module":function(exports, require, module){var Program = require('modules/program');
|
4
|
+
var Program = require('modules/program');
|
67
5
|
|
68
6
|
module.exports = function(){
|
69
7
|
alert('Long live the Users');
|
70
8
|
Program();
|
71
9
|
};
|
72
|
-
;}});
|
73
10
|
|
74
11
|
var self = 'application.js';
|
data/lib/sprockets/commonjs.rb
CHANGED
@@ -16,10 +16,8 @@ module Sprockets
|
|
16
16
|
attr_reader :namespace
|
17
17
|
|
18
18
|
def evaluate(scope, locals, &block)
|
19
|
-
if
|
20
|
-
path = scope.logical_path
|
21
|
-
path = File.join(File.dirname(path), File.basename(path, '.module'))
|
22
|
-
path = path.inspect
|
19
|
+
if scope.pathname.basename.to_s.include?('.module')
|
20
|
+
path = scope.logical_path.inspect
|
23
21
|
|
24
22
|
scope.require_asset 'sprockets/commonjs'
|
25
23
|
|
@@ -34,7 +32,6 @@ module Sprockets
|
|
34
32
|
end
|
35
33
|
end
|
36
34
|
end
|
37
|
-
|
38
|
-
register_postprocessor 'application/javascript', CommonJS
|
39
|
-
append_path File.expand_path('../..', __FILE__)
|
40
35
|
end
|
36
|
+
|
37
|
+
require 'sprockets/engine'
|
@@ -0,0 +1,10 @@
|
|
1
|
+
if defined?(Rails)
|
2
|
+
module Sprockets
|
3
|
+
class CommonJSEngine < Rails::Engine
|
4
|
+
config.after_initialize do
|
5
|
+
Rails.application.assets.register_postprocessor 'application/javascript', CommonJS
|
6
|
+
Rails.application.assets.append_path File.expand_path('../..', __FILE__)
|
7
|
+
end
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
data/sprockets-commonjs.gemspec
CHANGED
@@ -3,7 +3,7 @@ $:.push File.expand_path("../lib", __FILE__)
|
|
3
3
|
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = "sprockets-commonjs"
|
6
|
-
s.version = '0.0.
|
6
|
+
s.version = '0.0.3'
|
7
7
|
s.authors = ["Alex MacCaw"]
|
8
8
|
s.email = ["info@eribium.org"]
|
9
9
|
s.homepage = ""
|
@@ -19,5 +19,5 @@ Gem::Specification.new do |s|
|
|
19
19
|
|
20
20
|
# specify any dependencies here; for example:
|
21
21
|
# s.add_development_dependency "rspec"
|
22
|
-
s.add_runtime_dependency "sprockets", "~>2.
|
22
|
+
s.add_runtime_dependency "sprockets", "~>2.1.2"
|
23
23
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sprockets-commonjs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,19 +9,19 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-04-22 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: sprockets
|
16
|
-
requirement: &
|
16
|
+
requirement: &70210125726500 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 2.
|
21
|
+
version: 2.1.2
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70210125726500
|
25
25
|
description: Adds CommonJS support to Sprockets
|
26
26
|
email:
|
27
27
|
- info@eribium.org
|
@@ -40,6 +40,7 @@ files:
|
|
40
40
|
- examples/modules/user.module.js
|
41
41
|
- lib/sprockets/commonjs.js
|
42
42
|
- lib/sprockets/commonjs.rb
|
43
|
+
- lib/sprockets/engine.rb
|
43
44
|
- sprockets-commonjs.gemspec
|
44
45
|
homepage: ''
|
45
46
|
licenses: []
|