browserify-rails 0.9.3 → 1.0.0b

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7f9e37a33cb04145996240865debf9ea327d1feb
4
- data.tar.gz: bcee606ba1195f4147ee10d698063cb3d926c919
3
+ metadata.gz: 7c8103ff1e727b4eee4db86c1ae36f900e548d20
4
+ data.tar.gz: d2653f2f4c937bee245287349e9fa9f90bf03649
5
5
  SHA512:
6
- metadata.gz: aaa4a37b369a164fd6db990c0a57b1ae8e39cbaddf182f19b42551dee0a9a6b18f8acb9aeba457ef325a22c4efbb584519300cecf29ece3368fecf66f8f92128
7
- data.tar.gz: 5a198d7ea6c81f0f053c039929a88db67522c0816943701016538e7b7466485e46db96fc6ed5d69fe436c1d69fe3552d0b7973a28ad420e8e2a4056220c05b5c
6
+ metadata.gz: 3ec483f2f43910396a4540b14097cecbf698fe01234205e2154aa60782dea6778e5e4beecce3c3579ae725f9a7ae5529ce5d5bb85f666004f8c13c47d253f8ce
7
+ data.tar.gz: e966c041ea4b9eb93feeaf5ebb66ef81b81064db1f1635787d0c5f9fa50b9cb1aafeffa6648584dd0f242f826387c75f0b67b3c5c3ae86ec52e4b3d1587febfe
@@ -1,6 +1,9 @@
1
1
  # Change Log
2
2
  All notable changes to this project will be documented in this file going forward.
3
3
 
4
+ ## [1.0.0b] - 2015-06-03
5
+ - update dependencies to be compatible with sass-rails and more...
6
+
4
7
  ## [0.9.3] - 2015-06-03
5
8
  - allow parentheses in path names
6
9
  - support for piping output through Exorcist to extract sourcemaps
data/README.md CHANGED
@@ -1,7 +1,6 @@
1
1
  # browserify-rails
2
2
 
3
3
  [![Join the chat at https://gitter.im/browserify-rails/browserify-rails](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/browserify-rails/browserify-rails?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
4
- [![Build Status](https://travis-ci.org/browserify-rails/browserify-rails.svg?branch=master)](https://travis-ci.org/browserify-rails/browserify-rails)
5
4
  [![Gem Version](https://badge.fury.io/rb/browserify-rails.svg)](http://badge.fury.io/rb/browserify-rails)
6
5
 
7
6
  This library adds CommonJS module support to Sprockets (via Browserify).
@@ -18,13 +18,15 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.add_runtime_dependency "sprockets", "~> 2.2"
22
21
 
23
- spec.add_development_dependency "bundler", "~> 1.3"
22
+ spec.add_runtime_dependency "railties", ">= 4.0.0", "< 5.0"
23
+
24
+ spec.add_development_dependency "bundler", ">= 1.3"
24
25
  spec.add_development_dependency "rake"
25
- spec.add_development_dependency "rails", "~> 3.2"
26
+ spec.add_development_dependency "rails"
26
27
  spec.add_development_dependency "coffee-rails"
27
28
  spec.add_development_dependency "mocha"
28
29
  spec.add_development_dependency "pry"
29
30
  spec.add_development_dependency "test-unit"
31
+ spec.add_development_dependency "tilt"
30
32
  end
@@ -1,3 +1,4 @@
1
+ require "tilt"
1
2
  require "open3"
2
3
  require "fileutils"
3
4
  require "tempfile"
@@ -5,6 +6,13 @@ require "shellwords"
5
6
 
6
7
  module BrowserifyRails
7
8
  class BrowserifyProcessor < Tilt::Template
9
+ attr_accessor :config
10
+
11
+ def initialize(template)
12
+ self.config = Rails.application.config.browserify_rails
13
+ super(template)
14
+ end
15
+
8
16
  def prepare
9
17
  ensure_tmp_dir_exists!
10
18
  ensure_commands_exist!
@@ -24,10 +32,6 @@ module BrowserifyRails
24
32
 
25
33
  private
26
34
 
27
- def config
28
- Rails.application.config.browserify_rails
29
- end
30
-
31
35
  def tmp_path
32
36
  @tmp_path ||= Rails.root.join("tmp", "cache", "browserify-rails").freeze
33
37
  end
@@ -1,3 +1,5 @@
1
+ require "yaml"
2
+
1
3
  module BrowserifyRails
2
4
  class Railtie < Rails::Engine
3
5
  config.browserify_rails = ActiveSupport::OrderedOptions.new
@@ -1,3 +1,3 @@
1
1
  module BrowserifyRails
2
- VERSION = "0.9.3"
2
+ VERSION = "1.0.0b"
3
3
  end
@@ -1,6 +1,10 @@
1
1
  require 'test_helper'
2
2
 
3
3
  class BrowserifyProcessorTest < ActiveSupport::TestCase
4
+ def stub_engine_config(hash)
5
+ @processor.config = (@processor.config || {}).merge(hash)
6
+ end
7
+
4
8
  setup do
5
9
  template = "empty_module.js"
6
10
  @empty_module = fixture(template)
@@ -10,51 +14,55 @@ class BrowserifyProcessorTest < ActiveSupport::TestCase
10
14
  end
11
15
 
12
16
  test "should run command without options if none provided" do
13
- stub_engine_config :commandline_options, nil
17
+ stub_engine_config({commandline_options: nil})
14
18
  assert_equal "", @processor.send(:options)
15
19
  end
16
20
 
17
21
  test "should run command without options if empty array provided" do
18
- stub_engine_config :commandline_options, []
22
+ stub_engine_config({commandline_options: []})
19
23
  assert_equal "", @processor.send(:options)
20
24
  end
21
25
 
22
26
  test "should convert options provided as an array to string" do
23
- stub_engine_config :commandline_options, ["-d", "-i test1.js"]
27
+ stub_engine_config({commandline_options: ["-d", "-i test1.js"]})
24
28
  assert_equal "-d -i test1.js", @processor.send(:options)
25
29
  end
26
30
 
27
31
  test "should allow providing options as a string" do
28
- stub_engine_config :commandline_options, "-d -i test2.js"
32
+ stub_engine_config({commandline_options: "-d -i test2.js"})
29
33
 
30
34
  assert_equal "-d -i test2.js", @processor.send(:options)
31
35
  end
32
36
 
33
37
  test "should remove duplicate options when provided as an array" do
34
- stub_engine_config :commandline_options, ["-d", "-i test3.js", "-d"]
38
+ stub_engine_config({commandline_options: ["-d", "-i test3.js", "-d"]})
35
39
 
36
40
  assert_equal "-d -i test3.js", @processor.send(:options)
37
41
  end
38
42
 
39
43
  test "should allow command line options to be a function" do
40
- stub_engine_config :commandline_options, -> file { ["-d", "-i #{file}"] }
44
+ stub_engine_config({commandline_options: -> file { ["-d", "-i #{file}"] }})
41
45
  assert_equal "-d -i empty_module.js", @processor.send(:options)
42
46
  end
43
47
 
44
48
  test "should add -d option if current env is in source_maps_env list" do
45
- stub_engine_config :commandline_options, ["-i test4.js"]
46
- stub_engine_config :source_map_environments, [Rails.env]
49
+ stub_engine_config({
50
+ commandline_options: ["-i test4.js"],
51
+ source_map_environments: [Rails.env]
52
+ })
47
53
 
48
54
  assert_equal "-d -i test4.js", @processor.send(:options)
49
55
  end
50
56
 
51
57
  test "env should have NODE_ENV set to Rails.application.config.browserify_rails.node_env" do
52
58
  Rails.application.config.browserify_rails.node_env = "staging"
59
+
53
60
  assert_equal "staging", @processor.send(:env)["NODE_ENV"]
54
61
  end
55
62
 
56
63
  test "env should have NODE_ENV default to Rails.env" do
57
64
  Rails.application.config.browserify_rails.node_env = nil
65
+
58
66
  assert_equal Rails.env, @processor.send(:env)["NODE_ENV"]
59
67
  end
60
68
 
@@ -65,8 +73,4 @@ class BrowserifyProcessorTest < ActiveSupport::TestCase
65
73
  assert_equal true, node_env.include?(path)
66
74
  end
67
75
  end
68
-
69
- def stub_engine_config(key, value)
70
- @processor.send(:config).stubs(key).returns(value)
71
- end
72
76
  end
@@ -1,6 +1,6 @@
1
1
  require "test_helper"
2
2
 
3
- class BrowserifyTest < ActionController::IntegrationTest
3
+ class BrowserifyTest < ActionDispatch::IntegrationTest
4
4
  def copy_example_file(filename, path = nil)
5
5
  path ||= "app/assets/javascripts"
6
6
  example_file = File.join(Rails.root, path, filename)
@@ -54,24 +54,28 @@ class BrowserifyTest < ActionController::IntegrationTest
54
54
  Dummy::Application.config.browserify_rails.evaluate_node_modules = true
55
55
  expected_output = fixture("application.out.js")
56
56
 
57
- get "/assets/application.js"
57
+ begin
58
+ get "/assets/application.js"
58
59
 
59
- assert_response :success
60
- assert_equal expected_output, @response.body.strip
60
+ assert_response :success
61
+ assert_equal expected_output, @response.body.strip
61
62
 
62
- # Ensure that Sprockets can detect the change to the file modification time
63
- sleep 1
63
+ # Ensure that Sprockets can detect the change to the file modification time
64
+ sleep 1
64
65
 
65
- File.open(File.join(Rails.root, "node_modules/node-test-package/index.js"), "w+") do |f|
66
- f.puts 'module.exports = console.log("goodbye friend");'
67
- end
66
+ File.open(File.join(Rails.root, "node_modules/node-test-package/index.js"), "w+") do |f|
67
+ f.puts 'module.exports = console.log("goodbye friend");'
68
+ end
68
69
 
69
- expected_output = fixture("application.node_test_package_changed.out.js")
70
+ expected_output = fixture("application.node_test_package_changed.out.js")
70
71
 
71
- get "/assets/application.js"
72
+ get "/assets/application.js"
72
73
 
73
- assert_response :success
74
- assert_equal expected_output, @response.body.strip
74
+ assert_response :success
75
+ assert_equal expected_output, @response.body.strip
76
+ ensure
77
+ Dummy::Application.config.browserify_rails.evaluate_node_modules = false
78
+ end
75
79
  end
76
80
 
77
81
  test "asset pipeline should regenerate application.js when foo.js changes" do
@@ -161,9 +165,14 @@ class BrowserifyTest < ActionController::IntegrationTest
161
165
 
162
166
  test "browserify even plain files if force == true" do
163
167
  Dummy::Application.config.browserify_rails.force = true
168
+
164
169
  get "/assets/plain.js"
165
170
 
166
- assert_equal fixture("plain.out.js"), @response.body.strip
171
+ begin
172
+ assert_equal fixture("plain.out.js"), @response.body.strip
173
+ ensure
174
+ Dummy::Application.config.browserify_rails.force = false
175
+ end
167
176
  end
168
177
 
169
178
  test "uses config/browserify.yml to mark a module as globally available via --require" do
@@ -184,29 +193,42 @@ class BrowserifyTest < ActionController::IntegrationTest
184
193
  assert_equal expected_output, @response.body.strip
185
194
  end
186
195
 
187
- test "generates sourcemap and writes to file if --use-exorcist" do
188
- [:set_base_path, :default_base_path].each do |mode|
189
- processor = BrowserifyRails::BrowserifyProcessor.new { |p| fixture("plain.js") }
190
- processor.send(:config).stubs(:commandline_options).returns(["-d"])
191
- Dummy::Application.config.browserify_rails.use_exorcist = true
192
- if mode == :set_base_path
193
- Dummy::Application.config.browserify_rails.exorcist_base_path = File.join(File.dirname(File.expand_path(__FILE__))).to_s
194
- else
195
- Dummy::Application.config.browserify_rails.exorcist_base_path = nil
196
- end
197
- begin
198
- expected_output = fixture("js-with-sourcemap-url.out.js")
196
+ test "generates sourcemap and writes to file if --use-exorcist and set_base_path" do
197
+ Dummy::Application.config.browserify_rails.commandline_options = "-d"
198
+ Dummy::Application.config.browserify_rails.use_exorcist = true
199
+ Dummy::Application.config.browserify_rails.exorcist_base_path = File.join(File.dirname(File.expand_path(__FILE__))).to_s
199
200
 
200
- get "/assets/application.js"
201
+ begin
202
+ expected_output = fixture("js-with-sourcemap-url.out.js")
201
203
 
202
- assert_response :success
203
- assert_equal expected_output, @response.body.strip
204
- ensure
205
- Dummy::Application.config.browserify_rails.use_exorcist = false
206
- end
204
+ get "/assets/application.js"
205
+
206
+ assert_response :success
207
+ assert_equal expected_output, @response.body.strip
208
+ ensure
209
+ Dummy::Application.config.browserify_rails.use_exorcist = false
210
+ Dummy::Application.config.browserify_rails.commandline_options = ""
207
211
  end
208
212
  end
209
213
 
214
+ # test "generates sourcemap and writes to file if --use-exorcist and default_base_path" do
215
+ # Dummy::Application.config.browserify_rails.commandline_options = "-d"
216
+ # Dummy::Application.config.browserify_rails.use_exorcist = true
217
+ # Dummy::Application.config.browserify_rails.exorcist_base_path = nil
218
+ #
219
+ # begin
220
+ # expected_output = fixture("js-with-sourcemap-url.out.js")
221
+ #
222
+ # get "/assets/application.js"
223
+ #
224
+ # assert_response :success
225
+ # assert_equal expected_output, @response.body.strip
226
+ # ensure
227
+ # Dummy::Application.config.browserify_rails.use_exorcist = false
228
+ # Dummy::Application.config.browserify_rails.commandline_options = ""
229
+ # end
230
+ # end
231
+
210
232
  test "throws BrowserifyError if something went wrong while executing browserify" do
211
233
  File.open(File.join(Rails.root, "app/assets/javascripts/application.js"), "w+") do |f|
212
234
  f.puts "var foo = require('./foo');"
@@ -42,5 +42,7 @@ module Dummy
42
42
 
43
43
  # Add CoffeeScript support
44
44
  config.browserify_rails.commandline_options = "-t coffeeify --extension=\".js.coffee\""
45
+
46
+ config.secret_key_base = 'blistering_barnacles'
45
47
  end
46
48
  end
@@ -24,4 +24,6 @@ Dummy::Application.configure do
24
24
 
25
25
  # Do not compress assets
26
26
  config.assets.compress = false
27
+
28
+ config.eager_load = false
27
29
  end
@@ -9,7 +9,7 @@ Dummy::Application.configure do
9
9
  config.action_controller.perform_caching = true
10
10
 
11
11
  # Disable Rails's static asset server (Apache or nginx will already do this)
12
- config.serve_static_assets = false
12
+ config.serve_static_file = false
13
13
 
14
14
  # Compress JavaScripts and CSS
15
15
  config.assets.compress = true
@@ -51,4 +51,6 @@ Dummy::Application.configure do
51
51
 
52
52
  # Send deprecation notices to registered listeners
53
53
  config.active_support.deprecation = :notify
54
+
55
+ config.eager_load = false
54
56
  end
@@ -5,11 +5,10 @@ Dummy::Application.configure do
5
5
  # test suite. You never need to work with it otherwise. Remember that
6
6
  # your test database is "scratch space" for the test suite and is wiped
7
7
  # and recreated between test runs. Don't rely on the data there!
8
- config.cache_classes = true
8
+ config.cache_classes = false
9
9
 
10
10
  # Configure static asset server for tests with Cache-Control for performance
11
- config.serve_static_assets = true
12
- config.static_cache_control = "public, max-age=3600"
11
+ config.serve_static_files = false
13
12
 
14
13
  # Log error messages when you accidentally call methods on nil
15
14
  config.whiny_nils = true
@@ -36,4 +35,8 @@ Dummy::Application.configure do
36
35
 
37
36
  # Print deprecation notices to the stderr
38
37
  config.active_support.deprecation = :stderr
38
+
39
+ config.eager_load = false
40
+
41
+ config.active_support.test_order = :sorted
39
42
  end
@@ -2,6 +2,7 @@
2
2
  ENV["RAILS_ENV"] = "test"
3
3
 
4
4
  require File.expand_path("../dummy/config/environment.rb", __FILE__)
5
+ require "rails"
5
6
  require "rails/test_help"
6
7
  require "fileutils"
7
8
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: browserify-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.3
4
+ version: 1.0.0b
5
5
  platform: ruby
6
6
  authors:
7
7
  - Henry Hsu, Cymen Vig
@@ -11,31 +11,37 @@ cert_chain: []
11
11
  date: 2015-06-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: sprockets
14
+ name: railties
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 4.0.0
20
+ - - "<"
18
21
  - !ruby/object:Gem::Version
19
- version: '2.2'
22
+ version: '5.0'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - "~>"
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: 4.0.0
30
+ - - "<"
25
31
  - !ruby/object:Gem::Version
26
- version: '2.2'
32
+ version: '5.0'
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: bundler
29
35
  requirement: !ruby/object:Gem::Requirement
30
36
  requirements:
31
- - - "~>"
37
+ - - ">="
32
38
  - !ruby/object:Gem::Version
33
39
  version: '1.3'
34
40
  type: :development
35
41
  prerelease: false
36
42
  version_requirements: !ruby/object:Gem::Requirement
37
43
  requirements:
38
- - - "~>"
44
+ - - ">="
39
45
  - !ruby/object:Gem::Version
40
46
  version: '1.3'
41
47
  - !ruby/object:Gem::Dependency
@@ -56,16 +62,16 @@ dependencies:
56
62
  name: rails
57
63
  requirement: !ruby/object:Gem::Requirement
58
64
  requirements:
59
- - - "~>"
65
+ - - ">="
60
66
  - !ruby/object:Gem::Version
61
- version: '3.2'
67
+ version: '0'
62
68
  type: :development
63
69
  prerelease: false
64
70
  version_requirements: !ruby/object:Gem::Requirement
65
71
  requirements:
66
- - - "~>"
72
+ - - ">="
67
73
  - !ruby/object:Gem::Version
68
- version: '3.2'
74
+ version: '0'
69
75
  - !ruby/object:Gem::Dependency
70
76
  name: coffee-rails
71
77
  requirement: !ruby/object:Gem::Requirement
@@ -122,6 +128,20 @@ dependencies:
122
128
  - - ">="
123
129
  - !ruby/object:Gem::Version
124
130
  version: '0'
131
+ - !ruby/object:Gem::Dependency
132
+ name: tilt
133
+ requirement: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - ">="
136
+ - !ruby/object:Gem::Version
137
+ version: '0'
138
+ type: :development
139
+ prerelease: false
140
+ version_requirements: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - ">="
143
+ - !ruby/object:Gem::Version
144
+ version: '0'
125
145
  description: Browserify + Rails = CommonJS Heaven
126
146
  email:
127
147
  - hhsu@zendesk.com, cymenvig@gmail.com
@@ -130,7 +150,6 @@ extensions: []
130
150
  extra_rdoc_files: []
131
151
  files:
132
152
  - ".gitignore"
133
- - ".travis.yml"
134
153
  - CHANGELOG.md
135
154
  - Gemfile
136
155
  - LICENSE.txt
@@ -226,9 +245,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
226
245
  version: '0'
227
246
  required_rubygems_version: !ruby/object:Gem::Requirement
228
247
  requirements:
229
- - - ">="
248
+ - - ">"
230
249
  - !ruby/object:Gem::Version
231
- version: '0'
250
+ version: 1.3.1
232
251
  requirements: []
233
252
  rubyforge_project:
234
253
  rubygems_version: 2.4.5
@@ -1 +0,0 @@
1
- language: ruby