requirejs-rails 0.9.9 → 1.0.0

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: 164acbc04d1af8d41a62781a38bd12a79938d8af
4
- data.tar.gz: bcd19769e40757d0d68d8d5fcd8ce9f8c0592cd0
3
+ metadata.gz: cf243419ecea137bd3b1367b1a1c37a95e772636
4
+ data.tar.gz: b7fcdceafa8ab58929c4fbd107af935b9caa16a1
5
5
  SHA512:
6
- metadata.gz: 946512c5a0e1b7e3c7c53ab9d5881e47f2f3ed73617d8a7205ff5f5cca644b3e5c12d55027d6213b6d1fce48bb0d2217a0705fbba662f8443ec1057f5a33bc53
7
- data.tar.gz: 3b6f1499207ecdbbf413f621c6b8fbeabea3a327fd3db4d49d092927a87cd022fb5d715c0c0d7d8ff9dcd2297c8f83456bf4ece6e53e5d4161dd4c4b87f82403
6
+ metadata.gz: e4b1b41f81af5df8dd164ab4bf9f8499f6d546ec342f08915dad47d5e23fafb97b213fa309f6cf8026c07ec372ff840244b93c518d333b5580d85cda57eb5301
7
+ data.tar.gz: 91d6be4d294f6c07aa45b3a274a0c331d66acb35dd04b8e25245d3c3b9373ab9047401561f569d7e2942a064b9f0e7fe257a794d768de3f76088a0eec91d418c
data/CHANGELOG.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  ## requirejs-rails changelog
4
4
 
5
+ ### v1.0.0
6
+
7
+ - Update `require.js` and `r.js` to `2.1.22`.
8
+ - Fix a `sass-rails` `3.*.*` backwards compatibility issue (credit `@merqlove`).
9
+ - Fix a Sprockets `3.3.0` backwards compatibility issue (credit `@swils`).
10
+
5
11
  ### v0.9.9
6
12
 
7
13
  - Fix an asset digesting regression in #238 (credit @jonhyman).
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- requirejs-rails (0.9.9)
4
+ requirejs-rails (1.0.0)
5
5
  railties (>= 3.1.1)
6
6
 
7
7
  GEM
data/README.md CHANGED
@@ -134,7 +134,7 @@ This gem supports single-file builds with
134
134
  config.requirejs.loader = :almond
135
135
  ```
136
136
 
137
- Almond builds have the restriction that there must be exactly one modules entry in
137
+ Almond builds have the restriction that there must be exactly one `modules` entry in
138
138
  `requirejs.yml`. Typically the [wrap option](https://github.com/jrburke/r.js/blob/master/build/example.build.js#L275) will be used to create a self-contained build:
139
139
 
140
140
  ```yaml
@@ -2,6 +2,14 @@ require "requirejs/error"
2
2
  require "requirejs/rails/view_proxy"
3
3
 
4
4
  module RequirejsHelper
5
+ if defined?(Sass::Rails::VERSION)
6
+ sass_rails_version_pattern = Regexp.new("\\A(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\z")
7
+
8
+ SASS_RAILS_3_COMPATIBILITY = sass_rails_version_pattern.match(Sass::Rails::VERSION)[1].to_i < 4
9
+ else
10
+ SASS_RAILS_3_COMPATIBILITY = false
11
+ end
12
+
5
13
  # EXPERIMENTAL: Additional priority settings appended to
6
14
  # any user-specified priority setting by requirejs_include_tag.
7
15
  # Used for JS test suite integration.
@@ -79,7 +87,11 @@ module RequirejsHelper
79
87
 
80
88
  def javascript_path(source, options = {})
81
89
  if defined?(super)
82
- super
90
+ if !SASS_RAILS_3_COMPATIBILITY
91
+ super
92
+ else
93
+ super(source)
94
+ end
83
95
  else
84
96
  view_proxy.javascript_path(source, options)
85
97
  end
@@ -1,6 +1,6 @@
1
1
  module Requirejs
2
2
  module Rails
3
- Version = "0.9.9"
4
- LibVersion = "2.1.19"
3
+ Version = "1.0.0"
4
+ LibVersion = "2.1.22"
5
5
  end
6
6
  end
@@ -162,7 +162,7 @@ OS X Homebrew users can use 'brew install node'.
162
162
  built_asset_path = requirejs.config.build_dir.join(asset_name)
163
163
 
164
164
  # Compute the digest based on the contents of the compiled file, *not* on the contents of the RequireJS module.
165
- file_digest = ::Rails.application.assets.file_digest(built_asset_path)
165
+ file_digest = ::Rails.application.assets.file_digest(built_asset_path.to_s)
166
166
  hex_digest = Sprockets::DigestUtils.pack_hexdigest(file_digest)
