browserify-rails 0.3.1 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,15 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: a2c2135417c9ff3fde1f33690d28a0e864063fac
4
- data.tar.gz: 12f3ee03a61deba05417f0de2d7cf5dae7712500
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ MzQ3ZTNjN2UxMGQ3NzE2MzBkNGMzOTExNDZhN2NmMTY0ZDM0ZTQ2OQ==
5
+ data.tar.gz: !binary |-
6
+ MWI0YWIwN2I0YzQxZmZlMGI2MGU1NzE2OWQzMjk2YjkyNTExOGNmNg==
5
7
  SHA512:
6
- metadata.gz: cb63140be9731fc9dba6ef7e59913d9304904f6db7b41593d136a07693c27a890b3f8b172a096ebcef777e4d3ebbd8ec949c3cd1cea9f6f51371ce633cdeebbd
7
- data.tar.gz: 73687ed29616ca71095e2bbb15ded54b963ea078b1faac79e2adc4045a56ca50091e897e6be831d41d615ab67a1df2426d541580061554ea744cd29c0f585426
8
+ metadata.gz: !binary |-
9
+ MjE2Y2FmOGY1ZTg3ODIyZGY4YTQyYWNhNzI3YWQ1NzAyNTAyODZiZjIyZGJm
10
+ NGRjNGY5N2Q4YWFiZjJiYWQ2MWFiODYxOThjNjkyMDZlYzAxYmVhYjcxZTRj
11
+ YmExZGUxMjM1MzJkYTYwYTJjYzcyM2Y1ZTA1OWVmODM4NWE1OTc=
12
+ data.tar.gz: !binary |-
13
+ M2E2OWM5NTVlZDY0YWVmZjkyODU1NTRjMWFjZDg1YjllNjhkNTc1ZTViYWJi
14
+ MTM3MjhkYjUyYjhlZmIxMGE1ZmNlNjQ5ODhlODg0NzBjYjQyNjA5M2E2N2Qw
15
+ YjYxZWIwYjg2ZTA4ZjMyNDI0MTkzNjE0MmE3ZDIzNjYwZTA5OTQ=
data/.gitignore CHANGED
@@ -25,3 +25,4 @@ tmp
25
25
  test/dummy/app/assets/javascripts/*.js
26
26
  test/dummy/app/assets/javascripts/**/*.js
27
27
  test/dummy/app/assets/javascripts/**/*.js.coffee
28
+ /.ruby-*
data/README.md CHANGED
@@ -1,6 +1,5 @@
1
1
  # browserify-rails
