requirejs-rails 0.9.4 → 0.9.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4f6ce0c99c3151a689f1d8c371b6381c38b3e1c6
4
- data.tar.gz: f21378b56bb3b4b5424237fa3a685e267bf80b1e
3
+ metadata.gz: 5e6e1a6b4dcfccf6349e7b4f3f45a21725f3f0b9
4
+ data.tar.gz: 759a8ae32987c747490a3644fdb1f5ff0dd4032d
5
5
  SHA512:
6
- metadata.gz: a913d4acffffc68b62b5489fe2edd1b3eec89eae4642444924aeaeff67c505cbb8c0462f724f05f6cab88fafd3ec165762796aba649b315343e09aff95ae5a2a
7
- data.tar.gz: ef34cd90ff78e3920b02c6125eb74105a50555b64b555a7c086a302b435b6d914cdb473d0cbbe88714a8ce113b00e300e979732c826f521420df50a6a4e0aeb0
6
+ metadata.gz: de28293e70d15e53b87a18c46dc3272f874e583edae8e8da4cbece14fd63fd942ccacc80a65311e14d5690bfaf436cabd7a00b88d9e1fcee44a3fc0a4db1bc77
7
+ data.tar.gz: a160056a3264a6a3630a73d6f0fa4b57f963e622135b7b1464b77fe1310217d9166e5bca56097030e964628fd5d653ab9b5457ece2dea9c432b58140f928fbd8
@@ -1,53 +1,63 @@
1
- <!--
2
- Marked Style: GitHub
3
- -->
4
- # v0.9.4
1
+ <!-- Marked Style: GitHub -->
2
+
3
+ ## requirejs-rails changelog
4
+
5
+ ### v0.9.5
6
+
7
+ - Update `require.js` and `r.js` to `2.1.15`, and `almond.js` to `0.3.0`.
8
+ - Remove `data-main` attribute generation from `requirejs_include_tag` and replicate its functionality with an explicit
9
+ `require` call. This paves the way for proper almond support.
10
+ - Instead of disabling JS compression everywhere, only do so when staging `r.js` input files. This enables `require.js`
11
+ itself to be compiled (or not) by the asset pipeline, like any other asset.
12
+ - Add support for `bower.json` modules.
13
+
14
+ ### v0.9.4
5
15
 
6
16
  - Restore compression of non-module JS assets if specified, including `require.js` itself.
7
17
  - Update `require.js` to `2.1.14`.
8
18
 
9
- # v0.9.3
19
+ ### v0.9.3
10
20
 
11
21
  - Add detection and proper handling of Bower-based modules.
12
22
  - Update `require.js` to `2.1.11` and `almond.js` to `0.2.9`.
13
23
 
14
- # v0.9.2
24
+ ### v0.9.2
15
25
 
16
26
  - Update `require.js` to `2.1.10` and `almond.js` to `0.2.5`.
17
27
  - Rails 4 support.
18
28
 
19
- # v0.9.1
29
+ ### v0.9.1
20
30
 
21
31
  - Updated to to require.js \ r.js 2.1.2, and almond 0.2.3
22
32
 
23
- # v0.9.0
33
+ ### v0.9.0
24
34
 
25
35
  - **BREAKING CHANGE**: Upgrade RequireJS and r.js to v2.0.0
26
36
  - order.js was removed. See the new [RequireJS 2.0 shim config](https://github.com/jrburke/requirejs/wiki/Upgrading-to-RequireJS-2.0#wiki-shim).
27
37
  - Build support for `empty:` is now handled by r.js 2.0 natively.
28
38
 
29
- # v0.8.2
39
+ ### v0.8.2
30
40
 
31
41
  - Fix for `requirejs_include_tag` error when `config/requirejs.yml` has no
32
42
  `paths` key. Thanks to @JustinLove for the issue and failing test!
33
43
 
34
- # v0.8.0
44
+ ### v0.8.0
35
45
 
36
46
  - Build will now substitute `empty:` for the right-hand side of
37
47
  `config/requirejs.yml` paths entries that are URLs.
38
48
  - Documented how to configure assets hosted on a CDN.
39
49
 
40
- # v0.7.3
50
+ ### v0.7.3
41
51
 
42
52
  - Upgrade RequireJS and r.js to v1.0.8
43
53
 
44
- # v0.7.2
54
+ ### v0.7.2
45
55
 
46
56
  - Add require.js to config.assets.precompile in all environments. Closes #45.
47
57
  This change allows builds to work in Rails environments other than
48
58
  'production', e.g. 'staging'. Thanks to @hollow for the fix.
49
59
 
50
- # v0.7.1
60
+ ### v0.7.1
51
61
 
52
62
  - Liberalize asset path filtering. `0.7.0` added filtering on the logical
53
63
  asset path which was too aggressive in that only `.js` files were allowed in
@@ -55,7 +65,7 @@ Marked Style: GitHub
55
65
  added, which allows `.js`, `.html`, `.txt` files by default and is user
56
66
  configurable.
57
67
 
58
- # v0.7.0
68
+ ### v0.7.0
59
69
 
60
70
  - Support for [almond](https://github.com/jrburke/almond) via
61
71
  `config.requirejs.loader = :almond` in application.rb.
@@ -66,11 +76,11 @@ Marked Style: GitHub
66
76
  leverage the asset pipeline for their needs. Thanks to @hollow for the
67
77
  patch.
68
78
 
69
- # v0.6.1
79
+ ### v0.6.1
70
80
 
71
81
  - Fix regression in production env when `paths` specified in requirejs.yml.
72
82
 
73
- # v0.6.0
83
+ ### v0.6.0
74
84
 
75
85
  **NOTE:** Upgrade to 0.6.1! This was yanked due to a regression.
76
86
 
@@ -80,30 +90,30 @@ Marked Style: GitHub
80
90
  tag via `requirejs_include_tag`. See [README](README.md) for details. Closes
81
91
  pull request #32; thanks to @hollow for the submission!
82
92
 
83
- # v0.5.6
93
+ ### v0.5.6
84
94
 
85
95
  - Upgrade to RequireJS and r.js 1.0.7
86
96
 
87
- # v0.5.5
97
+ ### v0.5.5
88
98
 
89
99
  - Support for Rails 3.2.x. Rails 3.1.x is also supported by this release.
90
100
 
91
- # v0.5.4
101
+ ### v0.5.4
92
102
 
93
103
  - Upgrade to RequireJS and r.js 1.0.5
94
104
  - Pull request #31, closes #30. Thanks @karelim!
95
105
 
96
- # v0.5.3
106
+ ### v0.5.3
97
107
 
98
108
  - Upgrade to RequireJS and r.js 1.0.4
99
109
  - Pulled #22, fix for asset compliation failure with no config/requirejs.yml.
100
110
  Thanks @arehberg!
101
111
 
102
- # v0.5.2
112
+ ### v0.5.2
103
113
 
104
114
  - Upgrade to RequireJS and r.js 1.0.3
105
115
 
106
- # v0.5.1
116
+ ### v0.5.1
107
117
 
108
118
  - This is a quick turn to fix an issue that could trigger an Anonymous mismatched define() error from require.js and/or r.js.
109
119
 
@@ -121,21 +131,20 @@ Marked Style: GitHub
121
131
 
122
132
  Thanks to Andrew de Andrade for the catch.
123
133
 
124
- # v0.5.0
134
+ ### v0.5.0
125
135
 
126
136
  - Precompilation via `rake assets:precompile` is now implemented.
127
137
  - gem configuration via application.js is deprecated.
128
138
  - Application-specific require.js configuration lives in `config/requirejs.yml`.
129
139
  - See [README](README.md) for updated usage details.
130
140
 
131
- # v0.0.2
141
+ ### v0.0.2
132
142
 
133
143
  - Fixed stupid problems with Rails::Engine instantiation.
134
144
  - Test improvements
135
145
  - Upgrade to RequireJS 1.0.2
136
146
 
137
- # v0.0.1
147
+ ### v0.0.1
138
148
 
139
149
  - Birthday!
140
150
  - This gem makes `require.js` and the `order.js` plugin available to the Rails 3 Asset Pipeline.
141
-
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- requirejs-rails (0.9.4)
4
+ requirejs-rails (0.9.5)
5
5
  railties (>= 3.1.1)
6
6
 
7
7
  GEM
@@ -7,36 +7,27 @@ module RequirejsHelper
7
7
  mattr_accessor :_priority
8
8
  @@_priority = []
9
9
 
10
- def _requirejs_data(name, &block)
11
- {}.tap do |data|
12
- if name
13
- name += ".js" unless name =~ /\.js$/
14
- data['main'] = _javascript_path(name) \
15
- .sub(/\.js$/, '') \
16
- .sub(base_url(name), '') \
17
- .sub(/\A\//, '')
18
- end
19
-
20
- data.merge!(yield controller) if block_given?
21
- end.map do |k, v|
22
- %Q{data-#{k}="#{v}"}
23
- end.join(" ")
24
- end
25
-
26
10
  def requirejs_include_tag(name=nil, &block)
27
11
  requirejs = Rails.application.config.requirejs
28
12
 
29
13
  if requirejs.loader == :almond
30
14
  name = requirejs.module_name_for(requirejs.build_config['modules'][0])
31
- return _almond_include_tag(name, &block)
15
+ return almond_include_tag(name, &block)
32
16
  end
33
17
 
34
18
  html = ""
35
19
 
36
- _once_guard do
37
- html.concat <<-HTML
38
- <script #{_requirejs_data(name, &block)} src="#{_javascript_path 'require.js'}"></script>
39
- HTML
20
+ once_guard do
21
+ rjs_attributes = {
22
+ src: javascript_path("require")
23
+ }
24
+
25
+ rjs_attributes = rjs_attributes.merge(Hash[block.call(controller).map do |key, value|
26
+ ["data-#{key}", value]
27
+ end]) \
28
+ if block
29
+
30
+ html.concat(content_tag(:script, "", rjs_attributes))
40
31
 
41
32
  unless requirejs.run_config.empty?
42
33
  run_config = requirejs.run_config.dup
@@ -52,11 +43,13 @@ module RequirejsHelper
52
43
 
53
44
  # Generate digestified paths from the modules spec
54
45
  paths = {}
55
- modules.each { |m| paths[m] = _javascript_path(m).sub /\.js$/, '' }
46
+ modules.each { |m| paths[m] = javascript_path(m).sub /\.js$/, '' }
56
47
 
57
48
  if run_config.has_key? 'paths'
58
49
  # Add paths for assets specified by full URL (on a CDN)
59
- run_config['paths'].each { |k, v| paths[k] = v if v =~ /^https?:/ }
50
+ run_config['paths'].each do |k, v|
51
+ paths[k] = v if v.is_a?(Array) || v =~ /^https?:/
52
+ end
60
53
  end
61
54
 
62
55
  # Override user paths, whose mappings are only relevant in dev mode
@@ -65,16 +58,34 @@ module RequirejsHelper
65
58
  end
66
59
 
67
60
  run_config['baseUrl'] = base_url(name)
68
- html.concat <<-HTML
69
- <script>require.config(#{run_config.to_json});</script>
70
- HTML
61
+
62
+ html.concat(content_tag(:script) do
63
+ script = "require.config(#{run_config.to_json});"
64
+
65
+ # Pass an array to `require`, since it's a top-level module about to be loaded asynchronously (see
66
+ # `http://requirejs.org/docs/errors.html#notloaded`).
67
+ script.concat(" require([#{name.dump}]);") \
68
+ if name
69
+
70
+ script.html_safe
71
+ end)
71
72
  end
72
73
 
73
74
  html.html_safe
74
75
  end
75
76
  end
76
77
 
77
- def _once_guard
78
+ def javascript_path(name)
79
+ if defined?(super)
80
+ super
81
+ else
82
+ "/assets/#{name}"
83
+ end
84
+ end
85
+
86
+ private
87
+
88
+ def once_guard
78
89
  if defined?(controller) && controller.requirejs_included
79
90
  raise Requirejs::MultipleIncludeError, "Only one requirejs_include_tag allowed per page."
80
91
  end
@@ -85,16 +96,8 @@ module RequirejsHelper
85
96
  retval
86
97
  end
87
98
 
88
- def _almond_include_tag(name, &block)
89
- "<script src='#{_javascript_path name}'></script>\n".html_safe
90
- end
91
-
92
- def _javascript_path(name)
93
- if defined?(javascript_path)
94
- javascript_path(name)
95
- else
96
- "/assets/#{name}"
97
- end
99
+ def almond_include_tag(name, &block)
100
+ content_tag(:script, "", src: javascript_path(name))
98
101
  end
99
102
 
100
103
  def base_url(js_asset)
data/bin/r.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license r.js 2.1.14 Copyright (c) 2010-2014, The Dojo Foundation All Rights Reserved.
2
+ * @license r.js 2.1.15 Copyright (c) 2010-2014, The Dojo Foundation All Rights Reserved.
3
3
  * Available via the MIT or new BSD license.
4
4
  * see: http://github.com/jrburke/requirejs for details
5
5
  */
@@ -20,7 +20,7 @@ var requirejs, require, define, xpcUtil;
20
20
  (function (console, args, readFileFunc) {
21
21
  var fileName, env, fs, vm, path, exec, rhinoContext, dir, nodeRequire,
22
22
  nodeDefine, exists, reqMain, loadedOptimizedLib, existsForNode, Cc, Ci,
23
- version = '2.1.14',
23
+ version = '2.1.15',
24
24
  jsSuffixRegExp = /\.js$/,
25
25
  commandOption = '',
26
26
  useLibLoaded = {},
@@ -238,7 +238,7 @@ var requirejs, require, define, xpcUtil;
238
238
  }
239
239
 
240
240
  /** vim: et:ts=4:sw=4:sts=4
241
- * @license RequireJS 2.1.14 Copyright (c) 2010-2014, The Dojo Foundation All Rights Reserved.
241
+ * @license RequireJS 2.1.15 Copyright (c) 2010-2014, The Dojo Foundation All Rights Reserved.
242
242
  * Available via the MIT or new BSD license.
243
243
  * see: http://github.com/jrburke/requirejs for details
244
244
  */
@@ -251,7 +251,7 @@ var requirejs, require, define, xpcUtil;
251
251
  (function (global) {
252
252
  var req, s, head, baseElement, dataMain, src,
253
253
  interactiveScript, currentlyAddingScript, mainScript, subPath,
254
- version = '2.1.14',
254
+ version = '2.1.15',
255
255
  commentRegExp = /(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg,
256
256
  cjsRequireRegExp = /[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,
257
257
  jsSuffixRegExp = /\.js$/,
@@ -22949,7 +22949,7 @@ define('parse', ['./esprimaAdapter', 'lang'], function (esprima, lang) {
22949
22949
  //Like traverse, but skips if branches that would not be processed
22950
22950
  //after has application that results in tests of true or false boolean
22951
22951
  //literal values.
22952
- var key, child, result, i, params, param,
22952
+ var key, child, result, i, params, param, tempObject,
22953
22953
  hasHas = options && options.has;
22954
22954
 
22955
22955
  fnExpScope = fnExpScope || emptyScope;
@@ -22979,23 +22979,23 @@ define('parse', ['./esprimaAdapter', 'lang'], function (esprima, lang) {
22979
22979
 
22980
22980
  //Build up a "scope" object that informs nested recurse calls if
22981
22981
  //the define call references an identifier that is likely a UMD
22982
- //wrapped function expresion argument.
22982
+ //wrapped function expression argument.
22983
22983
  if (object.type === 'ExpressionStatement' && object.expression &&
22984
22984
  object.expression.type === 'CallExpression' && object.expression.callee &&
22985
22985
  object.expression.callee.type === 'FunctionExpression') {
22986
- object = object.expression.callee;
22987
-
22988
- if (object.params && object.params.length) {
22989
- params = object.params;
22990
- fnExpScope = mixin({}, fnExpScope, true);
22991
- for (i = 0; i < params.length; i++) {
22992
- param = params[i];
22993
- if (param.type === 'Identifier') {
22994
- fnExpScope[param.name] = true;
22995
- }
22986
+ tempObject = object.expression.callee;
22987
+
22988
+ if (tempObject.params && tempObject.params.length) {
22989
+ params = tempObject.params;
22990
+ fnExpScope = mixin({}, fnExpScope, true);
22991
+ for (i = 0; i < params.length; i++) {
22992
+ param = params[i];
22993
+ if (param.type === 'Identifier') {
22994
+ fnExpScope[param.name] = true;
22996
22995
  }
22997
22996
  }
22998
22997
  }
22998
+ }
22999
22999
 
23000
23000
  for (key in object) {
23001
23001
  if (object.hasOwnProperty(key)) {
@@ -23014,12 +23014,12 @@ define('parse', ['./esprimaAdapter', 'lang'], function (esprima, lang) {
23014
23014
  //wrapping.
23015
23015
  if (typeof result === 'string') {
23016
23016
  if (hasProp(fnExpScope, result)) {
23017
- //Just a plain return, parsing can continue past this
23018
- //point.
23019
- return;
23017
+ //result still in scope, keep jumping out indicating the
23018
+ //identifier still in use.
23019
+ return result;
23020
23020
  }
23021
23021
 
23022
- return result;
23022
+ return;
23023
23023
  }
23024
23024
  }
23025
23025
  };
@@ -26539,7 +26539,8 @@ define('build', function (require) {
26539
26539
  "excludeShallow": true,
26540
26540
  "insertRequire": true,
26541
26541
  "stubModules": true,
26542
- "deps": true
26542
+ "deps": true,
26543
+ "mainConfigFile": true
26543
26544
  };
26544
26545
 
26545
26546
  for (i = 0; i < ary.length; i++) {
@@ -21,14 +21,20 @@ module Requirejs
21
21
  config.assets.precompile += config.requirejs.precompile
22
22
 
23
23
  # Check for the `requirejs:precompile:all` top-level Rake task and run the following initialization code.
24
- Rake.application.top_level_tasks.each do |task_name|
25
- case task_name
26
- when "requirejs:precompile:all"
27
- # Enable class reloading so that Sprockets doesn't freeze the assets environment. This allows settings
28
- # for JS compression to be changes on a per-file basis.
29
- config.cache_classes = false
24
+ if defined?(Rake.application) && Rake.application.top_level_tasks == ["requirejs:precompile:all"]
25
+ # Prevent Sprockets from freezing the assets environment, which allows JS compression to be toggled on a per-
26
+ # file basis. This trick *will* fail if any of the lines linked to below change.
27
+
28
+ if ::Rails::VERSION::MAJOR >= 4
29
+ # For Rails 4 (see
30
+ # `https://github.com/rails/sprockets-rails/blob/v2.1.2/lib/sprockets/railtie.rb#L119-121`).
31
+ config.cache_classes = false
32
+ else
33
+ # For Rails 3 (see
34
+ # `https://github.com/rails/rails/blob/v3.2.19/actionpack/lib/sprockets/bootstrap.rb#L32-34`).
35
+ config.assets.digest = false
30
36
  end
31
- end if defined?(Rake.application)
37
+ end
32
38
 
33
39
  manifest_directory = config.assets.manifest || File.join(::Rails.public_path, config.assets.prefix)
34
40
  manifest_path = File.join(manifest_directory, "rjs_manifest.yml")
@@ -44,7 +50,7 @@ module Requirejs
44
50
  end
45
51
  end
46
52
 
47
- if ::Rails::VERSION::STRING >= "4.0.0"
53
+ if ::Rails::VERSION::MAJOR >= 4
48
54
  config.after_initialize do |app|
49
55
  config = app.config
50
56
  rails_manifest_path = File.join(app.root, 'public', config.assets.prefix)
@@ -5,11 +5,9 @@ cdn_pattern = Regexp.new("\\Ahttps?://")
5
5
  modifiedHash = build_config.select { |k, _| k != "modules" }
6
6
  pathsHash = modifiedHash["paths"]
7
7
  modifiedHash["dir"] = build_dir.to_s
8
- modifiedHash["paths"] = Hash[pathsHash
9
- .select do |_, v|
10
- !v.is_a?(Array)
11
- end.map do |k, v|
12
- [k, if !cdn_pattern.match(v) then v else "empty:" end]
8
+ modifiedHash["paths"] = Hash[
9
+ pathsHash.map do |k, v|
10
+ [k, v.is_a?(Array) || cdn_pattern.match(v) ? "empty:" : v]
13
11
  end
14
12
  ] if !pathsHash.nil?
15
13
 
@@ -1,6 +1,6 @@
1
1
  module Requirejs
2
2
  module Rails
3
- Version = "0.9.4"
4
- LibVersion = "2.1.14"
3
+ Version = "0.9.5"
4
+ LibVersion = "2.1.15"
5
5
  end
6
6
  end
@@ -9,7 +9,7 @@ class RequirejsRailsTest < ActiveSupport::TestCase
9
9
  assert_kind_of Module, Requirejs::Rails
10
10
  assert_kind_of Class, Requirejs::Rails::Engine
11
11
  end
12
-
12
+
13
13
  test "require.js version" do
14
14
  require_js = Pathname.new(__FILE__+'/../../vendor/assets/javascripts/require.js').cleanpath.read
15
15
  context = ExecJS.compile(require_js)
@@ -51,13 +51,13 @@ class RequirejsRailsConfigTest < ActiveSupport::TestCase
51
51
 
52
52
  test "user_config should reject baseUrl" do
53
53
  exc = assert_raises Requirejs::ConfigError do
54
- @cfg.user_config = { 'baseUrl' => '/frobnitz' }
54
+ @cfg.user_config = {'baseUrl' => '/frobnitz'}
55
55
  end
56
56
  assert_match /baseUrl is not needed/, exc.message
57
57
  end
58
58
 
59
59
  test "run_config should inherit user_config settings" do
60
- @cfg.user_config = { 'paths' => { 'jquery' => 'lib/jquery-1.7.2.min' } }
60
+ @cfg.user_config = {'paths' => {'jquery' => 'lib/jquery-1.7.2.min'}}
61
61
  refute_nil @cfg.run_config['paths']
62
62
  assert_kind_of Hash, @cfg.run_config['paths']
63
63
  assert_equal 'lib/jquery-1.7.2.min', @cfg.run_config['paths']['jquery']
@@ -69,32 +69,32 @@ class RequirejsRailsConfigTest < ActiveSupport::TestCase
69
69
  end
70
70
 
71
71
  test "build_config should inherit user_config settings" do
72
- @cfg.user_config = { 'paths' => { 'jquery' => 'lib/jquery-1.7.2.min' } }
72
+ @cfg.user_config = {'paths' => {'jquery' => 'lib/jquery-1.7.2.min'}}
73
73
  refute_nil @cfg.build_config['paths']
74
74
  assert_kind_of Hash, @cfg.build_config['paths']
75
75
  assert_equal 'lib/jquery-1.7.2.min', @cfg.build_config['paths']['jquery']
76
76
  end
77
77
 
78
78
  test "run_config should reject irrelevant settings" do
79
- @cfg.user_config = { 'optimize' => 'none' }
80
- assert_nil @cfg.run_config['optimize']
79
+ @cfg.user_config = {'optimize' => 'none'}
80
+ assert_nil @cfg.run_config['optimize']
81
81
  end
82
82
 
83
83
  test "build_config should reject irrelevant settings" do
84
- @cfg.user_config = { 'priority' => %w{ foo bar baz } }
85
- assert_nil @cfg.build_config['priority']
84
+ @cfg.user_config = {'priority' => %w{ foo bar baz }}
85
+ assert_nil @cfg.build_config['priority']
86
86
  end
87
87
 
88
88
  ## Almond tests
89
89
  test "build_config with almond should accept one module" do
90
90
  @cfg.loader = :almond
91
- @cfg.user_config = { 'modules' => [ { 'name' => 'foo' } ] }
91
+ @cfg.user_config = {'modules' => [{'name' => 'foo'}]}
92
92
  assert_match 'almond', @cfg.build_config['modules'][0]['name']
93
93
  end
94
94
 
95
95
  test "build_config with almond must reject more than one module" do
96
96
  @cfg.loader = :almond
97
- @cfg.user_config = { 'modules' => [ { 'name' => 'foo' }, { 'name' => 'bar' } ] }
97
+ @cfg.user_config = {'modules' => [{'name' => 'foo'}, {'name' => 'bar'}]}
98
98
  exc = assert_raises Requirejs::ConfigError do
99
99
  @cfg.build_config
100
100
  end
@@ -103,7 +103,6 @@ class RequirejsRailsConfigTest < ActiveSupport::TestCase
103
103
  end
104
104
 
105
105
  class RequirejsHelperTest < ActionView::TestCase
106
-
107
106
  def setup
108
107
  controller.requirejs_included = false
109
108
  Rails.application.config.requirejs.user_config = {}
@@ -112,49 +111,61 @@ class RequirejsHelperTest < ActionView::TestCase
112
111
  end
113
112
 
114
113
  def with_cdn
115
- Rails.application.config.requirejs.user_config = { 'paths' =>
116
- { 'jquery' => 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js' }
114
+ Rails.application.config.requirejs.user_config = {
115
+ "paths" => {
116
+ "jquery" => "http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"
117
+ }
117
118
  }
118
119
  end
119
-
120
+
120
121
  def wrap(tag)
121
122
  "<html><head>#{tag}</head></html>"
122
123
  end
123
-
124
+
124
125
  test "requirejs_include_tag" do
125
- render :text => wrap(requirejs_include_tag)
126
- assert_select "script:first-of-type", :text => /var require =/
127
- assert_select "script:last-of-type[src^=/javascripts/require.js]", :count => 1
126
+ render text: wrap(requirejs_include_tag)
127
+
128
+ assert_select "script:first-of-type[src=\"/javascripts/require.js\"]", count: 1
129
+ assert_select "script:last-of-type", text: "require.config({\"baseUrl\":\"/assets\"});"
128
130
  end
129
-
131
+
130
132
  test "requirejs_include_tag_with_param" do
131
- render :text => wrap(requirejs_include_tag("application"))
132
- assert_select "script:last-of-type[src^=/javascripts/require.js][data-main^=javascripts/application]", :count => 1
133
+ render text: wrap(requirejs_include_tag("application"))
134
+
135
+ assert_select "script:first-of-type[src=\"/javascripts/require.js\"]", count: 1
133
136
  end
134
-
137
+
135
138
  test "requirejs_include_tag_with_block" do
136
- test_block = Proc.new do |controller|
137
- { 'class' => controller.class.to_s.demodulize }
138
- end
139
+ render text: wrap(requirejs_include_tag("application") do
140
+ {"class" => controller.class.name.demodulize}
141
+ end)
139
142
 
140
- render :text => wrap(requirejs_include_tag("application", &test_block))
141
- assert_select "script:last-of-type[src^=/javascripts/require.js][data-main^=javascripts/application]", :count => 1
142
- assert_select "script:last-of-type[src^=/javascripts/require.js][data-class^=TestController]", :count => 1
143
+ assert_select "script:first-of-type[src=\"/javascripts/require.js\"]" \
144
+ "[data-class=\"TestController\"]", count: 1
143
145
  end
144
146
 
145
147
  test "requirejs_include_tag can appear only once" do
146
148
  assert_raises Requirejs::MultipleIncludeError do
147
- render :text => "#{requirejs_include_tag}\n#{requirejs_include_tag}"
149
+ requirejs_include_tag
150
+ requirejs_include_tag
148
151
  end
149
152
  end
150
153
 
151
- test "requirejs_include_tag with digested asset paths" do
154
+ test "requirejs_include_tag with digestified asset paths" do
152
155
  begin
156
+ Rails.application.config.requirejs.user_config = {
157
+ "modules" => [
158
+ {"name" => "foo"}
159
+ ]
160
+ }
161
+
153
162
  saved_digest = Rails.application.config.assets.digest
154
163
  Rails.application.config.assets.digest = true
155
- Rails.application.config.requirejs.user_config = { 'modules' => [{'name' => 'foo'}] }
156
- render :text => wrap(requirejs_include_tag)
157
- assert_select "script:first-of-type", :text => %r[var require =.*"paths":{"foo":"/javascripts/foo"}]
164
+
165
+ render text: wrap(requirejs_include_tag)
166
+
167
+ assert_select "script:last-of-type",
168
+ text: Regexp.new("\\Arequire\\.config\\({.*\"paths\":{.*\"foo\":\"/javascripts/foo\".*}.*}\\);\\z")
158
169
  ensure
159
170
  Rails.application.config.assets.digest = saved_digest
160
171
  end
@@ -162,17 +173,24 @@ class RequirejsHelperTest < ActionView::TestCase
162
173
 
163
174
  test "requirejs_include_tag with CDN asset in paths" do
164
175
  with_cdn
165
- render :text => wrap(requirejs_include_tag)
166
- assert_select "script:first-of-type", :text => %r{var require =.*paths.*http://ajax}
176
+
177
+ render text: wrap(requirejs_include_tag)
178
+
179
+ assert_select "script:last-of-type",
180
+ text: Regexp.new("\\Arequire\\.config\\({.*\"paths\":{.*\"http://ajax\\..*\".*}.*}\\);\\z")
167
181
  end
168
182
 
169
- test "requirejs_include_tag with CDN asset and digested asset paths" do
183
+ test "requirejs_include_tag with CDN asset and digestified asset paths" do
170
184
  begin
171
185
  with_cdn
186
+
172
187
  saved_digest = Rails.application.config.assets.digest
173
188
  Rails.application.config.assets.digest = true
174
- render :text => wrap(requirejs_include_tag)
175
- assert_select "script:first-of-type", :text => %r{var require =.*paths.*http://ajax}
189
+
190
+ render text: wrap(requirejs_include_tag)
191
+
192
+ assert_select "script:last-of-type",
193
+ text: Regexp.new("\\Arequire\\.config\\({.*\"paths\":{.*\"http://ajax\\..*\".*}.*}\\);\\z")
176
194
  ensure
177
195
  Rails.application.config.assets.digest = saved_digest
178
196
  end
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license almond 0.2.9 Copyright (c) 2011-2014, The Dojo Foundation All Rights Reserved.
2
+ * @license almond 0.3.0 Copyright (c) 2011-2014, The Dojo Foundation All Rights Reserved.
3
3
  * Available via the MIT or new BSD license.
4
4
  * see: http://github.com/jrburke/almond for details
5
5
  */
@@ -150,7 +150,15 @@ var requirejs, require, define;
150
150
  //A version of a require function that passes a moduleName
151
151
  //value for items that may need to
152
152
  //look up paths relative to the moduleName
153
- return req.apply(undef, aps.call(arguments, 0).concat([relName, forceSync]));
153
+ var args = aps.call(arguments, 0);
154
+
155
+ //If first arg is not require('string'), and there is only
156
+ //one arg, it is the array form without a callback. Insert
157
+ //a null so that the following concat is correct.
158
+ if (typeof args[0] !== 'string' && args.length === 1) {
159
+ args.push(null);
160
+ }
161
+ return req.apply(undef, args.concat([relName, forceSync]));
154
162
  };
155
163
  }
156
164
 
@@ -1,5 +1,5 @@
1
1
  /** vim: et:ts=4:sw=4:sts=4
2
- * @license RequireJS 2.1.14 Copyright (c) 2010-2014, The Dojo Foundation All Rights Reserved.
2
+ * @license RequireJS 2.1.15 Copyright (c) 2010-2014, The Dojo Foundation All Rights Reserved.
3
3
  * Available via the MIT or new BSD license.
4
4
  * see: http://github.com/jrburke/requirejs for details
5
5
  */
@@ -12,7 +12,7 @@ var requirejs, require, define;
12
12
  (function (global) {
13
13
  var req, s, head, baseElement, dataMain, src,
14
14
  interactiveScript, currentlyAddingScript, mainScript, subPath,
15
- version = '2.1.14',
15
+ version = '2.1.15',
16
16
  commentRegExp = /(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg,
17
17
  cjsRequireRegExp = /[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,
18
18
  jsSuffixRegExp = /\.js$/,
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: requirejs-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.4
4
+ version: 0.9.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Whitley
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-13 00:00:00.000000000 Z
11
+ date: 2014-09-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties