opal-sprockets 0.4.0.0.11.dev.3.1.beta1 → 0.4.0.0.11.0.rc1.3.1.beta2
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 +3 -3
- data/README.md +3 -1
- data/example/app/application.rb +8 -1
- data/lib/opal/sprockets/processor.rb +26 -0
- data/lib/opal/sprockets/version.rb +2 -2
- data/lib/opal/sprockets.rb +13 -27
- data/opal-sprockets.gemspec +4 -4
- data/spec/sprockets/processor_spec.rb +1 -1
- data/spec/sprockets_spec.rb +12 -5
- metadata +9 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7f468bcbf61d1f13cb364f124c53b8ae927ea02a
|
4
|
+
data.tar.gz: 6f759a6a77b4e6ae82733c2a504a1b0ffc562fd3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b894dc0cd1e9b0b8443f3e915dc18719786a63c0443f096d419ca71b4551e50c3d6f42d7f96f74e61b9c7cad1c01e46490539fcc7d5f686d912380867bb61186
|
7
|
+
data.tar.gz: 2718a9c2659da6a27d290102f00b0405af71760547f65a77cb96754205a4165e96aba496561da57f57d272e4c51ad95b7bbc226e399f26e2cd93597888b26095
|
data/.travis.yml
CHANGED
@@ -8,9 +8,9 @@ matrix:
|
|
8
8
|
env: RACK_VERSION='< 2.0.0' SPROCKETS_VERSION='~> 3.5.2'
|
9
9
|
- rvm: 2.2.5
|
10
10
|
env: SPROCKETS_VERSION='~> 3.6.3'
|
11
|
-
- rvm: 2.3.
|
12
|
-
env: SPROCKETS_VERSION='~> 3.7.
|
13
|
-
- rvm: 2.4.0
|
11
|
+
- rvm: 2.3.4
|
12
|
+
env: SPROCKETS_VERSION='~> 3.7.1'
|
13
|
+
- rvm: 2.4.0
|
14
14
|
|
15
15
|
notifications:
|
16
16
|
irc: "irc.freenode.org#opal"
|
data/README.md
CHANGED
data/example/app/application.rb
CHANGED
@@ -6,8 +6,15 @@ module MyApp
|
|
6
6
|
def initialize
|
7
7
|
@user = User.new('Bill')
|
8
8
|
@user.authenticated?
|
9
|
+
rescue
|
10
|
+
@user = User.new('Bob')
|
11
|
+
@user.authenticated?
|
12
|
+
p @user
|
9
13
|
end
|
10
14
|
end
|
11
15
|
end
|
12
16
|
|
13
|
-
MyApp::Application.new
|
17
|
+
$app = MyApp::Application.new
|
18
|
+
|
19
|
+
p $app
|
20
|
+
puts "Done!"
|
@@ -141,6 +141,30 @@ module Opal
|
|
141
141
|
end
|
142
142
|
end
|
143
143
|
|
144
|
+
module Opal::Sprockets::Processor
|
145
|
+
module PlainJavaScriptLoader
|
146
|
+
def self.call(input)
|
147
|
+
sprockets = input[:environment]
|
148
|
+
asset = OpenStruct.new(input)
|
149
|
+
|
150
|
+
opal_extnames = sprockets.engines.map do |ext, engine|
|
151
|
+
ext if engine <= ::Opal::Processor
|
152
|
+
end.compact
|
153
|
+
|
154
|
+
path_extnames = -> path { File.basename(path).scan(/\.[^.]+/) }
|
155
|
+
processed_by_opal = -> asset { (path_extnames[asset.filename] & opal_extnames).any? }
|
156
|
+
|
157
|
+
unless processed_by_opal[asset]
|
158
|
+
[
|
159
|
+
input[:data],
|
160
|
+
%{if (typeof(OpalLoaded) === 'undefined') OpalLoaded = []; OpalLoaded.push(#{input[:name].to_json});}
|
161
|
+
].join(";\n")
|
162
|
+
end
|
163
|
+
end
|
164
|
+
end
|
165
|
+
end
|
166
|
+
|
167
|
+
|
144
168
|
if Sprockets.respond_to? :register_transformer
|
145
169
|
extra_args = [{mime_type: 'application/javascript', silence_deprecation: true}]
|
146
170
|
else
|
@@ -149,3 +173,5 @@ end
|
|
149
173
|
|
150
174
|
Sprockets.register_engine '.rb', Opal::Processor, *extra_args
|
151
175
|
Sprockets.register_engine '.opal', Opal::Processor, *extra_args
|
176
|
+
Sprockets.register_postprocessor 'application/javascript', Opal::Sprockets::Processor::PlainJavaScriptLoader
|
177
|
+
|
@@ -1,8 +1,8 @@
|
|
1
1
|
module Opal
|
2
2
|
module Sprockets
|
3
3
|
BASE_VERSION = '0.4.0'
|
4
|
-
OPAL_VERSION = '0.11.
|
4
|
+
OPAL_VERSION = '0.11.0.rc1'
|
5
5
|
SPROCKETS_VERSION = '3.1'
|
6
|
-
VERSION = "#{BASE_VERSION}.#{OPAL_VERSION}.#{SPROCKETS_VERSION}.
|
6
|
+
VERSION = "#{BASE_VERSION}.#{OPAL_VERSION}.#{SPROCKETS_VERSION}.beta2"
|
7
7
|
end
|
8
8
|
end
|
data/lib/opal/sprockets.rb
CHANGED
@@ -10,7 +10,7 @@ module Opal
|
|
10
10
|
#
|
11
11
|
# @example
|
12
12
|
#
|
13
|
-
# Opal::Sprockets.load_asset(
|
13
|
+
# Opal::Sprockets.load_asset('application')
|
14
14
|
#
|
15
15
|
# @example Will output the following JavaScript:
|
16
16
|
#
|
@@ -20,38 +20,24 @@ module Opal
|
|
20
20
|
# Opal.load("application");
|
21
21
|
# }
|
22
22
|
#
|
23
|
-
# @param name
|
24
|
-
# @param sprockets [Sprockets::Environment]
|
23
|
+
# @param name [String] The logical name of the main asset to be loaded (without extension)
|
25
24
|
#
|
26
25
|
# @return [String] JavaScript code
|
27
|
-
def self.load_asset(name,
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
ext if engine <= ::Opal::Processor
|
33
|
-
end.compact
|
26
|
+
def self.load_asset(name, _sprockets = :deprecated)
|
27
|
+
if _sprockets != :deprecated && !@load_asset_warning_displayed
|
28
|
+
@load_asset_warning_displayed = true
|
29
|
+
warn "Passing a sprockets environment to Opal::Sprockets.load_asset no more needed.\n #{caller(1, 3).join("\n ")}"
|
30
|
+
end
|
34
31
|
|
35
|
-
|
36
|
-
path_extnames = -> path { File.basename(path).scan(/\.[^.]+/) }
|
37
|
-
mark_loaded = -> paths { "Opal.loaded([#{paths.map(&:inspect).join(',')}]);" }
|
38
|
-
processed_by_opal = -> asset { (path_extnames[asset.pathname] & opal_extnames).any? }
|
32
|
+
name = name.sub(/(\.(js|rb|opal))*\z/, '')
|
39
33
|
stubbed_files = ::Opal::Config.stubbed_files
|
40
34
|
|
41
|
-
|
42
|
-
.select { |asset| not(processed_by_opal[asset]) }
|
43
|
-
.map { |asset| module_name[asset] }
|
44
|
-
|
45
|
-
loaded = ['opal'] + non_opal_assets + stubbed_files.to_a
|
46
|
-
|
47
|
-
if processed_by_opal[asset]
|
48
|
-
load_asset_code = "Opal.load(#{module_name[asset].inspect});"
|
49
|
-
end
|
50
|
-
|
35
|
+
loaded = ['opal', 'corelib/runtime'] + stubbed_files.to_a
|
51
36
|
|
52
37
|
"if (typeof(Opal) !== 'undefined') { "\
|
53
|
-
"#{
|
54
|
-
"
|
38
|
+
"Opal.loaded(#{loaded.to_json}); "\
|
39
|
+
"if (typeof(OpalLoaded) === 'undefined') Opal.loaded(OpalLoaded); "\
|
40
|
+
"if (Opal.modules[#{name.to_json}]) Opal.load(#{name.to_json}); "\
|
55
41
|
"}"
|
56
42
|
end
|
57
43
|
|
@@ -84,7 +70,7 @@ module Opal
|
|
84
70
|
scripts << %{<script src="#{prefix}/#{name}.js"></script>}
|
85
71
|
end
|
86
72
|
|
87
|
-
scripts << %{<script>#{::Opal::Sprockets.load_asset(name
|
73
|
+
scripts << %{<script>#{::Opal::Sprockets.load_asset(name)}</script>}
|
88
74
|
|
89
75
|
scripts.join "\n"
|
90
76
|
end
|
data/opal-sprockets.gemspec
CHANGED
@@ -4,11 +4,11 @@ require File.expand_path('../lib/opal/sprockets/version', __FILE__)
|
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = 'opal-sprockets'
|
6
6
|
s.version = Opal::Sprockets::VERSION
|
7
|
-
s.
|
8
|
-
s.email = '
|
7
|
+
s.authors = ['Elia Schito', 'Adam Beynon']
|
8
|
+
s.email = 'elia@schito.me'
|
9
9
|
s.homepage = 'http://opalrb.org'
|
10
|
-
s.summary = 'Sprockets support for
|
11
|
-
s.description = 'Sprockets
|
10
|
+
s.summary = 'Sprockets support for Opal.'
|
11
|
+
s.description = 'Sprockets support for Opal.'
|
12
12
|
|
13
13
|
s.files = `git ls-files`.split("\n")
|
14
14
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
@@ -61,7 +61,7 @@ describe Opal::Processor do
|
|
61
61
|
allow(environment).to receive(:[]).with('bar.js') { asset }
|
62
62
|
allow(environment).to receive(:engines) { {'.rb' => described_class, '.opal' => described_class} }
|
63
63
|
|
64
|
-
code = ::Opal::Sprockets.load_asset('bar'
|
64
|
+
code = ::Opal::Sprockets.load_asset('bar')
|
65
65
|
expect(code).to match(stubbed_file)
|
66
66
|
end
|
67
67
|
end
|
data/spec/sprockets_spec.rb
CHANGED
@@ -7,21 +7,28 @@ describe Opal::Sprockets do
|
|
7
7
|
|
8
8
|
describe '.load_asset' do
|
9
9
|
it 'loads the main asset' do
|
10
|
-
code = described_class.load_asset('console'
|
10
|
+
code = described_class.load_asset('console')
|
11
11
|
expect(code).to include('Opal.load("console");')
|
12
12
|
end
|
13
13
|
|
14
14
|
it 'marks as loaded "opal" plus all non opal assets' do
|
15
|
-
code = described_class.load_asset('corelib/runtime'
|
15
|
+
code = described_class.load_asset('corelib/runtime')
|
16
16
|
expect(code).to include('Opal.loaded(["opal","corelib/runtime"]);')
|
17
17
|
end
|
18
18
|
|
19
|
-
it '
|
20
|
-
code = described_class.load_asset('foo'
|
21
|
-
expect(code).to
|
19
|
+
it 'tries to load an asset if it is registered as opal module' do
|
20
|
+
code = described_class.load_asset('foo')
|
21
|
+
expect(code).to include('if (Opal.modules["foo"]) Opal.load("foo");')
|
22
22
|
end
|
23
23
|
end
|
24
24
|
|
25
|
+
it 'warns the user that passing an env is not needed, only once' do
|
26
|
+
expect(described_class).to receive(:warn).once
|
27
|
+
described_class.load_asset('foo', env)
|
28
|
+
described_class.load_asset('foo', env)
|
29
|
+
described_class.load_asset('foo', env)
|
30
|
+
end
|
31
|
+
|
25
32
|
describe '.javascript_include_tag' do
|
26
33
|
it 'works with trailing / in the prefix' do
|
27
34
|
code = described_class.javascript_include_tag('corelib/runtime', prefix: '/', sprockets: env, debug: false)
|
metadata
CHANGED
@@ -1,14 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: opal-sprockets
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.0.0.11.
|
4
|
+
version: 0.4.0.0.11.0.rc1.3.1.beta2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
+
- Elia Schito
|
7
8
|
- Adam Beynon
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date:
|
12
|
+
date: 2017-05-06 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: sprockets
|
@@ -30,14 +31,14 @@ dependencies:
|
|
30
31
|
requirements:
|
31
32
|
- - "~>"
|
32
33
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.11.
|
34
|
+
version: 0.11.0.rc1
|
34
35
|
type: :runtime
|
35
36
|
prerelease: false
|
36
37
|
version_requirements: !ruby/object:Gem::Requirement
|
37
38
|
requirements:
|
38
39
|
- - "~>"
|
39
40
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.11.
|
41
|
+
version: 0.11.0.rc1
|
41
42
|
- !ruby/object:Gem::Dependency
|
42
43
|
name: tilt
|
43
44
|
requirement: !ruby/object:Gem::Requirement
|
@@ -94,8 +95,8 @@ dependencies:
|
|
94
95
|
- - ">="
|
95
96
|
- !ruby/object:Gem::Version
|
96
97
|
version: '0'
|
97
|
-
description: Sprockets
|
98
|
-
email:
|
98
|
+
description: Sprockets support for Opal.
|
99
|
+
email: elia@schito.me
|
99
100
|
executables: []
|
100
101
|
extensions: []
|
101
102
|
extra_rdoc_files: []
|
@@ -164,10 +165,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
164
165
|
version: 1.3.1
|
165
166
|
requirements: []
|
166
167
|
rubyforge_project:
|
167
|
-
rubygems_version: 2.6.
|
168
|
+
rubygems_version: 2.6.8
|
168
169
|
signing_key:
|
169
170
|
specification_version: 4
|
170
|
-
summary: Sprockets support for
|
171
|
+
summary: Sprockets support for Opal.
|
171
172
|
test_files:
|
172
173
|
- spec/fixtures/complex_sprockets.js.rb.erb
|
173
174
|
- spec/fixtures/file_with_directives.js
|