2
-
3
- [![Build Status](https://travis-ci.org/hsume2/browserify-rails.png?branch=master)](https://travis-ci.org/hsume2/browserify-rails)
2
+ [![Build Status](https://travis-ci.org/browserify-rails/browserify-rails.svg?branch=master)](https://travis-ci.org/browserify-rails/browserify-rails)
4
3
 
5
4
  This library adds CommonJS module support to Sprockets (via Browserify).
6
5
 
@@ -11,12 +10,14 @@ It let's you mix and match `//= require` directives and `require()` calls for i
11
10
  3. Require modules with `require()` (without separate `//= require` directives)
12
11
  4. Only build required modules
13
12
  5. Require *npm modules* in your Rails assets
13
+ 6. Require modules relative to asset paths (ie app/assets/javascript) with non-relative syntax (see below before using)
14
+ 7. Configure browserify options for each JavaScript file so you can mark modules with `--require`, `--external`, etc
14
15
 
15
16
  ## Getting Started
16
17
 
17
18
  Add this line to your application's Gemfile:
18
19
 
19
- gem "browserify-rails", "~> 0.3"
20
+ gem "browserify-rails", "~> 0.4"
20
21
 
21
22
  Create `package.json` in your Rails root:
22
23
 
@@ -71,8 +72,14 @@ Add the following command line options within `application.rb`:
71
72
  config.browserify_rails.commandline_options = "-t coffeeify --extension=\".js.coffee\""
72
73
  ```
73
74
 
75
+ ## Requirements
76
+
77
+ * node-browserify 4.x
78
+
74
79
  ## Configuration
75
80
 
81
+ ### Global configuration
82
+
76
83
  You can configure different options of browserify-rails by adding one of lines
77
84
  mentioned below into your `config/application.rb` or your environment file
78
85
  (`config/environments/*.rb`):
@@ -102,9 +109,87 @@ class My::Application < Rails::Application
102
109
  config.browserify_rails.commandline_options = "-t browserify-shim --fast"
103
110
  ```
104
111
 
112
+ ### Multiple bundles
113
+
114
+ node-browserify supports [multiple bundles](https://github.com/substack/node-browserify#multiple-bundles)
115
+ and so do does rails-browserify. It does this using `config/browserify.yml`.
116
+ Below is an example.
117
+
118
+ Say you have three JavaScript files and one is a huge library you would like to
119
+ use in both. Browserify lets you mark that huge library with --require in one
120
+ file (to both bundle it and mark it with a special internal ID) and then
121
+ require it in the other file and mark it with --external (so it is not bundled
122
+ into the file but instead accessed via browserify internals using that special
123
+ ID). Note that this only works when the file that has the library bundled is
124
+ loaded before the file that uses the library with --external.
125
+
126
+ ```yaml
127
+ javascript:
128
+ main:
129
+ require:
130
+ - a_huge_library
131
+ secondary:
132
+ external:
133
+ - a_huge_library
134
+ ```
135
+
136
+ Note that any valid browserify option is allowed in the YAML file but not
137
+ use cases have been considered. If your use case does not work, please open
138
+ an issue with a runnable example of the problem including your
139
+ browserify.yml file.
140
+
141
+ ## Support for rails asset directories as non-relative module sources
142
+
143
+ In the Rails asset pipeline, it is common to have files in
144
+ `app/assets/javascripts` and being able to do `//= require some_file` which
145
+ exists in one of the asset/javascript directories. In some cases, it is
146
+ useful to have similar functionality with browserify. This has been added
147
+ by putting the Rails asset paths into NODE_PATH environment variable when
148
+ running browserify.
149
+
150
+ But this comes at a large cost: right now, it appears to break source maps.
151
+ This might be a bug or a fixable breakage but it hasn't been solved yet. The
152
+ use of NODE_PATH is also contentious in the NodeJS community.
153
+
154
+ Why leave it in? Because some typical Rails components break without it.
155
+ For example, jasmine-rails expects to be able to move JavaScript to
156
+ different depths. So if you do a relative require from spec/javascript to
157
+ app/assets/javascripts, your tests will fail to run when RAILS_ENV=test.
158
+
159
+ So if you really need this, use it. But if you really need it for files that
160
+ are not tests, you should definitely figure out an alternative. Support
161
+ for this may go away if we cannot fix the issue(s) with source maps being
162
+ invalid.
163
+
164
+ ## Troubleshooting
165
+
166
+ ### Clear the asset pipeline cache
167
+
168
+ The Rails asset pipeline caches some files in the `tmp` directory off of
169
+ Rails root. It can happen that sometimes the cache does not get invalidated
170
+ correctly. You can manually clear the cache in at least two ways:
171
+
172
+ 1. `rake tmp:cache:clear`
173
+ 2. `rm -rf ./tmp` (when in the root directory of the Rails project)
174
+
175
+ The second method is definitely brute force but if you experience issues,
176
+ it is definitely worth trying before spending too much time debugging
177
+ why something that is browserified appears to not match the sources files.
178
+
105
179
  ## Contributing
106
180
 
107
- Pull requests appreciated.
181
+ Pull requests appreciated. Pull requests will not be rejected based on
182
+ ideological neurosis of either the NodeJS or the Ruby on Rails communities.
183
+ In other words, technical needs are respected.
184
+
185
+ ## Potential areas of change (contributions welcome)
186
+
187
+ ### Multiple modules
188
+
189
+ Often one has one main module (say a library module) and other modules that
190
+ consume the main module. It would be nice to be able to establish this
191
+ relationship in the YAML file to avoid having to manually manage the require
192
+ and external entries for the involved modules.
108
193
 
109
194
  ## Contributors
110
195
 
@@ -112,3 +197,4 @@ Pull requests appreciated.
112
197
  * [Cássio Souza](https://github.com/cassiozen)
113
198
  * [Marten Lienen](https://github.com/CQQL)
114
199
  * [Lukasz Sagol](https://github.com/zgryw)
200
+ * [Cymen Vig](https://github.com/cymen)
@@ -6,11 +6,11 @@ require 'browserify-rails/version'
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = "browserify-rails"
8
8
  spec.version = BrowserifyRails::VERSION
9
- spec.authors = ["Henry Hsu"]
10
- spec.email = ["hhsu@zendesk.com"]
9
+ spec.authors = ["Henry Hsu, Cymen Vig"]
10
+ spec.email = ["hhsu@zendesk.com, cymenvig@gmail.com"]
11
11
  spec.description = %q{Browserify + Rails = CommonJS Heaven}
12
12
  spec.summary = %q{Get the best of both worlds: Browserify + Rails = CommonJS Heaven}
13
- spec.homepage = ""
13
+ spec.homepage = "https://github.com/browserify-rails/browserify-rails"
14
14
  spec.license = "MIT"
15
15
 
16
16
  spec.files = `git ls-files`.split($/)
@@ -2,6 +2,7 @@ require "sprockets"
2
2
 
3
3
  require "browserify-rails/browserify_error"
4
4
  require "browserify-rails/browserify_processor"
5
+ require "browserify-rails/browserify_logger"
5
6
  require "browserify-rails/railtie"
6
7
  require "browserify-rails/version"
7
8
 
@@ -0,0 +1,10 @@
1
+ module BrowserifyRails::Logger
2
+ def self.log(message)
3
+ Rails.logger.debug message
4
+ puts "\n#{message}\n\n" if in_dummy_rails?
5
+ end
6
+
7
+ def self.in_dummy_rails?
8
+ @in_dummy_rails ||= !!Rails.root.to_s.match(/browserify-rails\/test\/dummy$/)
9
+ end
10
+ end
@@ -5,6 +5,7 @@ module BrowserifyRails
5
5
  BROWSERIFY_CMD = "./node_modules/.bin/browserify".freeze
6
6
 
7
7
  def prepare
8
+ @config = Rails.application.config.browserify_rails_granular
8
9
  end
9
10
 
10
11
  def evaluate(context, locals, &block)
@@ -13,7 +14,7 @@ module BrowserifyRails
13
14
  context.depend_on(path)
14
15
  end
15
16
 
16
- browserify
17
+ browserify context.logical_path
17
18
  else
18
19
  data
19
20
  end
@@ -21,6 +22,18 @@ module BrowserifyRails
21
22
 
22
23
  private
23
24
 
25
+ def asset_paths
26
+ @asset_paths ||= Rails.application.config.assets.paths.collect { |p| p.to_s }.join(":") || ""
27
+ end
28
+
29
+ def has_config?(logical_path)
30
+ @config.has_key?("javascript") && @config["javascript"].has_key?(logical_path)
31
+ end
32
+
33
+ def get_config(logical_path)
34
+ @config["javascript"][logical_path] if @config.has_key?("javascript")
35
+ end
36
+
24
37
  def should_browserify?
25
38
  in_path? && commonjs_module?
26
39
  end
@@ -57,8 +70,8 @@ module BrowserifyRails
57
70
  end
58
71
  end
59
72
 
60
- def browserify
61
- run_browserify(options)
73
+ def browserify(logical_path)
74
+ run_browserify(options, logical_path)
62
75
  end
63
76
 
64
77
  def browserify_cmd
@@ -83,11 +96,24 @@ module BrowserifyRails
83
96
  # @raise [BrowserifyRails::BrowserifyError] if browserify does not succeed
84
97
  # @param options [String] Options for browserify
85
98
  # @return [String] Output on standard out
86
- def run_browserify(options)
87
- # The dash tells browserify to read from STDIN
88
- command = "#{browserify_cmd} #{options} -"
99
+ def run_browserify(options, logical_path=nil)
100
+ if has_config?(logical_path)
101
+ config = get_config logical_path
102
+
103
+ granular_options = config.keys.collect do |key|
104
+ config[key].collect { |value| "--#{key} #{value}" }
105
+ end
106
+
107
+ options += " " + granular_options.join(" ")
108
+ end
109
+
89
110
  directory = File.dirname(file)
90
- stdout, stderr, status = Open3.capture3(command, stdin_data: data, chdir: directory)
111
+ command = "#{browserify_cmd} #{options} -"
112
+ Logger::log "Browserify: #{command}"
113
+ env = {
114
+ "NODE_PATH" => asset_paths
115
+ }
116
+ stdout, stderr, status = Open3.capture3(env, command, stdin_data: data, chdir: directory)
91
117
 
92
118
  if !status.success?
93
119
  raise BrowserifyRails::BrowserifyError.new("Error while running `#{command}`:\n\n#{stderr}")
@@ -10,6 +10,11 @@ module BrowserifyRails
10
10
  config.browserify_rails.source_map_environments = ["development"]
11
11
 
12
12
  initializer :setup_browserify do |app|
13
+ # Load granular configuration
14
+ filename = File.join(Rails.root, 'config', 'browserify.yml')
15
+ configuration = YAML::load(File.read(filename)) if File.exist? filename
16
+ config.browserify_rails_granular = configuration || {}
17
+
13
18
  app.assets.register_postprocessor "application/javascript", BrowserifyRails::BrowserifyProcessor
14
19
  end
15
20
 
@@ -1,3 +1,3 @@
1
1
  module BrowserifyRails
2
- VERSION = "0.3.1"
2
+ VERSION = "0.4.1"
3
3
  end
@@ -1,14 +1,26 @@
1
1
  require "test_helper"
2
2
 
3
3
  class BrowserifyTest < ActionController::IntegrationTest
4
+ def copy_example_file(filename)
5
+ example_file = File.join(Rails.root, "app/assets/javascripts/#{filename}")
6
+ new_file = File.join(Rails.root, "app/assets/javascripts/#{filename.gsub(/\.example$/, '')}")
7
+
8
+ FileUtils.cp(example_file, new_file)
9
+ end
10
+
4
11
  setup do
5
12
  Rails.application.assets.cache = nil
6
13
 
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"))
14
+ copy_example_file "application.js.example"
15
+ copy_example_file "foo.js.example"
16
+ copy_example_file "nested/index.js.example"
17
+ copy_example_file "mocha.js.coffee.example"
18
+ copy_example_file "coffee.js.coffee.example"
19
+ copy_example_file "node_path_based_require.js.example"
20
+ copy_example_file "main.js.example"
21
+ copy_example_file "secondary.js.example"
22
+ copy_example_file "a_huge_library.js.example"
23
+ copy_example_file "some_folder/answer.js.example"
12
24
  end
13
25
 
14
26
  test "asset pipeline should serve application.js" do
@@ -85,6 +97,36 @@ class BrowserifyTest < ActionController::IntegrationTest
85
97
  assert_no_match /BrowserifyRails::BrowserifyError/, @response.body
86
98
  end
87
99
 
100
+ test "uses NODE_PATH so files can be required non-relatively" do
101
+ expected_output = fixture("node_path_based_require.out.js")
102
+
103
+ get "/assets/node_path_based_require.js"
104
+
105
+ assert_response :success
106
+ assert_equal expected_output, @response.body.strip
107
+ assert_equal false, @response.body.include?("Error: Cannot find module 'some_folder/answer'")
108
+ end
109
+
110
+ test "uses config/browserify.yml to mark a module as globally available via --require" do
111
+ expected_output = fixture("main.out.js")
112
+
113
+ get "/assets/main.js"
114
+
115
+ assert_response :success
116
+ assert_equal expected_output, @response.body.strip
117
+ assert_equal true, @response.body.include?("ReMerY") # browserify internal global id for a_huge_library.js module
118
+ end
119
+
120
+ test "uses config/browserify.yml for browserification options" do
121
+ expected_output = fixture("secondary.out.js")
122
+
123
+ get "/assets/secondary.js"
124
+
125
+ assert_response :success
126
+ assert_equal expected_output, @response.body.strip
127
+ assert_equal true, @response.body.include?("ReMerY") # browserify internal global id for a_huge_library.js module
128
+ end
129
+
88
130
  test "throws BrowserifyError if something went wrong while executing browserify" do
89
131
  File.open(File.join(Rails.root, "app/assets/javascripts/application.js"), "w+") do |f|
90
132
  f.puts "var foo = require('./foo');"
@@ -0,0 +1,14 @@
1
+ // pretend this file is 1 MB
2
+ //
3
+ // app_main.js is going to require() it and browserify.yml is going to tell it to use --require on it
4
+ //
5
+ // app_secondary.js is going to require() it too but we know app_main.js is always going to be loaded
6
+ // so browserify.yml will be configured to mark it as --external so it is not bundled in
7
+ //
8
+ // this results in app_main.js taking the cost of loading app_a_huge_library.js
9
+ //
10
+ // and app_secondary.js saving the cost of loading app_a_huge_library.js (because again,
11
+ // we know a priori that something else has loaded it)
12
+
13
+
14
+ module.exports = "THIS IS A HUGE LIBRARY";
@@ -0,0 +1,14 @@
1
+ // pretend this file is 1 MB
2
+ //
3
+ // app_main.js is going to require() it and browserify.yml is going to tell it to use --require on it
4
+ //
5
+ // app_secondary.js is going to require() it too but we know app_main.js is always going to be loaded
6
+ // so browserify.yml will be configured to mark it as --external so it is not bundled in
7
+ //
8
+ // this results in app_main.js taking the cost of loading app_a_huge_library.js
9
+ //
10
+ // and app_secondary.js saving the cost of loading app_a_huge_library.js (because again,
11
+ // we know a priori that something else has loaded it)
12
+
13
+
14
+ module.exports = "THIS IS A HUGE LIBRARY";
@@ -0,0 +1,5 @@
1
+ var library = require('./app_a_huge_library');
2
+
3
+ module.exports = function() {
4
+ console.log('library', library);
5
+ };
@@ -0,0 +1,5 @@
1
+ var library = require('./app_a_huge_library');
2
+
3
+ module.exports = function() {
4
+ console.log('some problem', library);
5
+ };
@@ -0,0 +1,5 @@
1
+ var library = require('./a_huge_library');
2
+
3
+ module.exports = function() {
4
+ console.log('library', library);
5
+ };
@@ -0,0 +1,3 @@
1
+ var answer = require('some_folder/answer');
2
+
3
+ console.log('answer', answer);
@@ -0,0 +1,3 @@
1
+ var answer = require('some_folder/answer');
2
+
3
+ console.log('answer', answer);
@@ -0,0 +1,5 @@
1
+ var library = require('./a_huge_library');
2
+
3
+ module.exports = function() {
4
+ console.log('some problem', library);
5
+ };
@@ -0,0 +1 @@
1
+ module.exports = 42;
@@ -0,0 +1,7 @@
1
+ javascript:
2
+ main:
3
+ require:
4
+ - a_huge_library
5
+ secondary:
6
+ external:
7
+ - a_huge_library
@@ -0,0 +1,26 @@
1
+ require=(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})({"a_huge_library":[function(require,module,exports){
2
+ module.exports=require('ReMerY');
3
+ },{}],"ReMerY":[function(require,module,exports){
4
+ // pretend this file is 1 MB
5
+ //
6
+ // app_main.js is going to require() it and browserify.yml is going to tell it to use --require on it
7
+ //
8
+ // app_secondary.js is going to require() it too but we know app_main.js is always going to be loaded
9
+ // so browserify.yml will be configured to mark it as --external so it is not bundled in
10
+ //
11
+ // this results in app_main.js taking the cost of loading app_a_huge_library.js
12
+ //
13
+ // and app_secondary.js saving the cost of loading app_a_huge_library.js (because again,
14
+ // we know a priori that something else has loaded it)
15
+
16
+
17
+ module.exports = "THIS IS A HUGE LIBRARY";
18
+
19
+ },{}],3:[function(require,module,exports){
20
+ var library = require('./a_huge_library');
21
+
22
+ module.exports = function() {
23
+ console.log('library', library);
24
+ };
25
+
26
+ },{"./a_huge_library":"ReMerY"}]},{},[3])
@@ -0,0 +1,9 @@
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
+ var answer = require('some_folder/answer');
3
+
4
+ console.log('answer', answer);
5
+
6
+ },{"some_folder/answer":2}],2:[function(require,module,exports){
7
+ module.exports = 42;
8
+
9
+ },{}]},{},[1])
@@ -0,0 +1,8 @@
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
+ var library = require('./a_huge_library');
3
+
4
+ module.exports = function() {
5
+ console.log('some problem', library);
6
+ };
7
+
8
+ },{"./a_huge_library":"ReMerY"}]},{},[1])
metadata CHANGED
@@ -1,122 +1,122 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: browserify-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
- - Henry Hsu
7
+ - Henry Hsu, Cymen Vig
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-10 00:00:00.000000000 Z
11
+ date: 2014-07-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sprockets
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ~>
18
18
  - !ruby/object:Gem::Version
19
19
  version: '2.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ~>
25
25
  - !ruby/object:Gem::Version
26
26
  version: '2.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ~>
32
32
  - !ruby/object:Gem::Version
33
33
  version: '1.3'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ~>
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.3'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - ! '>='
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - ! '>='
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rails
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ~>
60
60
  - !ruby/object:Gem::Version
61
61
  version: '3.2'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ~>
67
67
  - !ruby/object:Gem::Version
68
68
  version: '3.2'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: coffee-rails
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ">="
73
+ - - ! '>='
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ">="
80
+ - - ! '>='
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: mocha
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
87
+ - - ! '>='
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ">="
94
+ - - ! '>='
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: pry
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ">="
101
+ - - ! '>='
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ">="
108
+ - - ! '>='
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  description: Browserify + Rails = CommonJS Heaven
112
112
  email:
113
- - hhsu@zendesk.com
113
+ - hhsu@zendesk.com, cymenvig@gmail.com
114
114
  executables: []
115
115
  extensions: []
116
116
  extra_rdoc_files: []
117
117
  files:
118
- - ".gitignore"
119
- - ".travis.yml"
118
+ - .gitignore
119
+ - .travis.yml
120
120
  - Gemfile
121
121
  - LICENSE.txt
122
122
  - README.md
@@ -124,6 +124,7 @@ files:
124
124
  - browserify-rails.gemspec
125
125
  - lib/browserify-rails.rb
126
126
  - lib/browserify-rails/browserify_error.rb
127
+ - lib/browserify-rails/browserify_logger.rb
127
128
  - lib/browserify-rails/browserify_processor.rb
128
129
  - lib/browserify-rails/railtie.rb
129
130
  - lib/browserify-rails/tasks/npm.rake
@@ -131,11 +132,20 @@ files:
131
132
  - test/browserify_processor_test.rb
132
133
  - test/compilation_test.rb
133
134
  - test/dummy/Rakefile
135
+ - test/dummy/app/assets/javascripts/a_huge_library.js.example
136
+ - test/dummy/app/assets/javascripts/app_a_huge_library.js.example
137
+ - test/dummy/app/assets/javascripts/app_main.js.example
138
+ - test/dummy/app/assets/javascripts/app_secondary.js.example
134
139
  - test/dummy/app/assets/javascripts/application.js.example
135
140
  - test/dummy/app/assets/javascripts/coffee.js.coffee.example
136
141
  - test/dummy/app/assets/javascripts/foo.js.example
142
+ - test/dummy/app/assets/javascripts/main.js.example
137
143
  - test/dummy/app/assets/javascripts/mocha.js.coffee.example
138
144
  - test/dummy/app/assets/javascripts/nested/index.js.example
145
+ - test/dummy/app/assets/javascripts/node.js.example
146
+ - test/dummy/app/assets/javascripts/node_path_based_require.js.example
147
+ - test/dummy/app/assets/javascripts/secondary.js.example
148
+ - test/dummy/app/assets/javascripts/some_folder/answer.js.example
139
149
  - test/dummy/app/assets/stylesheets/application.css
140
150
  - test/dummy/app/controllers/application_controller.rb
141
151
  - test/dummy/app/controllers/home_controller.rb
@@ -148,6 +158,7 @@ files:
148
158
  - test/dummy/config.ru
149
159
  - test/dummy/config/application.rb
150
160
  - test/dummy/config/boot.rb
161
+ - test/dummy/config/browserify.yml
151
162
  - test/dummy/config/database.yml
152
163
  - test/dummy/config/environment.rb
153
164
  - test/dummy/config/environments/development.rb
@@ -172,9 +183,12 @@ files:
172
183
  - test/fixtures/application.out.js
173
184
  - test/fixtures/empty_module.js
174
185
  - test/fixtures/foo.out.js
186
+ - test/fixtures/main.out.js
175
187
  - test/fixtures/mocha.js
188
+ - test/fixtures/node_path_based_require.out.js
189
+ - test/fixtures/secondary.out.js
176
190
  - test/test_helper.rb
177
- homepage: ''
191
+ homepage: https://github.com/browserify-rails/browserify-rails
178
192
  licenses:
179
193
  - MIT
180
194
  metadata: {}
@@ -184,12 +198,12 @@ require_paths:
184
198
  - lib
185
199
  required_ruby_version: !ruby/object:Gem::Requirement
186
200
  requirements:
187
- - - ">="
201
+ - - ! '>='
188
202
  - !ruby/object:Gem::Version
189
203
  version: '0'
190
204
  required_rubygems_version: !ruby/object:Gem::Requirement
191
205
  requirements:
192
- - - ">="
206
+ - - ! '>='
193
207
  - !ruby/object:Gem::Version
194
208
  version: '0'
195
209
  requirements: []
@@ -197,16 +211,25 @@ rubyforge_project:
197
211
  rubygems_version: 2.2.2
198
212
  signing_key:
199
213
  specification_version: 4
200
- summary: 'Get the best of both worlds: Browserify + Rails = CommonJS Heaven'
214
+ summary: ! 'Get the best of both worlds: Browserify + Rails = CommonJS Heaven'
201
215
  test_files:
202
216
  - test/browserify_processor_test.rb
203
217
  - test/compilation_test.rb
204
218
  - test/dummy/Rakefile
219
+ - test/dummy/app/assets/javascripts/a_huge_library.js.example
220
+ - test/dummy/app/assets/javascripts/app_a_huge_library.js.example
221
+ - test/dummy/app/assets/javascripts/app_main.js.example
222
+ - test/dummy/app/assets/javascripts/app_secondary.js.example
205
223
  - test/dummy/app/assets/javascripts/application.js.example
206
224
  - test/dummy/app/assets/javascripts/coffee.js.coffee.example
207
225
  - test/dummy/app/assets/javascripts/foo.js.example
226
+ - test/dummy/app/assets/javascripts/main.js.example
208
227
  - test/dummy/app/assets/javascripts/mocha.js.coffee.example
209
228
  - test/dummy/app/assets/javascripts/nested/index.js.example
229
+ - test/dummy/app/assets/javascripts/node.js.example
230
+ - test/dummy/app/assets/javascripts/node_path_based_require.js.example
231
+ - test/dummy/app/assets/javascripts/secondary.js.example
232
+ - test/dummy/app/assets/javascripts/some_folder/answer.js.example
210
233
  - test/dummy/app/assets/stylesheets/application.css
211
234
  - test/dummy/app/controllers/application_controller.rb
212
235
  - test/dummy/app/controllers/home_controller.rb
@@ -219,6 +242,7 @@ test_files:
219
242
  - test/dummy/config.ru
220
243
  - test/dummy/config/application.rb
221
244
  - test/dummy/config/boot.rb
245
+ - test/dummy/config/browserify.yml
222
246
  - test/dummy/config/database.yml
223
247
  - test/dummy/config/environment.rb
224
248
  - test/dummy/config/environments/development.rb
@@ -243,5 +267,8 @@ test_files:
243
267
  - test/fixtures/application.out.js
244
268
  - test/fixtures/empty_module.js
245
269
  - test/fixtures/foo.out.js
270
+ - test/fixtures/main.out.js
246
271
  - test/fixtures/mocha.js
272
+ - test/fixtures/node_path_based_require.out.js
273
+ - test/fixtures/secondary.out.js
247
274
  - test/test_helper.rb