requirejs-rails 0.9.6 → 0.9.8

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: 492050b5ccb2552d21298f462a44623ab109ab30
4
- data.tar.gz: a1151c9fd7f11dbae4dbcc3ef741984370374cd5
3
+ metadata.gz: 215e666fcb80a992bf5aab5f0204e8758caf9fd5
4
+ data.tar.gz: a0cc4708683e1133a861904043e0021778782e63
5
5
  SHA512:
6
- metadata.gz: 685e71f5c4fe66604d6a783ff6a4c7882b7890e573c04bd9ad680a9e4c812c52a35f1273554a5209ef903e56fa581bbf58f15a25693da6d4fd035b8d3e196067
7
- data.tar.gz: d4496398fce37c514fd05e4e97ee165b17c1a246118e7d6565bbd91e79c686c63bcbc440566c93b4e25f964942b142540b8e491906ae1d901209000518fc87e8
6
+ metadata.gz: c40c97f588521948cf3142518d752094bd94f07acab7f4945a05c932427ae2c5cf7bb9fcafa8d8222a8d72a3466ff7305b705c7a84672a8585800a7cc6677443
7
+ data.tar.gz: 9fb4030834836dfb4a31b25090f884ac904c42a79fe39c88d75af77b1350b722096db894377a0569b2d5d6f63801877b1730ae328f6daedfcab5832be51fe319
@@ -2,6 +2,16 @@
2
2
 
3
3
  ## requirejs-rails changelog
4
4
 
5
+ ### v0.9.8
6
+
7
+ - Fix a bad regression and yank v0.9.7.
8
+
9
+ ### v0.9.7
10
+
11
+ - Fix a corner case where modules could appear in the build config's `paths`.
12
+ - Fix regressions introduced in v0.9.6.
13
+ - Allow protocol relative urls for CDNs in the build config's `paths` (credit @remybach).
14
+
5
15
  ### v0.9.6
6
16
 
7
17
  - Update `require.js` and `r.js` to `2.1.17`, and `almond.js` to `0.3.1`.
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- requirejs-rails (0.9.6)
4
+ requirejs-rails (0.9.7)
5
5
  railties (>= 3.1.1)
6
6
 
7
7
  GEM
@@ -49,7 +49,8 @@ module RequirejsHelper
49
49
  if run_config.has_key? 'paths'
50
50
  # Add paths for assets specified by full URL (on a CDN)
51
51
  run_config['paths'].each do |k, v|
52
- paths[k] = v if v.is_a?(Array) || v =~ /^https?:/
52
+ paths[k] = v if v.is_a?(Array) || v =~ /^(https?:)?\/\//
53
+
53
54
  end
54
55
  end
55
56
 
@@ -158,12 +158,6 @@ module Requirejs
158
158
  def get_binding
159
159
  return binding()
160
160
  end
161
-
162
- def asset_allowed?(logical_path)
163
- logical_path_patterns.reduce(false) do |accum, pattern|
164
- accum || !!(pattern.match(logical_path))
165
- end
166
- end
167
161
  end
168
162
  end
169
163
  end
@@ -1,6 +1,6 @@
1
1
  module Requirejs
2
2
  module Rails
3
- Version = "0.9.6"
3
+ Version = "0.9.8"
4
4
  LibVersion = "2.1.17"
5
5
  end
6
6
  end
@@ -2,8 +2,13 @@ module Requirejs
2
2
  module Rails
3
3
  class ViewProxy
4
4
  include ActionView::Context
5
- include ActionView::Helpers::AssetUrlHelper
6
- include ActionView::Helpers::TagHelper
5
+
6
+ if ::Rails::VERSION::MAJOR >= 4
7
+ include ActionView::Helpers::AssetUrlHelper
8
+ include ActionView::Helpers::TagHelper
9
+ else
10
+ include ActionView::Helpers::AssetTagHelper
11
+ end
7
12
  end
8
13
  end
9
14
  end
@@ -98,12 +98,7 @@ OS X Homebrew users can use 'brew install node'.
98
98
  original_cache = requirejs.env.cache
99
99
  requirejs.env.cache = nil
100
100
 
101
- js_ext = requirejs.env.mime_types["application/javascript"][:extensions].first
102
-
103
- requirejs.env.logical_paths do |logical_path, physical_path|
104
- next \
105
- if !requirejs.config.asset_allowed?(logical_path)
106
-
101
+ requirejs.env.each_logical_path(requirejs.config.logical_path_patterns) do |logical_path|
107
102
  m = ::Requirejs::Rails::Config::BOWER_PATH_PATTERN.match(logical_path)
108
103
 
109
104
  if !m
@@ -115,7 +110,7 @@ OS X Homebrew users can use 'brew install node'.
115
110
  asset.write_to(file)
116
111
  end
117
112
  else
118
- bower_logical_path = Pathname.new(logical_path).dirname.sub_ext(js_ext).to_s
113
+ bower_logical_path = Pathname.new(logical_path).dirname.sub_ext(".js").to_s
119
114
  asset = requirejs.env.find_asset(bower_logical_path)
120
115
 
121
116
  if asset
@@ -150,8 +145,17 @@ OS X Homebrew users can use 'brew install node'.
150
145
  # Copy each built asset, identified by a named module in the
151
146
  # build config, to its Sprockets digestified name.
152
147
  task digestify_and_compress: ["requirejs:setup"] do
153
- requirejs.config.build_config['modules'].each do |m|
154
- asset_name = "#{requirejs.config.module_name_for(m)}.js"
148
+ requirejs.config.build_config["modules"].each do |m|
149
+ module_name = requirejs.config.module_name_for(m)
150
+ paths = requirejs.config.build_config["paths"] || {}
151
+
152
+ # Is there a `paths` entry for the module?
153
+ if !paths[module_name]
154
+ asset_name = Pathname.new(module_name).sub_ext(".js").to_s
155
+ else
156
+ asset_name = Pathname.new(paths[module_name]).sub_ext(".js").to_s
157
+ end
158
+
155
159
  asset = requirejs.env.find_asset(asset_name)
156
160
 
157
161
  built_asset_path = requirejs.config.build_dir.join(asset_name)
@@ -27,6 +27,12 @@ class RequirejsRailsConfigTest < ActiveSupport::TestCase
27
27
  @cfg = Requirejs::Rails::Config.new(Rails.application)
28
28
  end
29
29
 
30
+ def asset_allowed?(asset_path)
31
+ !!@cfg.logical_path_patterns.find do |logical_path_pattern|
32
+ logical_path_pattern.match(asset_path)
33
+ end
34
+ end
35
+
30
36
  test "config accepts known loaders" do
31
37
  @cfg.loader = :almond
32
38
  assert_equal :almond, @cfg.loader
@@ -39,10 +45,10 @@ class RequirejsRailsConfigTest < ActiveSupport::TestCase
39
45
  end
40
46
 
41
47
  test "matches configured logical assets" do
42
- assert_equal true, @cfg.asset_allowed?('foo.js')
43
- assert_equal false, @cfg.asset_allowed?('bar.frobnitz')
44
- @cfg.logical_path_patterns += [/\.frobnitz$/]
45
- assert_equal true, @cfg.asset_allowed?('bar.frobnitz')
48
+ assert_equal true, asset_allowed?("foo.js")
49
+ assert_equal false, asset_allowed?("bar.frobnitz")
50
+ @cfg.logical_path_patterns.push(Regexp.new("\\.frobnitz\\z"))
51
+ assert_equal true, asset_allowed?("bar.frobnitz")
46
52
  end
47
53
 
48
54
  test "should have a default empty user_config" do
@@ -110,10 +116,10 @@ class RequirejsHelperTest < ActionView::TestCase
110
116
  Rails.application.config.requirejs.delete(:build_config)
111
117
  end
112
118
 
113
- def with_cdn
119
+ def with_cdn(protocol_relative = false)
114
120
  Rails.application.config.requirejs.user_config = {
115
121
  "paths" => {
116
- "jquery" => "http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"
122
+ "jquery" => "#{ protocol_relative ? '' : 'http:' }//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"
117
123
  }
118
124
  }
119
125
  end
@@ -199,4 +205,13 @@ class RequirejsHelperTest < ActionView::TestCase
199
205
  Rails.application.config.assets.digest = saved_digest
200
206
  end
201
207
  end
208
+
209
+ test "requirejs_include_tag with protocol relative CDN asset in paths" do
210
+ with_cdn(true)
211
+
212
+ render text: wrap(requirejs_include_tag)
213
+
214
+ assert_select "script:last-of-type",
215
+ text: Regexp.new("\\Arequire\\.config\\({.*\"paths\":{.*\"//ajax\\..*\".*}.*}\\);\\z")
216
+ end
202
217
  end
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.6
4
+ version: 0.9.8
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-04-30 00:00:00.000000000 Z
11
+ date: 2015-05-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties