opal-sprockets 0.4.4.1.0.3.7 → 0.4.5.1.0.3.7
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 +4 -4
- data/.travis.yml +8 -21
- data/CHANGELOG.md +8 -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 +30 -10
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fe4fea42b4e089b7da5235e189941d2882c81e229f4016813ad1c431c1cb0937
|
4
|
+
data.tar.gz: da9543d5252c5ef2c906cf1bb6b6b9cda8fa654d3023800a7398ca39547b3160
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 86f846edd06ce32281a77233b7a160f2ff4ae197fd4b974fc7f58d551a68a84e27d93e693cdeb06f416b5620c459503b2cc2fca305f603ec28ee1afe96a61ca8
|
7
|
+
data.tar.gz: f8f35614551b30c6b9e49b0566cd61fb653860196c904a8b4c7b4d7b28fc3bca1f0b1068435e1cfa68fa87d6265b74928addef1effe8df66a909742d78e98778
|
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,13 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## [v0.4.5](https://github.com/opal/opal-sprockets/compare/v0.4.4.1.0.3.7...v0.4.5.1.0.3.7)
|
4
|
+
|
5
|
+
*25 May 2019*
|
6
|
+
|
7
|
+
- Opal is now loaded as part of the bootstrap process instead of being marked as preloaded by the processor
|
8
|
+
- Simplified code for loading-related scripts
|
9
|
+
|
10
|
+
|
3
11
|
## [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
12
|
|
5
13
|
*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.4.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.load("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 = 'OpalLoaded || []'
|
36
|
+
loaded = "#{stubbed.to_json}.concat(#{loaded})" if stubbed.any?
|
34
37
|
|
35
|
-
|
38
|
+
[
|
39
|
+
"Opal.loaded(#{loaded});",
|
40
|
+
*names.map { |name| "Opal.load(#{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
@@ -11,22 +11,42 @@ describe Opal::Sprockets do
|
|
11
11
|
expect(code).to include('Opal.load("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(OpalLoaded || []));')
|
19
|
+
expect(code).to include('Opal.load("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.load("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.load("foo");')
|
39
|
+
expect(code).to include('Opal.load("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(OpalLoaded || []);',
|
46
|
+
'Opal.load("foo");',
|
47
|
+
'Opal.load("bar");',
|
48
|
+
].join("\n"))
|
49
|
+
end
|
30
50
|
end
|
31
51
|
|
32
52
|
describe '.javascript_include_tag' do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
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.5.1.0.3.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Elia Schito
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2019-05-
|
12
|
+
date: 2019-05-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: sprockets
|