opal-zeitwerk 0.0.4 → 0.2.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +5 -10
- data/lib/opal/zeitwerk/version.rb +1 -1
- data/opal/zeitwerk/loader/callbacks.rb +3 -6
- data/opal/zeitwerk/loader.rb +736 -731
- metadata +8 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 846c4f821cd60dbcab5f85092d5fa8a74e1d507fa8c85e910931b2e26ac3b83c
|
4
|
+
data.tar.gz: 420eb1f0e0c4159c1631d606ddc190113d8b4ff5607605d67d554a824ecd2c12
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 974cea26a9f845c66cd540d57e06383e41c37d855ca07530f700d2d66ffd22297859bbe3a99a1fead00b2e8cb095048d62901d0b5ff8c406b50993b5cd3bfc38
|
7
|
+
data.tar.gz: e5c2140d6f15598c066368856da3e6d9b9e7cabea19d16fcfd3caef2fea6a9a88e4188dafa70b11484e0b5d4df790d6245c0c30d464be8c56fa1de5f79c2bc5a
|
data/README.md
CHANGED
@@ -51,7 +51,7 @@ Differences to Ruby Zeitwerk:
|
|
51
51
|
- no logging (to keep asset size small and performance high)
|
52
52
|
- no gem specific support: GemInflector, for_gem, etc.
|
53
53
|
|
54
|
-
These don't make so much sense, as Opal Zeitwerk works on the global Opal.modules registry in the Browser, not the filesystem.
|
54
|
+
These don't make so much sense, as Opal Zeitwerk works on the global Opal.modules registry in the Browser, not the filesystem.
|
55
55
|
- Zeitwerk::Loader.set_autoloads_in_dir is public, so it can be called from lazy loaded code, after updating Opal.modules.
|
56
56
|
- There are no threads in javascript so thread support has been removed.
|
57
57
|
- Tests don't run yet.
|
@@ -167,13 +167,9 @@ should define `Geolocatable`, not `Concerns::Geolocatable`.
|
|
167
167
|
<a id="markdown-usage" name="usage"></a>
|
168
168
|
## Usage
|
169
169
|
|
170
|
-
Currently autoloading requires the es6_modules_1_1 branch along with the Opal es6_modules compiler options enabled.
|
171
|
-
This option is enabled by default with using [opal-webpack-loader](https://github.com/isomorfeus/opal-webpack-loader) to bundle opal code.
|
172
|
-
|
173
170
|
Add to the Gemfile:
|
174
171
|
```
|
175
|
-
gem 'opal',
|
176
|
-
gem 'opal-webpack-loader', '~> 0.9.7' # required
|
172
|
+
gem 'opal', '>= 1.3.0'
|
177
173
|
gem 'opal-zeitwerk', '~> 0.0.1'
|
178
174
|
```
|
179
175
|
|
@@ -186,7 +182,7 @@ require 'zeitwerk'
|
|
186
182
|
### Setup
|
187
183
|
Files must be included in the compiled asset by:
|
188
184
|
```
|
189
|
-
require_tree 'some_dir', :
|
185
|
+
require_tree 'some_dir', autoload: true
|
190
186
|
```
|
191
187
|
And added to the loader by:
|
192
188
|
```
|
@@ -451,10 +447,9 @@ As a workaround, you can eager load. Zeitwerk tries hard to succeed or fail cons
|
|
451
447
|
<a id="markdown-supported-opal-versions" name="supported-opal-versions"></a>
|
452
448
|
## Supported Opal versions
|
453
449
|
|
454
|
-
Opal Zeitwerk currently works
|
455
|
-
For the Gemfile:
|
450
|
+
Opal Zeitwerk currently works with Opal releases >= 1.3.0. For the Gemfile:
|
456
451
|
```
|
457
|
-
gem 'opal',
|
452
|
+
gem 'opal', '>= 1.3.0'
|
458
453
|
```
|
459
454
|
|
460
455
|
<a id="markdown-motivation" name="motivation"></a>
|
@@ -13,7 +13,7 @@ module Zeitwerk::Loader::Callbacks
|
|
13
13
|
|
14
14
|
# "constant #{cpath(*cref)} loaded from file #{file}" if cdef?(*cref)
|
15
15
|
if !cdef?(*cref)
|
16
|
-
raise Zeitwerk::NameError
|
16
|
+
raise Zeitwerk::NameError.new("expected file #{file} to define constant #{cpath(*cref)}, but didn't", cref.last)
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
@@ -25,11 +25,8 @@ module Zeitwerk::Loader::Callbacks
|
|
25
25
|
# @return [void]
|
26
26
|
def on_dir_autoloaded(dir)
|
27
27
|
if cref = autoloads.delete(dir)
|
28
|
-
autovivified_module =
|
29
|
-
|
30
|
-
else
|
31
|
-
cref[0].const_set(cref[1], Module.new)
|
32
|
-
end
|
28
|
+
autovivified_module = cref[0].const_set(cref[1], Module.new)
|
29
|
+
|
33
30
|
# "module #{autovivified_module.name} autovivified from directory #{dir}"
|
34
31
|
|
35
32
|
to_unload[autovivified_module.name] = [dir, cref] if reloading_enabled?
|