sprockets-commonjs 0.0.6.pre → 0.0.6.rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/examples/example.js CHANGED
@@ -58,7 +58,7 @@
58
58
 
59
59
  return this.require;
60
60
  }).call(this);
61
- this.require.define({"modules/program":function(exports, require, module){module.exports = function(){
61
+ this.require.define({"modules/program.cjs":function(exports, require, module){module.exports = function(){
62
62
  alert('Long live the Programs!');
63
63
  };
64
64
  ;}});
@@ -3,38 +3,53 @@ require 'tilt'
3
3
 
4
4
  module Sprockets
5
5
  class CommonJS < Tilt::Template
6
- self.default_mime_type = 'application/javascript'
7
6
 
8
- def self.default_namespace
9
- 'this.require'
7
+ WRAPPER = '%s.define({%s:' +
8
+ 'function(exports, require, module){' +
9
+ '%s' +
10
+ ";}});\n"
11
+
12
+ EXTENSIONS = %w{.module .cjs}
13
+
14
+ class << self
15
+ attr_accessor :default_namespace
10
16
  end
11
17
 
18
+ self.default_mime_type = 'application/javascript'
19
+ self.default_namespace = 'this.require'
20
+
21
+ protected
22
+
12
23
  def prepare
13
24
  @namespace = self.class.default_namespace
14
25
  end
15
26
 
16
- attr_reader :namespace
17
-
18
27
  def evaluate(scope, locals, &block)
19
- if File.extname(scope.logical_path) == '.module'
20
- path = scope.logical_path
21
- path = path.gsub(/^\.?\//, '') # Remove relative paths
22
- path = path.chomp('.module') # Remove module ext
23
-
28
+ if commonjs_module?(scope)
24
29
  scope.require_asset 'sprockets/commonjs'
25
-
26
- code = ''
27
- code << "#{namespace}.define({#{path.inspect}:"
28
- code << 'function(exports, require, module){'
29
- code << data
30
- code << ";}});\n"
31
- code
30
+ WRAPPER % [ namespace, module_name(scope), data ]
32
31
  else
33
32
  data
34
33
  end
35
34
  end
35
+
36
+ private
37
+
38
+ attr_reader :namespace
39
+
40
+ def commonjs_module?(scope)
41
+ EXTENSIONS.include?(File.extname(scope.logical_path))
42
+ end
43
+
44
+ def module_name(scope)
45
+ scope.logical_path.
46
+ gsub(/^\.?\//, ''). # Remove relative paths
47
+ chomp('.module'). # Remove module ext
48
+ inspect
49
+ end
50
+
36
51
  end
37
52
 
38
53
  register_postprocessor 'application/javascript', CommonJS
39
54
  append_path File.expand_path('../../../assets', __FILE__)
40
- end
55
+ end
@@ -0,0 +1 @@
1
+ require 'sprockets/commonjs'
@@ -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.pre'
6
+ s.version = '0.0.6.rc1'
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.4.0"
22
+ s.add_runtime_dependency "sprockets", "~>2.9.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.6.pre
4
+ version: 0.0.6.rc1
5
5
  prerelease: 6
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-06-04 00:00:00.000000000Z
12
+ date: 2013-04-14 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: sprockets
16
- requirement: &70323409247920 !ruby/object:Gem::Requirement
16
+ requirement: &70242533873200 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
20
20
  - !ruby/object:Gem::Version
21
- version: 2.4.0
21
+ version: 2.9.2
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70323409247920
24
+ version_requirements: *70242533873200
25
25
  description: Adds CommonJS support to Sprockets
26
26
  email:
27
27
  - info@eribium.org
@@ -37,8 +37,9 @@ files:
37
37
  - examples/application.js
38
38
  - examples/example.js
39
39
  - examples/index.html
40
- - examples/modules/program.module.js
40
+ - examples/modules/program.cjs.js
41
41
  - examples/modules/user.module.js
42
+ - lib/sprockets-commonjs.rb
42
43
  - lib/sprockets/commonjs.rb
43
44
  - sprockets-commonjs.gemspec
44
45
  homepage: ''