opal-sprockets 0.4.4.1.0.3.7 → 0.4.5.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 +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
|