opal-sprockets 0.4.4.1.0.3.7 → 0.4.9.1.0.3.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +8 -21
- data/CHANGELOG.md +36 -0
- data/example/Gemfile +3 -2
- data/example/Gemfile.lock +16 -16
- data/lib/opal/sprockets.rb +27 -18
- data/lib/opal/sprockets/processor.rb +1 -12
- data/lib/opal/sprockets/version.rb +1 -1
- data/spec/sprockets_spec.rb +31 -11
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4219e230743e17009790fafebb6ab1ff5dc149bb1c1ef84c92818d455bd8d25f
|
4
|
+
data.tar.gz: a864f139a015e995b14013252a95734f6fb87358ce9bbf9822e53c15aa350ed9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7a9bfe6e8905b81daca542ce0013e3ba00337846fd34cf9bda3e6efd31b819bf4ee70320d66e9c55518ae5c581a54a4ad8f11e6fa2c49ed93ed3124a7d201ccc
|
7
|
+
data.tar.gz: 3b16bfcda0c2742af3f9e7155be2d07084e13af2e7045477a7f0616e25987c9e7198eb15332dea624841b539411b2aa013da713ea94d523dafca4752cb2dfc1f
|
data/.travis.yml
CHANGED
@@ -8,27 +8,14 @@ branches:
|
|
8
8
|
|
9
9
|
matrix:
|
10
10
|
include:
|
11
|
-
- rvm: 2.
|
12
|
-
env:
|
13
|
-
- rvm: 2.
|
14
|
-
env:
|
15
|
-
- rvm: 2.
|
16
|
-
env:
|
17
|
-
- rvm: 2.
|
18
|
-
env:
|
19
|
-
- rvm: 2.5.1
|
20
|
-
env: SPROCKETS_VERSION='~> 3.7.1'
|
21
|
-
|
22
|
-
- rvm: 2.1.10
|
23
|
-
env: OPAL_VERSION='~> 0.11.3' RACK_VERSION='< 2.0.0' SPROCKETS_VERSION='~> 3.4.1'
|
24
|
-
- rvm: 2.2.10
|
25
|
-
env: OPAL_VERSION='~> 0.11.3' SPROCKETS_VERSION='~> 3.5.2'
|
26
|
-
- rvm: 2.3.7
|
27
|
-
env: OPAL_VERSION='~> 0.11.3' SPROCKETS_VERSION='~> 3.6.3'
|
28
|
-
- rvm: 2.4.4
|
29
|
-
env: OPAL_VERSION='~> 0.11.3' SPROCKETS_VERSION='~> 3.7.1'
|
30
|
-
- rvm: 2.5.1
|
31
|
-
env: OPAL_VERSION='~> 0.11.3' SPROCKETS_VERSION='~> 3.7.1'
|
11
|
+
- rvm: 2.3
|
12
|
+
env: OPAL_VERSION='~> 1.0.0'
|
13
|
+
- rvm: 2.4
|
14
|
+
env: OPAL_VERSION='~> 1.0.0'
|
15
|
+
- rvm: 2.5
|
16
|
+
env: OPAL_VERSION='~> 1.0.0'
|
17
|
+
- rvm: 2.6
|
18
|
+
env: OPAL_VERSION='~> 1.0.0'
|
32
19
|
|
33
20
|
notifications:
|
34
21
|
irc: "irc.freenode.org#opal"
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,41 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## [v0.4.9](https://github.com/opal/opal-sprockets/compare/v0.4.8.1.0.3.7...v0.4.9.1.0.3.7)
|
4
|
+
|
5
|
+
*11 September 2020*
|
6
|
+
|
7
|
+
- Avoid OpalLoaded undefined when applications have no dependencies.
|
8
|
+
|
9
|
+
|
10
|
+
## [v0.4.8](https://github.com/opal/opal-sprockets/compare/v0.4.7.1.0.3.7...v0.4.8.1.0.3.7)
|
11
|
+
|
12
|
+
*14 September 2019*
|
13
|
+
|
14
|
+
- Revert the changes in 0.4.7
|
15
|
+
|
16
|
+
|
17
|
+
## [v0.4.7](https://github.com/opal/opal-sprockets/compare/v0.4.6.1.0.3.7...v0.4.7.1.0.3.7)
|
18
|
+
|
19
|
+
*14 September 2019*
|
20
|
+
|
21
|
+
- Require `opal/sprockets` before calling `Opal::Sprockets.loaded_asset`
|
22
|
+
|
23
|
+
|
24
|
+
## [v0.4.6](https://github.com/opal/opal-sprockets/compare/v0.4.5.1.0.3.7...v0.4.6.1.0.3.7)
|
25
|
+
|
26
|
+
*24 July 2019*
|
27
|
+
|
28
|
+
- Allow multiple calls to the code produced by `Opal::Sprockets.load_asset`
|
29
|
+
|
30
|
+
|
31
|
+
## [v0.4.5](https://github.com/opal/opal-sprockets/compare/v0.4.4.1.0.3.7...v0.4.5.1.0.3.7)
|
32
|
+
|
33
|
+
*25 May 2019*
|
34
|
+
|
35
|
+
- Opal is now loaded as part of the bootstrap process instead of being marked as preloaded by the processor
|
36
|
+
- Simplified code for loading-related scripts
|
37
|
+
|
38
|
+
|
3
39
|
## [v0.4.4](https://github.com/opal/opal-sprockets/compare/v0.4.3.0.11.0.3.7...v0.4.4.1.0.3.7)
|
4
40
|
|
5
41
|
*12 May 2019*
|
data/example/Gemfile
CHANGED
data/example/Gemfile.lock
CHANGED
@@ -1,22 +1,22 @@
|
|
1
|
+
PATH
|
2
|
+
remote: ..
|
3
|
+
specs:
|
4
|
+
opal-sprockets (0.4.5.1.0.3.7)
|
5
|
+
opal (~> 1.0.0)
|
6
|
+
sprockets (~> 3.7)
|
7
|
+
tilt (>= 1.4)
|
8
|
+
|
1
9
|
GEM
|
2
10
|
remote: https://rubygems.org/
|
3
11
|
specs:
|
4
12
|
ast (2.4.0)
|
5
|
-
concurrent-ruby (1.1.
|
6
|
-
|
7
|
-
opal (0.11.4)
|
13
|
+
concurrent-ruby (1.1.5)
|
14
|
+
opal (1.0.0)
|
8
15
|
ast (>= 2.3.0)
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
opal (~> 0.11.0)
|
14
|
-
sprockets (~> 3.1)
|
15
|
-
tilt (>= 1.4)
|
16
|
-
parser (2.3.3.1)
|
17
|
-
ast (~> 2.2)
|
18
|
-
rack (2.0.6)
|
19
|
-
sourcemap (0.1.1)
|
16
|
+
parser (= 2.5.3.0)
|
17
|
+
parser (2.5.3.0)
|
18
|
+
ast (~> 2.4.0)
|
19
|
+
rack (2.0.7)
|
20
20
|
sprockets (3.7.2)
|
21
21
|
concurrent-ruby (~> 1.0)
|
22
22
|
rack (> 1, < 3)
|
@@ -26,8 +26,8 @@ PLATFORMS
|
|
26
26
|
ruby
|
27
27
|
|
28
28
|
DEPENDENCIES
|
29
|
-
opal (~> 0.
|
30
|
-
opal-sprockets
|
29
|
+
opal (~> 1.0.0)
|
30
|
+
opal-sprockets!
|
31
31
|
|
32
32
|
BUNDLED WITH
|
33
33
|
1.17.3
|
data/lib/opal/sprockets.rb
CHANGED
@@ -14,31 +14,40 @@ module Opal
|
|
14
14
|
#
|
15
15
|
# @example Will output the following JavaScript:
|
16
16
|
#
|
17
|
-
#
|
18
|
-
#
|
19
|
-
# Opal.loaded("jquery.self");
|
20
|
-
# Opal.load("application");
|
21
|
-
# }
|
17
|
+
# Opal.loaded("jquery.self", "yet_another_carousel.self");
|
18
|
+
# Opal.require("opal", "application");
|
22
19
|
#
|
23
20
|
# @param name [String] The logical name of the main asset to be loaded (without extension)
|
24
21
|
#
|
25
22
|
# @return [String] JavaScript code
|
26
|
-
def self.load_asset(
|
27
|
-
if
|
28
|
-
@load_asset_warning_displayed
|
29
|
-
|
23
|
+
def self.load_asset(*names)
|
24
|
+
if names.last.is_a?(::Sprockets::Environment)
|
25
|
+
unless @load_asset_warning_displayed
|
26
|
+
@load_asset_warning_displayed = true
|
27
|
+
warn "Passing a sprockets environment to Opal::Sprockets.load_asset no more needed.\n #{caller(1, 3).join("\n ")}"
|
28
|
+
end
|
29
|
+
names.pop
|
30
30
|
end
|
31
31
|
|
32
|
-
|
33
|
-
|
32
|
+
names = names.map { |name| name.sub(/(\.(js|rb|opal))*\z/, '') }
|
33
|
+
stubbed = ::Opal::Config.stubbed_files.to_a
|
34
|
+
|
35
|
+
loaded = 'typeof(OpalLoaded) === "undefined" ? [] : OpalLoaded'
|
36
|
+
loaded = "#{stubbed.to_json}.concat(#{loaded})" if stubbed.any?
|
34
37
|
|
35
|
-
|
38
|
+
[
|
39
|
+
"Opal.loaded(#{loaded});",
|
40
|
+
*names.map { |name| "Opal.require(#{name.to_json});" }
|
41
|
+
].join("\n")
|
42
|
+
end
|
36
43
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
44
|
+
# Mark an asset as already loaded.
|
45
|
+
# This is useful for requiring JavaScript files which are not managed by Opal's laoding system.
|
46
|
+
#
|
47
|
+
# @param [String] name The "logical name" of the asset
|
48
|
+
# @return [String] JavaScript code
|
49
|
+
def self.loaded_asset(name)
|
50
|
+
%{if (typeof(OpalLoaded) === 'undefined') OpalLoaded = []; OpalLoaded.push(#{name.to_json});}
|
42
51
|
end
|
43
52
|
|
44
53
|
# Generate a `<script>` tag for Opal assets.
|
@@ -70,7 +79,7 @@ module Opal
|
|
70
79
|
scripts << %{<script src="#{prefix}/#{name}.js"></script>}
|
71
80
|
end
|
72
81
|
|
73
|
-
scripts << %{<script>#{
|
82
|
+
scripts << %{<script>#{load_asset('opal', name)}</script>}
|
74
83
|
|
75
84
|
scripts.join "\n"
|
76
85
|
end
|
@@ -32,14 +32,6 @@ module Opal
|
|
32
32
|
|
33
33
|
compiler_options = self.compiler_options.merge(file: logical_path)
|
34
34
|
|
35
|
-
# Opal will be loaded immediately to as the runtime redefines some crucial
|
36
|
-
# methods such that need to be implemented as soon as possible:
|
37
|
-
#
|
38
|
-
# E.g. It forwards .toString() to .$to_s() for Opal objects including Array.
|
39
|
-
# If .$to_s() is not implemented and some other lib is loaded before
|
40
|
-
# corelib/* .toString results in an `undefined is not a function` error.
|
41
|
-
compiler_options.merge!(requirable: false) if logical_path == 'opal'
|
42
|
-
|
43
35
|
compiler = Compiler.new(data, compiler_options)
|
44
36
|
result = compiler.compile
|
45
37
|
|
@@ -165,10 +157,7 @@ module Opal::Sprockets::Processor
|
|
165
157
|
if processed_by_opal[asset]
|
166
158
|
input[:data]
|
167
159
|
else
|
168
|
-
[
|
169
|
-
input[:data],
|
170
|
-
%{if (typeof(OpalLoaded) === 'undefined') OpalLoaded = []; OpalLoaded.push(#{input[:name].to_json});}
|
171
|
-
].join(";\n")
|
160
|
+
"#{input[:data]}\n#{Opal::Sprockets.loaded_asset(input[:name])}"
|
172
161
|
end
|
173
162
|
end
|
174
163
|
end
|
data/spec/sprockets_spec.rb
CHANGED
@@ -8,25 +8,45 @@ describe Opal::Sprockets do
|
|
8
8
|
describe '.load_asset' do
|
9
9
|
it 'loads the main asset' do
|
10
10
|
code = described_class.load_asset('console')
|
11
|
-
expect(code).to include('Opal.
|
11
|
+
expect(code).to include('Opal.require("console");')
|
12
12
|
end
|
13
13
|
|
14
|
-
it 'marks as loaded
|
15
|
-
|
16
|
-
|
14
|
+
it 'marks as loaded stubs and all non-opal assets' do
|
15
|
+
allow(Opal::Config).to receive(:stubbed_files) { %w[foo bar] }
|
16
|
+
|
17
|
+
code = described_class.load_asset('baz')
|
18
|
+
expect(code).to include(%{Opal.loaded(["foo","bar"].concat(typeof(OpalLoaded) === "undefined" ? [] : OpalLoaded));})
|
19
|
+
expect(code).to include('Opal.require("baz");')
|
17
20
|
end
|
18
21
|
|
19
22
|
it 'tries to load an asset if it is registered as opal module' do
|
20
23
|
code = described_class.load_asset('foo')
|
21
|
-
expect(code).to include('
|
24
|
+
expect(code).to include('Opal.require("foo");')
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'warns the user that passing an env is not needed, only once' do
|
28
|
+
expect(described_class).to receive(:warn).once
|
29
|
+
described_class.load_asset('foo', env)
|
30
|
+
described_class.load_asset('foo', env)
|
31
|
+
described_class.load_asset('foo', env)
|
32
|
+
described_class.load_asset('foo', 'bar', env)
|
33
|
+
described_class.load_asset('foo', 'bar', env)
|
22
34
|
end
|
23
|
-
end
|
24
35
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
36
|
+
it 'accepts multiple names' do
|
37
|
+
code = described_class.load_asset('foo', 'bar')
|
38
|
+
expect(code).to include('Opal.require("foo");')
|
39
|
+
expect(code).to include('Opal.require("bar");')
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'detects deprecated env with multiple names' do
|
43
|
+
code = described_class.load_asset('foo', 'bar', env)
|
44
|
+
expect(code).to eq([
|
45
|
+
'Opal.loaded(typeof(OpalLoaded) === "undefined" ? [] : OpalLoaded);',
|
46
|
+
'Opal.require("foo");',
|
47
|
+
'Opal.require("bar");',
|
48
|
+
].join("\n"))
|
49
|
+
end
|
30
50
|
end
|
31
51
|
|
32
52
|
describe '.javascript_include_tag' do
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: opal-sprockets
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.9.1.0.3.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Elia Schito
|
8
8
|
- Adam Beynon
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2020-09-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: sprockets
|
@@ -162,7 +162,7 @@ files:
|
|
162
162
|
homepage: https://github.com/opal/opal-sprockets#readme
|
163
163
|
licenses: []
|
164
164
|
metadata: {}
|
165
|
-
post_install_message:
|
165
|
+
post_install_message:
|
166
166
|
rdoc_options: []
|
167
167
|
require_paths:
|
168
168
|
- lib
|
@@ -177,8 +177,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
177
177
|
- !ruby/object:Gem::Version
|
178
178
|
version: '0'
|
179
179
|
requirements: []
|
180
|
-
rubygems_version: 3.
|
181
|
-
signing_key:
|
180
|
+
rubygems_version: 3.1.2
|
181
|
+
signing_key:
|
182
182
|
specification_version: 4
|
183
183
|
summary: Sprockets support for Opal.
|
184
184
|
test_files:
|