syntropy 0.27.1 → 0.27.2
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/CHANGELOG.md +4 -0
- data/lib/syntropy/module.rb +32 -6
- data/lib/syntropy/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e80e6b84e9a27a66ceea390152e0a5f78e1e9f09faa2e05f2cf3d3633524d859
|
4
|
+
data.tar.gz: 6df75f9834f47adb3cbb2d72d7c725c3630f7d2d90deef7d4667e108a812b572
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7b244f6672e0cb10456c7723a7f991566a7d31de4ea3072fe498a13901eebaab558dd7914e12de85f0262e08080a51959c742ef1b7149be7f13d75be56259555
|
7
|
+
data.tar.gz: 64824cf03670ab6ff06e12c639011dfe67a3b0d0e32d18daad5aa23df24e8dfaafb2d01e2dced957f7493fdf6dc6fbb0f040959d3ab6c2bc2abea55a0bf0fd7d
|
data/CHANGELOG.md
CHANGED
data/lib/syntropy/module.rb
CHANGED
@@ -53,9 +53,8 @@ module Syntropy
|
|
53
53
|
# @return [void]
|
54
54
|
def invalidate_fn(fn)
|
55
55
|
ref = @fn_map[fn]
|
56
|
-
|
57
|
-
|
58
|
-
invalidate_ref(ref)
|
56
|
+
invalidate_ref(ref) if ref
|
57
|
+
invalidate_collection_modules
|
59
58
|
end
|
60
59
|
|
61
60
|
private
|
@@ -75,6 +74,14 @@ module Syntropy
|
|
75
74
|
entry[:reverse_deps].each { invalidate_ref(it) }
|
76
75
|
end
|
77
76
|
|
77
|
+
def invalidate_collection_modules
|
78
|
+
refs = []
|
79
|
+
@modules.each do |ref, entry|
|
80
|
+
refs << ref if entry[:module].is_collection_module?
|
81
|
+
end
|
82
|
+
refs.each { invalidate_ref(it) }
|
83
|
+
end
|
84
|
+
|
78
85
|
# Registers reverse dependencies for the given module reference.
|
79
86
|
#
|
80
87
|
# @param ref [String] module reference
|
@@ -102,12 +109,13 @@ module Syntropy
|
|
102
109
|
@fn_map[fn] = ref
|
103
110
|
code = IO.read(fn)
|
104
111
|
env = @env.merge(module_loader: self, ref: clean_ref(ref))
|
105
|
-
|
106
|
-
add_dependencies(ref,
|
107
|
-
export_value = transform_module_export_value(
|
112
|
+
mod = Syntropy::Module.load(env, code, fn)
|
113
|
+
add_dependencies(ref, mod.__dependencies__)
|
114
|
+
export_value = transform_module_export_value(mod.__export_value__)
|
108
115
|
|
109
116
|
{
|
110
117
|
fn: fn,
|
118
|
+
module: mod,
|
111
119
|
export_value: export_value,
|
112
120
|
reverse_deps: []
|
113
121
|
}
|
@@ -195,6 +203,14 @@ module Syntropy
|
|
195
203
|
Syntropy.page_list(@env, ref)
|
196
204
|
end
|
197
205
|
|
206
|
+
# Returns true if the module is a collection module. See also
|
207
|
+
# #collection_module!
|
208
|
+
#
|
209
|
+
# @return [bool]
|
210
|
+
def is_collection_module?
|
211
|
+
@collection_module_p
|
212
|
+
end
|
213
|
+
|
198
214
|
private
|
199
215
|
|
200
216
|
# Exports the given value. This value will be used as the module's
|
@@ -217,6 +233,16 @@ module Syntropy
|
|
217
233
|
@module_loader.load(ref).tap { __dependencies__ << ref }
|
218
234
|
end
|
219
235
|
|
236
|
+
# Marks module as a collection module. This will cause the module to be
|
237
|
+
# invalidated on every file change in dev mode, regardless if it is a
|
238
|
+
# dependency.
|
239
|
+
#
|
240
|
+
# @return [self]
|
241
|
+
def collection_module!
|
242
|
+
@collection_module_p = true
|
243
|
+
self
|
244
|
+
end
|
245
|
+
|
220
246
|
def normalize_import_ref(ref)
|
221
247
|
base = @ref == '' ? '/' : @ref
|
222
248
|
if ref =~ /^\//
|
data/lib/syntropy/version.rb
CHANGED