phlex 2.0.0.rc1 → 2.0.0.rc2

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.
@@ -17,7 +17,6 @@ module Phlex::SVG::StandardElements
17
17
  **attributes,
18
18
  &content
19
19
  ) = nil
20
-
21
20
  # Outputs an `<animate>` tag.
22
21
  # See https://developer.mozilla.org/docs/Web/SVG/Element/animate
23
22
  register_element def animate(
@@ -28,7 +27,6 @@ module Phlex::SVG::StandardElements
28
27
  **attributes,
29
28
  &content
30
29
  ) = nil
31
-
32
30
  # Outputs an `<animateMotion>` tag.
33
31
  # See https://developer.mozilla.org/docs/Web/SVG/Element/animateMotion
34
32
  register_element def animateMotion(
@@ -54,427 +52,366 @@ module Phlex::SVG::StandardElements
54
52
  **attributes,
55
53
  &content
56
54
  ) = nil
57
-
58
55
  # Outputs an `<animateTransform>` tag.
59
56
  # See https://developer.mozilla.org/docs/Web/SVG/Element/animateTransform
60
57
  register_element def animateTransform(
61
58
  **attributes,
62
59
  &content
63
60
  ) = nil
64
-
65
61
  # Outputs a `<circle>` tag.
66
62
  # See https://developer.mozilla.org/docs/Web/SVG/Element/circle
67
63
  register_element def circle(
68
64
  **attributes,
69
65
  &content
70
66
  ) = nil
71
-
72
67
  # Outputs a `<clipPath>` tag.
73
68
  # See https://developer.mozilla.org/docs/Web/SVG/Element/clipPath
74
69
  register_element def clipPath(
75
70
  **attributes,
76
71
  &content
77
72
  ) = nil
78
-
79
73
  # Outputs a `<defs>` tag.
80
74
  # See https://developer.mozilla.org/docs/Web/SVG/Element/defs
81
75
  register_element def defs(
82
76
  **attributes,
83
77
  &content
84
78
  ) = nil
85
-
86
79
  # Outputs a `<desc>` tag.
87
80
  # See https://developer.mozilla.org/docs/Web/SVG/Element/desc
88
81
  register_element def desc(
89
82
  **attributes,
90
83
  &content
91
84
  ) = nil
92
-
93
85
  # Outputs a `<discard>` tag.
94
86
  # See https://developer.mozilla.org/docs/Web/SVG/Element/discard
95
87
  register_element def discard(
96
88
  **attributes,
97
89
  &content
98
90
  ) = nil
99
-
100
91
  # Outputs an `<ellipse>` tag.
101
92
  # See https://developer.mozilla.org/docs/Web/SVG/Element/ellipse
102
93
  register_element def ellipse(
103
94
  **attributes,
104
95
  &content
105
96
  ) = nil
106
-
107
97
  # Outputs an `<feBlend>` tag.
108
98
  # See https://developer.mozilla.org/docs/Web/SVG/Element/feBlend
109
99
  register_element def feBlend(
110
100
  **attributes,
111
101
  &content
112
102
  ) = nil
113
-
114
103
  # Outputs an `<feColorMatrix>` tag.
115
104
  # See https://developer.mozilla.org/docs/Web/SVG/Element/feColorMatrix
116
105
  register_element def feColorMatrix(
117
106
  **attributes,
118
107
  &content
119
108
  ) = nil
120
-
121
109
  # Outputs an `<feComponentTransfer>` tag.
122
110
  # See https://developer.mozilla.org/docs/Web/SVG/Element/feComponentTransfer
123
111
  register_element def feComponentTransfer(
124
112
  **attributes,
125
113
  &content
126
114
  ) = nil
127
-
128
115
  # Outputs an `<feComposite>` tag.
129
116
  # See https://developer.mozilla.org/docs/Web/SVG/Element/feComposite
130
117
  register_element def feComposite(
131
118
  **attributes,
132
119
  &content
133
120
  ) = nil
134
-
135
121
  # Outputs an `<feConvolveMatrix>` tag.
136
122
  # See https://developer.mozilla.org/docs/Web/SVG/Element/feConvolveMatrix
137
123
  register_element def feConvolveMatrix(
138
124
  **attributes,
139
125
  &content
140
126
  ) = nil
141
-
142
127
  # Outputs an `<feDiffuseLighting>` tag.
143
128
  # See https://developer.mozilla.org/docs/Web/SVG/Element/feDiffuseLighting
144
129
  register_element def feDiffuseLighting(
145
130
  **attributes,
146
131
  &content
147
132
  ) = nil
148
-
149
133
  # Outputs an `<feDisplacementMap>` tag.
150
134
  # See https://developer.mozilla.org/docs/Web/SVG/Element/feDisplacementMap
151
135
  register_element def feDisplacementMap(
152
136
  **attributes,
153
137
  &content
154
138
  ) = nil
155
-
156
139
  # Outputs an `<feDistantLight>` tag.
157
140
  # See https://developer.mozilla.org/docs/Web/SVG/Element/feDistantLight
158
141
  register_element def feDistantLight(
159
142
  **attributes,
160
143
  &content
161
144
  ) = nil
162
-
163
145
  # Outputs an `<feDropShadow>` tag.
164
146
  # See https://developer.mozilla.org/docs/Web/SVG/Element/feDropShadow
165
147
  register_element def feDropShadow(
166
148
  **attributes,
167
149
  &content
168
150
  ) = nil
169
-
170
151
  # Outputs an `<feFlood>` tag.
171
152
  # See https://developer.mozilla.org/docs/Web/SVG/Element/feFlood
172
153
  register_element def feFlood(
173
154
  **attributes,
174
155
  &content
175
156
  ) = nil
176
-
177
157
  # Outputs an `<feFuncA>` tag.
178
158
  # See https://developer.mozilla.org/docs/Web/SVG/Element/feFuncA
179
159
  register_element def feFuncA(
180
160
  **attributes,
181
161
  &content
182
162
  ) = nil
183
-
184
163
  # Outputs an `<feFuncB>` tag.
185
164
  # See https://developer.mozilla.org/docs/Web/SVG/Element/feFuncB
186
165
  register_element def feFuncB(
187
166
  **attributes,
188
167
  &content
189
168
  ) = nil
190
-
191
169
  # Outputs an `<feFuncG>` tag.
192
170
  # See https://developer.mozilla.org/docs/Web/SVG/Element/feFuncG
193
171
  register_element def feFuncG(
194
172
  **attributes,
195
173
  &content
196
174
  ) = nil
197
-
198
175
  # Outputs an `<feFuncR>` tag.
199
176
  # See https://developer.mozilla.org/docs/Web/SVG/Element/feFuncR
200
177
  register_element def feFuncR(
201
178
  **attributes,
202
179
  &content
203
180
  ) = nil
204
-
205
181
  # Outputs an `<feGaussianBlur>` tag.
206
182
  # See https://developer.mozilla.org/docs/Web/SVG/Element/feGaussianBlur
207
183
  register_element def feGaussianBlur(
208
184
  **attributes,
209
185
  &content
210
186
  ) = nil
211
-
212
187
  # Outputs an `<feImage>` tag.
213
188
  # See https://developer.mozilla.org/docs/Web/SVG/Element/feImage
214
189
  register_element def feImage(
215
190
  **attributes,
216
191
  &content
217
192
  ) = nil
218
-
219
193
  # Outputs an `<feMerge>` tag.
220
194
  # See https://developer.mozilla.org/docs/Web/SVG/Element/feMerge
221
195
  register_element def feMerge(
222
196
  **attributes,
223
197
  &content
224
198
  ) = nil
225
-
226
199
  # Outputs an `<feMergeNode>` tag.
227
200
  # See https://developer.mozilla.org/docs/Web/SVG/Element/feMergeNode
228
201
  register_element def feMergeNode(
229
202
  **attributes,
230
203
  &content
231
204
  ) = nil
232
-
233
205
  # Outputs an `<feMorphology>` tag.
234
206
  # See https://developer.mozilla.org/docs/Web/SVG/Element/feMorphology
235
207
  register_element def feMorphology(
236
208
  **attributes,
237
209
  &content
238
210
  ) = nil
239
-
240
211
  # Outputs an `<feOffset>` tag.
241
212
  # See https://developer.mozilla.org/docs/Web/SVG/Element/feOffset
242
213
  register_element def feOffset(
243
214
  **attributes,
244
215
  &content
245
216
  ) = nil
246
-
247
217
  # Outputs an `<fePointLight>` tag.
248
218
  # See https://developer.mozilla.org/docs/Web/SVG/Element/fePointLight
249
219
  register_element def fePointLight(
250
220
  **attributes,
251
221
  &content
252
222
  ) = nil
253
-
254
223
  # Outputs an `<feSpecularLighting>` tag.
255
224
  # See https://developer.mozilla.org/docs/Web/SVG/Element/feSpecularLighting
256
225
  register_element def feSpecularLighting(
257
226
  **attributes,
258
227
  &content
259
228
  ) = nil
260
-
261
229
  # Outputs an `<feSpotLight>` tag.
262
230
  # See https://developer.mozilla.org/docs/Web/SVG/Element/feSpotLight
263
231
  register_element def feSpotLight(
264
232
  **attributes,
265
233
  &content
266
234
  ) = nil
267
-
268
235
  # Outputs an `<feTile>` tag.
269
236
  # See https://developer.mozilla.org/docs/Web/SVG/Element/feTile
270
237
  register_element def feTile(
271
238
  **attributes,
272
239
  &content
273
240
  ) = nil
274
-
275
241
  # Outputs an `<feTurbulence>` tag.
276
242
  # See https://developer.mozilla.org/docs/Web/SVG/Element/feTurbulence
277
243
  register_element def feTurbulence(
278
244
  **attributes,
279
245
  &content
280
246
  ) = nil
281
-
282
247
  # Outputs a `<filter>` tag.
283
248
  # See https://developer.mozilla.org/docs/Web/SVG/Element/filter
284
249
  register_element def filter(
285
250
  **attributes,
286
251
  &content
287
252
  ) = nil
288
-
289
253
  # Outputs a `<foreignObject>` tag.
290
254
  # See https://developer.mozilla.org/docs/Web/SVG/Element/foreignObject
291
255
  register_element def foreignObject(
292
256
  **attributes,
293
257
  &content
294
258
  ) = nil
295
-
296
259
  # Outputs a `<g>` tag.
297
260
  # See https://developer.mozilla.org/docs/Web/SVG/Element/g
298
261
  register_element def g(
299
262
  **attributes,
300
263
  &content
301
264
  ) = nil
302
-
303
265
  # Outputs an `<image>` tag.
304
266
  # See https://developer.mozilla.org/docs/Web/SVG/Element/image
305
267
  register_element def image(
306
268
  **attributes,
307
269
  &content
308
270
  ) = nil
309
-
310
271
  # Outputs a `<line>` tag.
311
272
  # See https://developer.mozilla.org/docs/Web/SVG/Element/line
312
273
  register_element def line(
313
274
  **attributes,
314
275
  &content
315
276
  ) = nil
316
-
317
277
  # Outputs a `<linearGradient>` tag.
318
278
  # See https://developer.mozilla.org/docs/Web/SVG/Element/linearGradient
319
279
  register_element def linearGradient(
320
280
  **attributes,
321
281
  &content
322
282
  ) = nil
323
-
324
283
  # Outputs a `<marker>` tag.
325
284
  # See https://developer.mozilla.org/docs/Web/SVG/Element/marker
326
285
  register_element def marker(
327
286
  **attributes,
328
287
  &content
329
288
  ) = nil
330
-
331
289
  # Outputs a `<mask>` tag.
332
290
  # See https://developer.mozilla.org/docs/Web/SVG/Element/mask
333
291
  register_element def mask(
334
292
  **attributes,
335
293
  &content
336
294
  ) = nil
337
-
338
295
  # Outputs a `<metadata>` tag.
339
296
  # See https://developer.mozilla.org/docs/Web/SVG/Element/metadata
340
297
  register_element def metadata(
341
298
  **attributes,
342
299
  &content
343
300
  ) = nil
344
-
345
301
  # Outputs an `<mpath>` tag.
346
302
  # See https://developer.mozilla.org/docs/Web/SVG/Element/mpath
347
303
  register_element def mpath(
348
304
  **attributes,
349
305
  &content
350
306
  ) = nil
351
-
352
307
  # Outputs a `<path>` tag.
353
308
  # See https://developer.mozilla.org/docs/Web/SVG/Element/path
354
309
  register_element def path(
355
310
  **attributes,
356
311
  &content
357
312
  ) = nil
358
-
359
313
  # Outputs a `<pattern>` tag.
360
314
  # See https://developer.mozilla.org/docs/Web/SVG/Element/pattern
361
315
  register_element def pattern(
362
316
  **attributes,
363
317
  &content
364
318
  ) = nil
365
-
366
319
  # Outputs a `<polygon>` tag.
367
320
  # See https://developer.mozilla.org/docs/Web/SVG/Element/polygon
368
321
  register_element def polygon(
369
322
  **attributes,
370
323
  &content
371
324
  ) = nil
372
-
373
325
  # Outputs a `<polyline>` tag.
374
326
  # See https://developer.mozilla.org/docs/Web/SVG/Element/polyline
375
327
  register_element def polyline(
376
328
  **attributes,
377
329
  &content
378
330
  ) = nil
379
-
380
331
  # Outputs a `<radialGradient>` tag.
381
332
  # See https://developer.mozilla.org/docs/Web/SVG/Element/radialGradient
382
333
  register_element def radialGradient(
383
334
  **attributes,
384
335
  &content
385
336
  ) = nil
386
-
387
337
  # Outputs a `<rect>` tag.
388
338
  # See https://developer.mozilla.org/docs/Web/SVG/Element/rect
389
339
  register_element def rect(
390
340
  **attributes,
391
341
  &content
392
342
  ) = nil
393
-
394
343
  # Outputs a `<script>` tag.
395
344
  # See https://developer.mozilla.org/docs/Web/SVG/Element/script
396
345
  register_element def script(
397
346
  **attributes,
398
347
  &content
399
348
  ) = nil
400
-
401
349
  # Outputs a `<set>` tag.
402
350
  # See https://developer.mozilla.org/docs/Web/SVG/Element/set
403
351
  register_element def set(
404
352
  **attributes,
405
353
  &content
406
354
  ) = nil
407
-
408
355
  # Outputs a `<stop>` tag.
409
356
  # See https://developer.mozilla.org/docs/Web/SVG/Element/stop
410
357
  register_element def stop(
411
358
  **attributes,
412
359
  &content
413
360
  ) = nil
414
-
415
361
  # Outputs a `<style>` tag.
416
362
  # See https://developer.mozilla.org/docs/Web/SVG/Element/style
417
363
  register_element def style(
418
364
  **attributes,
419
365
  &content
420
366
  ) = nil
421
-
422
367
  # Outputs an `<svg>` tag.
423
368
  # See https://developer.mozilla.org/docs/Web/SVG/Element/svg
424
369
  register_element def svg(
425
370
  **attributes,
426
371
  &content
427
372
  ) = nil
428
-
429
373
  # Outputs a `<switch>` tag.
430
374
  # See https://developer.mozilla.org/docs/Web/SVG/Element/switch
431
375
  register_element def switch(
432
376
  **attributes,
433
377
  &content
434
378
  ) = nil
435
-
436
379
  # Outputs a `<symbol>` tag.
437
380
  # See https://developer.mozilla.org/docs/Web/SVG/Element/symbol
438
381
  register_element def symbol(
439
382
  **attributes,
440
383
  &content
441
384
  ) = nil
442
-
443
385
  # Outputs a `<text>` tag.
444
386
  # See https://developer.mozilla.org/docs/Web/SVG/Element/text
445
387
  register_element def text(
446
388
  **attributes,
447
389
  &content
448
390
  ) = nil
449
-
450
391
  # Outputs a `<textPath>` tag.
451
392
  # See https://developer.mozilla.org/docs/Web/SVG/Element/textPath
452
393
  register_element def textPath(
453
394
  **attributes,
454
395
  &content
455
396
  ) = nil
456
-
457
397
  # Outputs a `<title>` tag.
458
398
  # See https://developer.mozilla.org/docs/Web/SVG/Element/title
459
399
  register_element def title(
460
400
  **attributes,
461
401
  &content
462
402
  ) = nil
463
-
464
403
  # Outputs a `<tspan>` tag.
465
404
  # See https://developer.mozilla.org/docs/Web/SVG/Element/tspan
466
405
  register_element def tspan(
467
406
  **attributes,
468
407
  &content
469
408
  ) = nil
470
-
471
409
  # Outputs a `<use>` tag.
472
410
  # See https://developer.mozilla.org/docs/Web/SVG/Element/use
473
411
  register_element def use(
474
412
  **attributes,
475
413
  &content
476
414
  ) = nil
477
-
478
415
  # Outputs a `<view>` tag.
479
416
  # See https://developer.mozilla.org/docs/Web/SVG/Element/view
480
417
  register_element def view(
data/lib/phlex/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Phlex
4
- VERSION = "2.0.0.rc1"
4
+ VERSION = "2.0.0.rc2"
5
5
  end
data/lib/phlex.rb CHANGED
@@ -5,26 +5,26 @@ require "set"
5
5
 
6
6
  module Phlex
7
7
  autoload :ArgumentError, "phlex/errors/argument_error"
8
- autoload :Vanish, "phlex/vanish"
9
8
  autoload :CSV, "phlex/csv"
10
- autoload :Callable, "phlex/callable"
11
- autoload :Context, "phlex/context"
12
9
  autoload :DoubleRenderError, "phlex/errors/double_render_error"
13
- autoload :Elements, "phlex/elements"
14
10
  autoload :Error, "phlex/error"
15
11
  autoload :FIFO, "phlex/fifo"
12
+ autoload :FIFOCacheStore, "phlex/fifo_cache_store"
16
13
  autoload :HTML, "phlex/html"
17
14
  autoload :Helpers, "phlex/helpers"
18
15
  autoload :Kit, "phlex/kit"
19
16
  autoload :NameError, "phlex/errors/name_error"
17
+ autoload :NullCacheStore, "phlex/null_cache_store"
20
18
  autoload :SGML, "phlex/sgml"
21
19
  autoload :SVG, "phlex/svg"
20
+ autoload :Vanish, "phlex/vanish"
22
21
 
23
22
  Escape = ERB::Escape
24
- ATTRIBUTE_CACHE = FIFO.new
25
23
  Null = Object.new.freeze
26
24
 
25
+ DEPLOY_KEY = Process.clock_gettime(Process::CLOCK_MONOTONIC, :millisecond)
27
26
  CACHED_FILES = Set.new
27
+ ATTRIBUTE_CACHE = FIFO.new
28
28
 
29
29
  def self.__expand_attribute_cache__(file_path)
30
30
  unless CACHED_FILES.include?(file_path)
@@ -32,6 +32,17 @@ module Phlex
32
32
  Phlex::ATTRIBUTE_CACHE.expand(File.size(file_path))
33
33
  end
34
34
  end
35
+
36
+ def self.eager_load
37
+ queue = [self]
38
+
39
+ while (mod = queue.shift)
40
+ mod.constants.each do |const_name|
41
+ const = mod.const_get(const_name)
42
+ queue << const if Module === const
43
+ end
44
+ end
45
+ end
35
46
  end
36
47
 
37
48
  def 💪
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: phlex
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.rc1
4
+ version: 2.0.0.rc2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joel Drapper
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2024-11-26 00:00:00.000000000 Z
10
+ date: 2025-02-10 00:00:00.000000000 Z
12
11
  dependencies: []
13
12
  description: A high-performance view framework optimised for fun.
14
13
  email:
@@ -20,22 +19,24 @@ files:
20
19
  - LICENSE.txt
21
20
  - README.md
22
21
  - lib/phlex.rb
23
- - lib/phlex/context.rb
24
22
  - lib/phlex/csv.rb
25
23
  - lib/phlex/error.rb
26
24
  - lib/phlex/errors/argument_error.rb
27
25
  - lib/phlex/errors/double_render_error.rb
28
26
  - lib/phlex/errors/name_error.rb
29
27
  - lib/phlex/fifo.rb
28
+ - lib/phlex/fifo_cache_store.rb
30
29
  - lib/phlex/helpers.rb
31
30
  - lib/phlex/html.rb
32
31
  - lib/phlex/html/standard_elements.rb
33
32
  - lib/phlex/html/void_elements.rb
34
33
  - lib/phlex/kit.rb
34
+ - lib/phlex/null_cache_store.rb
35
35
  - lib/phlex/sgml.rb
36
36
  - lib/phlex/sgml/elements.rb
37
37
  - lib/phlex/sgml/safe_object.rb
38
38
  - lib/phlex/sgml/safe_value.rb
39
+ - lib/phlex/sgml/state.rb
39
40
  - lib/phlex/svg.rb
40
41
  - lib/phlex/svg/standard_elements.rb
41
42
  - lib/phlex/testing.rb
@@ -54,7 +55,6 @@ metadata:
54
55
  changelog_uri: https://github.com/phlex-ruby/phlex/blob/main/CHANGELOG.md
55
56
  funding_uri: https://github.com/sponsors/joeldrapper
56
57
  rubygems_mfa_required: 'true'
57
- post_install_message:
58
58
  rdoc_options: []
59
59
  require_paths:
60
60
  - lib
@@ -69,8 +69,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
69
69
  - !ruby/object:Gem::Version
70
70
  version: '0'
71
71
  requirements: []
72
- rubygems_version: 3.5.18
73
- signing_key:
72
+ rubygems_version: 3.6.2
74
73
  specification_version: 4
75
74
  summary: A fun framework for building views in Ruby.
76
75
  test_files: []
data/lib/phlex/context.rb DELETED
@@ -1,60 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # @api private
4
- class Phlex::Context
5
- def initialize(user_context: {}, view_context: nil)
6
- @buffer = +""
7
- @capturing = false
8
- @user_context = user_context
9
- @fragments = nil
10
- @in_target_fragment = false
11
- @halt_signal = nil
12
- @view_context = view_context
13
- end
14
-
15
- attr_accessor :buffer, :capturing, :user_context, :in_target_fragment
16
-
17
- attr_reader :fragments, :view_context
18
-
19
- def target_fragments(fragments)
20
- @fragments = fragments.to_h { |it| [it, true] }
21
- end
22
-
23
- def around_render
24
- return yield if !@fragments || @halt_signal
25
-
26
- catch do |signal|
27
- @halt_signal = signal
28
- yield
29
- end
30
- end
31
-
32
- def begin_target(id)
33
- @in_target_fragment = id
34
- end
35
-
36
- def end_target
37
- @fragments.delete(@in_target_fragment)
38
- @in_target_fragment = false
39
- throw @halt_signal if @fragments.length == 0
40
- end
41
-
42
- def capturing_into(new_buffer)
43
- original_buffer = @buffer
44
- original_capturing = @capturing
45
- original_fragments = @fragments
46
-
47
- begin
48
- @buffer = new_buffer
49
- @capturing = true
50
- @fragments = nil
51
- yield
52
- ensure
53
- @buffer = original_buffer
54
- @capturing = original_capturing
55
- @fragments = original_fragments
56
- end
57
-
58
- new_buffer
59
- end
60
- end