167
167
  digest_name = asset.logical_path.gsub(path_extension_pattern) { |ext| "-#{hex_digest}#{ext}" }
168
168
 
@@ -1,5 +1,5 @@
1
1
  /** vim: et:ts=4:sw=4:sts=4
2
- * @license RequireJS 2.1.19 Copyright (c) 2010-2015, The Dojo Foundation All Rights Reserved.
2
+ * @license RequireJS 2.1.22 Copyright (c) 2010-2015, 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.19',
15
+ version = '2.1.22',
16
16
  commentRegExp = /(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg,
17
17
  cjsRequireRegExp = /[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,
18
18
  jsSuffixRegExp = /\.js$/,
@@ -21,7 +21,6 @@ var requirejs, require, define;
21
21
  ostring = op.toString,
22
22
  hasOwn = op.hasOwnProperty,
23
23
  ap = Array.prototype,
24
- apsp = ap.splice,
25
24
  isBrowser = !!(typeof window !== 'undefined' && typeof navigator !== 'undefined' && window.document),
26
25
  isWebWorker = !isBrowser && typeof importScripts !== 'undefined',
27
26
  //PS3 indicates loaded and complete, but need to wait for complete
@@ -554,11 +553,13 @@ var requirejs, require, define;
554
553
  function takeGlobalQueue() {
555
554
  //Push all the globalDefQueue items into the context's defQueue
556
555
  if (globalDefQueue.length) {
557
- //Array splice in the values since the context code has a
558
- //local var ref to defQueue, so cannot just reassign the one
559
- //on context.
560
- apsp.apply(defQueue,
561
- [defQueue.length, 0].concat(globalDefQueue));
556
+ each(globalDefQueue, function(queueItem) {
557
+ var id = queueItem[0];
558
+ if (typeof id === 'string') {
559
+ context.defQueueMap[id] = true;
560
+ }
561
+ defQueue.push(queueItem);
562
+ });
562
563
  globalDefQueue = [];
563
564
  }
564
565
  }
@@ -845,7 +846,10 @@ var requirejs, require, define;
845
846
  factory = this.factory;
846
847
 
847
848
  if (!this.inited) {
848
- this.fetch();
849
+ // Only fetch if not already in the defQueue.
850
+ if (!hasProp(context.defQueueMap, id)) {
851
+ this.fetch();
852
+ }
849
853
  } else if (this.error) {
850
854
  this.emit('error', this.error);
851
855
  } else if (!this.defining) {
@@ -857,21 +861,10 @@ var requirejs, require, define;
857
861
 
858
862
  if (this.depCount < 1 && !this.defined) {
859
863
  if (isFunction(factory)) {
860
- //If there is an error listener, favor passing
861
- //to that instead of throwing an error. However,
862
- //only do it for define()'d modules. require
863
- //errbacks should not be called for failures in
864
- //their callbacks (#699). However if a global
865
- //onError is set, use that.
866
- if ((this.events.error && this.map.isDefine) ||
867
- req.onError !== defaultOnError) {
868
- try {
869
- exports = context.execCb(id, factory, depExports, exports);
870
- } catch (e) {
871
- err = e;
872
- }
873
- } else {
864
+ try {
874
865
  exports = context.execCb(id, factory, depExports, exports);
866
+ } catch (e) {
867
+ err = e;
875
868
  }
876
869
 
877
870
  // Favor return value over exports. If node/cjs in play,
@@ -888,12 +881,30 @@ var requirejs, require, define;
888
881
  }
889
882
 
890
883
  if (err) {
891
- err.requireMap = this.map;
892
- err.requireModules = this.map.isDefine ? [this.map.id] : null;
893
- err.requireType = this.map.isDefine ? 'define' : 'require';
894
- return onError((this.error = err));
884
+ // If there is an error listener, favor passing
885
+ // to that instead of throwing an error. However,
886
+ // only do it for define()'d modules. require
887
+ // errbacks should not be called for failures in
888
+ // their callbacks (#699). However if a global
889
+ // onError is set, use that.
890
+ if ((this.events.error && this.map.isDefine) ||
891
+ req.onError !== defaultOnError) {
892
+ err.requireMap = this.map;
893
+ err.requireModules = this.map.isDefine ? [this.map.id] : null;
894
+ err.requireType = this.map.isDefine ? 'define' : 'require';
895
+ return onError((this.error = err));
896
+ } else if (typeof console !== 'undefined' &&
897
+ console.error) {
898
+ // Log the error for debugging. If promises could be
899
+ // used, this would be different, but making do.
900
+ console.error(err);
901
+ } else {
902
+ // Do not want to completely lose the error. While this
903
+ // will mess up processing and lead to similar results
904
+ // as bug 1440, it at least surfaces the error.
905
+ req.onError(err);
906
+ }
895
907
  }
896
-
897
908
  } else {
898
909
  //Just a literal value
899
910
  exports = factory;
@@ -905,7 +916,11 @@ var requirejs, require, define;
905
916
  defined[id] = exports;
906
917
 
907
918
  if (req.onResourceLoad) {
908
- req.onResourceLoad(context, this.map, this.depMaps);
919
+ var resLoadMaps = [];
920
+ each(this.depMaps, function (depMap) {
921
+ resLoadMaps.push(depMap.normalizedMap || depMap);
922
+ });
923
+ req.onResourceLoad(context, this.map, resLoadMaps);
909
924
  }
910
925
  }
911
926
 
@@ -964,6 +979,7 @@ var requirejs, require, define;
964
979
  this.map.parentMap);
965
980
  on(normalizedMap,
966
981
  'defined', bind(this, function (value) {
982
+ this.map.normalizedMap = normalizedMap;
967
983
  this.init([], function () { return value; }, null, {
968
984
  enabled: true,
969
985
  ignore: true
@@ -1244,6 +1260,7 @@ var requirejs, require, define;
1244
1260
  callGetModule(args);
1245
1261
  }
1246
1262
  }
1263
+ context.defQueueMap = {};
1247
1264
  }
1248
1265
 
1249
1266
  context = {
@@ -1253,6 +1270,7 @@ var requirejs, require, define;
1253
1270
  defined: defined,
1254
1271
  urlFetched: urlFetched,
1255
1272
  defQueue: defQueue,
1273
+ defQueueMap: {},
1256
1274
  Module: Module,
1257
1275
  makeModuleMap: makeModuleMap,
1258
1276
  nextTick: req.nextTick,
@@ -1502,6 +1520,7 @@ var requirejs, require, define;
1502
1520
  defQueue.splice(i, 1);
1503
1521
  }
1504
1522
  });
1523
+ delete context.defQueueMap[id];
1505
1524
 
1506
1525
  if (mod) {
1507
1526
  //Hold on to listeners in case the
@@ -1563,6 +1582,7 @@ var requirejs, require, define;
1563
1582
 
1564
1583
  callGetModule(args);
1565
1584
  }
1585
+ context.defQueueMap = {};
1566
1586
 
1567
1587
  //Do this after the cycle of callGetModule in case the result
1568
1588
  //of those calls/init calls changes the registry.
@@ -1698,7 +1718,21 @@ var requirejs, require, define;
1698
1718
  onScriptError: function (evt) {
1699
1719
  var data = getScriptData(evt);
1700
1720
  if (!hasPathFallback(data.id)) {
1701
- return onError(makeError('scripterror', 'Script error for: ' + data.id, evt, [data.id]));
1721
+ var parents = [];
1722
+ eachProp(registry, function(value, key) {
1723
+ if (key.indexOf('_@r') !== 0) {
1724
+ each(value.depMaps, function(depMap) {
1725
+ if (depMap.id === data.id) {
1726
+ parents.push(key);
1727
+ }
1728
+ return true;
1729
+ });
1730
+ }
1731
+ });
1732
+ return onError(makeError('scripterror', 'Script error for "' + data.id +
1733
+ (parents.length ?
1734
+ '", needed by: ' + parents.join(', ') :
1735
+ '"'), evt, [data.id]));
1702
1736
  }
1703
1737
  }
1704
1738
  };
@@ -1925,9 +1959,9 @@ var requirejs, require, define;
1925
1959
  //In a web worker, use importScripts. This is not a very
1926
1960
  //efficient use of importScripts, importScripts will block until
1927
1961
  //its script is downloaded and evaluated. However, if web workers
1928
- //are in play, the expectation that a build has been done so that
1929
- //only one script needs to be loaded anyway. This may need to be
1930
- //reevaluated if other use cases become common.
1962
+ //are in play, the expectation is that a build has been done so
1963
+ //that only one script needs to be loaded anyway. This may need
1964
+ //to be reevaluated if other use cases become common.
1931
1965
  importScripts(url);
1932
1966
 
1933
1967
  //Account for anonymous modules
@@ -2067,7 +2101,12 @@ var requirejs, require, define;
2067
2101
  //where the module name is not known until the script onload event
2068
2102
  //occurs. If no context, use the global queue, and get it processed
2069
2103
  //in the onscript load callback.
2070
- (context ? context.defQueue : globalDefQueue).push([name, deps, callback]);
2104
+ if (context) {
2105
+ context.defQueue.push([name, deps, callback]);
2106
+ context.defQueueMap[name] = true;
2107
+ } else {
2108
+ globalDefQueue.push([name, deps, callback]);
2109
+ }
2071
2110
  };
2072
2111
 
2073
2112
  define.amd = {
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.9
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Whitley
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-22 00:00:00.000000000 Z
11
+ date: 2015-12-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties