browserify-rails 0.3.0 → 0.3.1
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.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/README.md +22 -5
- data/browserify-rails.gemspec +2 -0
- data/lib/browserify-rails/browserify_processor.rb +8 -4
- data/lib/browserify-rails/version.rb +1 -1
- data/test/compilation_test.rb +23 -8
- data/test/dummy/app/assets/javascripts/coffee.js.coffee.example +1 -0
- data/test/dummy/app/assets/javascripts/mocha.js.coffee.example +4 -0
- data/test/dummy/config/application.rb +3 -1
- data/test/dummy/package.json +2 -1
- data/test/fixtures/mocha.js +20 -0
- data/test/test_helper.rb +3 -1
- metadata +36 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a2c2135417c9ff3fde1f33690d28a0e864063fac
|
4
|
+
data.tar.gz: 12f3ee03a61deba05417f0de2d7cf5dae7712500
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cb63140be9731fc9dba6ef7e59913d9304904f6db7b41593d136a07693c27a890b3f8b172a096ebcef777e4d3ebbd8ec949c3cd1cea9f6f51371ce633cdeebbd
|
7
|
+
data.tar.gz: 73687ed29616ca71095e2bbb15ded54b963ea078b1faac79e2adc4045a56ca50091e897e6be831d41d615ab67a1df2426d541580061554ea744cd29c0f585426
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -16,7 +16,7 @@ It let's you mix and match `//= require` directives and `require()` calls for i
|
|
16
16
|
|
17
17
|
Add this line to your application's Gemfile:
|
18
18
|
|
19
|
-
gem "
|
19
|
+
gem "browserify-rails", "~> 0.3"
|
20
20
|
|
21
21
|
Create `package.json` in your Rails root:
|
22
22
|
|
@@ -48,11 +48,28 @@ var foo = require('./foo');
|
|
48
48
|
console.log(foo(12));
|
49
49
|
```
|
50
50
|
|
51
|
-
##
|
51
|
+
## CoffeeScript
|
52
52
|
|
53
|
-
|
54
|
-
|
55
|
-
|
53
|
+
For CoffeeScript support, make sure to follow the standard rails
|
54
|
+
`.js.coffee` naming convention. You'll also need to do the following:
|
55
|
+
|
56
|
+
Add `coffeify` as a dependency within `package.json`:
|
57
|
+
|
58
|
+
```js
|
59
|
+
{
|
60
|
+
// ...
|
61
|
+
"devDependencies" : {
|
62
|
+
// ...
|
63
|
+
"coffeeify": "~> 0.6"
|
64
|
+
}
|
65
|
+
}
|
66
|
+
```
|
67
|
+
|
68
|
+
Add the following command line options within `application.rb`:
|
69
|
+
|
70
|
+
```rb
|
71
|
+
config.browserify_rails.commandline_options = "-t coffeeify --extension=\".js.coffee\""
|
72
|
+
```
|
56
73
|
|
57
74
|
## Configuration
|
58
75
|
|
data/browserify-rails.gemspec
CHANGED
@@ -23,5 +23,7 @@ Gem::Specification.new do |spec|
|
|
23
23
|
spec.add_development_dependency "bundler", "~> 1.3"
|
24
24
|
spec.add_development_dependency "rake"
|
25
25
|
spec.add_development_dependency "rails", "~> 3.2"
|
26
|
+
spec.add_development_dependency "coffee-rails"
|
26
27
|
spec.add_development_dependency "mocha"
|
28
|
+
spec.add_development_dependency "pry"
|
27
29
|
end
|
@@ -1,5 +1,4 @@
|
|
1
1
|
require "open3"
|
2
|
-
require "json"
|
3
2
|
|
4
3
|
module BrowserifyRails
|
5
4
|
class BrowserifyProcessor < Tilt::Template
|
@@ -9,7 +8,7 @@ module BrowserifyRails
|
|
9
8
|
end
|
10
9
|
|
11
10
|
def evaluate(context, locals, &block)
|
12
|
-
if should_browserify?
|
11
|
+
if should_browserify?
|
13
12
|
asset_dependencies(context.environment.paths).each do |path|
|
14
13
|
context.depend_on(path)
|
15
14
|
end
|
@@ -23,7 +22,12 @@ module BrowserifyRails
|
|
23
22
|
private
|
24
23
|
|
25
24
|
def should_browserify?
|
26
|
-
|
25
|
+
in_path? && commonjs_module?
|
26
|
+
end
|
27
|
+
|
28
|
+
# Is this file in any of the configured paths?
|
29
|
+
def in_path?
|
30
|
+
config.paths.any? do |path_spec|
|
27
31
|
path_spec === file
|
28
32
|
end
|
29
33
|
end
|
@@ -47,7 +51,7 @@ module BrowserifyRails
|
|
47
51
|
|
48
52
|
# @return [<String>] Paths of files, that this file depends on
|
49
53
|
def dependencies
|
50
|
-
@dependencies ||= run_browserify("--list").lines.map(&:strip).select do |path|
|
54
|
+
@dependencies ||= run_browserify("#{options} --list").lines.map(&:strip).select do |path|
|
51
55
|
# Filter the temp file, where browserify caches the input stream
|
52
56
|
File.exists?(path)
|
53
57
|
end
|
data/test/compilation_test.rb
CHANGED
@@ -1,13 +1,14 @@
|
|
1
|
-
require
|
1
|
+
require "test_helper"
|
2
2
|
|
3
3
|
class BrowserifyTest < ActionController::IntegrationTest
|
4
|
-
|
5
4
|
setup do
|
6
5
|
Rails.application.assets.cache = nil
|
7
6
|
|
8
|
-
FileUtils.cp(File.join(Rails.root,
|
9
|
-
FileUtils.cp(File.join(Rails.root,
|
10
|
-
FileUtils.cp(File.join(Rails.root,
|
7
|
+
FileUtils.cp(File.join(Rails.root, "app/assets/javascripts/application.js.example"), File.join(Rails.root, "app/assets/javascripts/application.js"))
|
8
|
+
FileUtils.cp(File.join(Rails.root, "app/assets/javascripts/foo.js.example"), File.join(Rails.root, "app/assets/javascripts/foo.js"))
|
9
|
+
FileUtils.cp(File.join(Rails.root, "app/assets/javascripts/nested/index.js.example"), File.join(Rails.root, "app/assets/javascripts/nested/index.js"))
|
10
|
+
FileUtils.cp(File.join(Rails.root, "app/assets/javascripts/mocha.js.coffee.example"), File.join(Rails.root, "app/assets/javascripts/mocha.js.coffee"))
|
11
|
+
FileUtils.cp(File.join(Rails.root, "app/assets/javascripts/coffee.js.coffee.example"), File.join(Rails.root, "app/assets/javascripts/coffee.js.coffee"))
|
11
12
|
end
|
12
13
|
|
13
14
|
test "asset pipeline should serve application.js" do
|
@@ -36,7 +37,7 @@ class BrowserifyTest < ActionController::IntegrationTest
|
|
36
37
|
# Ensure that Sprockets can detect the change to the file modification time
|
37
38
|
sleep 1
|
38
39
|
|
39
|
-
File.open(File.join(Rails.root,
|
40
|
+
File.open(File.join(Rails.root, "app/assets/javascripts/foo.js"), "w+") do |f|
|
40
41
|
f.puts "require('./nested');"
|
41
42
|
f.puts "module.exports = function (n) { return n * 12 }"
|
42
43
|
end
|
@@ -58,7 +59,7 @@ class BrowserifyTest < ActionController::IntegrationTest
|
|
58
59
|
# Ensure that Sprockets can detect the change to the file modification time
|
59
60
|
sleep 1
|
60
61
|
|
61
|
-
File.open(File.join(Rails.root,
|
62
|
+
File.open(File.join(Rails.root, "app/assets/javascripts/application.js"), "w+") do |f|
|
62
63
|
f.puts "var foo = require('./foo');"
|
63
64
|
f.puts "console.log(foo(11));"
|
64
65
|
end
|
@@ -70,8 +71,22 @@ class BrowserifyTest < ActionController::IntegrationTest
|
|
70
71
|
assert_equal expected_output, @response.body.strip
|
71
72
|
end
|
72
73
|
|
74
|
+
test "browserifies coffee files after they have been compiled to JS" do
|
75
|
+
expected_output = fixture("mocha.js")
|
76
|
+
|
77
|
+
get "/assets/mocha.js"
|
78
|
+
|
79
|
+
assert_response :success
|
80
|
+
assert_equal expected_output, @response.body.strip
|
81
|
+
end
|
82
|
+
|
83
|
+
test "browserifies files with coffee requires" do
|
84
|
+
get "/assets/coffee.js"
|
85
|
+
assert_no_match /BrowserifyRails::BrowserifyError/, @response.body
|
86
|
+
end
|
87
|
+
|
73
88
|
test "throws BrowserifyError if something went wrong while executing browserify" do
|
74
|
-
File.open(File.join(Rails.root,
|
89
|
+
File.open(File.join(Rails.root, "app/assets/javascripts/application.js"), "w+") do |f|
|
75
90
|
f.puts "var foo = require('./foo');"
|
76
91
|
f.puts "var bar = require('./bar');"
|
77
92
|
end
|
@@ -0,0 +1 @@
|
|
1
|
+
require("./mocha")
|
data/test/dummy/package.json
CHANGED
@@ -0,0 +1,20 @@
|
|
1
|
+
(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
|
2
|
+
(function() {
|
3
|
+
var f, hello;
|
4
|
+
|
5
|
+
f = require("./foo");
|
6
|
+
|
7
|
+
hello = function() {
|
8
|
+
return alert("Hello browserify " + (f(5)));
|
9
|
+
};
|
10
|
+
|
11
|
+
}).call(this);
|
12
|
+
|
13
|
+
},{"./foo":2}],2:[function(require,module,exports){
|
14
|
+
require('./nested');
|
15
|
+
module.exports = function (n) { return n * 11 }
|
16
|
+
|
17
|
+
},{"./nested":3}],3:[function(require,module,exports){
|
18
|
+
module.exports.NESTED = true;
|
19
|
+
|
20
|
+
},{}]},{},[1])
|
data/test/test_helper.rb
CHANGED
@@ -15,6 +15,8 @@ FileUtils.rm_rf "#{File.dirname(__FILE__)}/dummy/tmp"
|
|
15
15
|
|
16
16
|
ActiveSupport::TestCase.class_eval do
|
17
17
|
def fixture(filename)
|
18
|
-
File.open(File.join(File.dirname(__FILE__), "
|
18
|
+
File.open(File.join(File.dirname(__FILE__), "fixtures", filename)) do |f|
|
19
|
+
f.read.strip
|
20
|
+
end
|
19
21
|
end
|
20
22
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: browserify-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Henry Hsu
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-06-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sprockets
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '3.2'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: coffee-rails
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: mocha
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -80,6 +94,20 @@ dependencies:
|
|
80
94
|
- - ">="
|
81
95
|
- !ruby/object:Gem::Version
|
82
96
|
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: pry
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
83
111
|
description: Browserify + Rails = CommonJS Heaven
|
84
112
|
email:
|
85
113
|
- hhsu@zendesk.com
|
@@ -104,7 +132,9 @@ files:
|
|
104
132
|
- test/compilation_test.rb
|
105
133
|
- test/dummy/Rakefile
|
106
134
|
- test/dummy/app/assets/javascripts/application.js.example
|
135
|
+
- test/dummy/app/assets/javascripts/coffee.js.coffee.example
|
107
136
|
- test/dummy/app/assets/javascripts/foo.js.example
|
137
|
+
- test/dummy/app/assets/javascripts/mocha.js.coffee.example
|
108
138
|
- test/dummy/app/assets/javascripts/nested/index.js.example
|
109
139
|
- test/dummy/app/assets/stylesheets/application.css
|
110
140
|
- test/dummy/app/controllers/application_controller.rb
|
@@ -142,6 +172,7 @@ files:
|
|
142
172
|
- test/fixtures/application.out.js
|
143
173
|
- test/fixtures/empty_module.js
|
144
174
|
- test/fixtures/foo.out.js
|
175
|
+
- test/fixtures/mocha.js
|
145
176
|
- test/test_helper.rb
|
146
177
|
homepage: ''
|
147
178
|
licenses:
|
@@ -172,7 +203,9 @@ test_files:
|
|
172
203
|
- test/compilation_test.rb
|
173
204
|
- test/dummy/Rakefile
|
174
205
|
- test/dummy/app/assets/javascripts/application.js.example
|
206
|
+
- test/dummy/app/assets/javascripts/coffee.js.coffee.example
|
175
207
|
- test/dummy/app/assets/javascripts/foo.js.example
|
208
|
+
- test/dummy/app/assets/javascripts/mocha.js.coffee.example
|
176
209
|
- test/dummy/app/assets/javascripts/nested/index.js.example
|
177
210
|
- test/dummy/app/assets/stylesheets/application.css
|
178
211
|
- test/dummy/app/controllers/application_controller.rb
|
@@ -210,4 +243,5 @@ test_files:
|
|
210
243
|
- test/fixtures/application.out.js
|
211
244
|
- test/fixtures/empty_module.js
|
212
245
|
- test/fixtures/foo.out.js
|
246
|
+
- test/fixtures/mocha.js
|
213
247
|
- test/test_helper.rb
|