phlex 1.3.3 → 1.4.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of phlex might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.rubocop.yml +2 -24
- data/.ruby-version +1 -1
- data/Gemfile +1 -0
- data/README.md +1 -0
- data/fixtures/view_helper.rb +6 -0
- data/lib/phlex/black_hole.rb +7 -9
- data/lib/phlex/callable.rb +3 -5
- data/lib/phlex/deferred_render.rb +2 -4
- data/lib/phlex/elements.rb +56 -54
- data/lib/phlex/helpers.rb +5 -2
- data/lib/phlex/html/standard_elements.rb +2 -14
- data/lib/phlex/html/void_elements.rb +2 -0
- data/lib/phlex/html.rb +13 -286
- data/lib/{overrides → phlex/overrides}/symbol/name.rb +1 -1
- data/lib/phlex/sgml.rb +315 -0
- data/lib/phlex/svg/standard_elements.rb +391 -0
- data/lib/phlex/svg.rb +11 -0
- data/lib/phlex/testing/view_helper.rb +10 -12
- data/lib/phlex/unbuffered.rb +34 -36
- data/lib/phlex/version.rb +1 -1
- data/lib/phlex.rb +5 -1
- metadata +7 -5
- data/lib/phlex/buffered.rb +0 -19
data/lib/phlex/svg.rb
ADDED
@@ -1,19 +1,17 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
module Phlex
|
4
|
-
module
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
view = view.new
|
9
|
-
end
|
10
|
-
|
11
|
-
view.call(view_context: view_context, &block)
|
3
|
+
module Phlex::Testing
|
4
|
+
module ViewHelper
|
5
|
+
def render(view, &block)
|
6
|
+
if view.is_a?(Class) && view < Phlex::SGML
|
7
|
+
view = view.new
|
12
8
|
end
|
13
9
|
|
14
|
-
|
15
|
-
|
16
|
-
|
10
|
+
view.call(view_context: view_context, &block)
|
11
|
+
end
|
12
|
+
|
13
|
+
def view_context
|
14
|
+
nil
|
17
15
|
end
|
18
16
|
end
|
19
17
|
end
|
data/lib/phlex/unbuffered.rb
CHANGED
@@ -1,51 +1,49 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
end
|
8
|
-
|
9
|
-
def inspect
|
10
|
-
"Unbuffered(#{@object.class.name})[object: #{@object.inspect}]"
|
11
|
-
end
|
3
|
+
class Phlex::Unbuffered < BasicObject
|
4
|
+
def initialize(object)
|
5
|
+
@object = object
|
6
|
+
end
|
12
7
|
|
13
|
-
|
14
|
-
|
15
|
-
|
8
|
+
def inspect
|
9
|
+
"Unbuffered(#{@object.class.name})[object: #{@object.inspect}]"
|
10
|
+
end
|
16
11
|
|
17
|
-
|
18
|
-
|
12
|
+
# Borrow some important methods from Object
|
13
|
+
define_method :__class__,
|
14
|
+
::Object.instance_method(:class)
|
19
15
|
|
20
|
-
|
21
|
-
|
22
|
-
end
|
16
|
+
define_method :__public_send__,
|
17
|
+
::Object.instance_method(:public_send)
|
23
18
|
|
24
|
-
|
25
|
-
|
19
|
+
def respond_to_missing?(...)
|
20
|
+
@object.respond_to?(...)
|
21
|
+
end
|
26
22
|
|
27
|
-
|
28
|
-
|
29
|
-
end
|
23
|
+
def method_missing(name, *args, **kwargs, &block)
|
24
|
+
if @object.respond_to?(name)
|
30
25
|
|
31
|
-
|
32
|
-
|
33
|
-
else
|
34
|
-
super
|
26
|
+
__class__.define_method(name) do |*a, **k, &b|
|
27
|
+
@object.capture { @object.public_send(name, *a, **k, &b) }
|
35
28
|
end
|
36
|
-
end
|
37
29
|
|
38
|
-
|
39
|
-
|
40
|
-
|
30
|
+
# Now we've defined this missing method, we can call it.
|
31
|
+
__public_send__(name, *args, **kwargs, &block)
|
32
|
+
else
|
33
|
+
super
|
41
34
|
end
|
35
|
+
end
|
42
36
|
|
43
|
-
|
44
|
-
|
45
|
-
|
37
|
+
# Forward some methods to the original underlying method
|
38
|
+
def call(...)
|
39
|
+
@object.call(...)
|
40
|
+
end
|
46
41
|
|
47
|
-
|
48
|
-
|
49
|
-
|
42
|
+
def send(...)
|
43
|
+
@object.send(...)
|
44
|
+
end
|
45
|
+
|
46
|
+
def public_send(...)
|
47
|
+
@object.public_send(...)
|
50
48
|
end
|
51
49
|
end
|
data/lib/phlex/version.rb
CHANGED
data/lib/phlex.rb
CHANGED
@@ -6,7 +6,11 @@ require "concurrent"
|
|
6
6
|
|
7
7
|
module Phlex
|
8
8
|
Loader = Zeitwerk::Loader.for_gem(warn_on_extra_files: false).tap do |loader|
|
9
|
-
loader.inflector.inflect(
|
9
|
+
loader.inflector.inflect(
|
10
|
+
"html" => "HTML",
|
11
|
+
"svg" => "SVG",
|
12
|
+
"sgml" => "SGML"
|
13
|
+
)
|
10
14
|
loader.ignore("#{__dir__}/phlex/testing")
|
11
15
|
loader.setup
|
12
16
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: phlex
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joel Drapper
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-02-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: concurrent-ruby
|
@@ -59,10 +59,8 @@ files:
|
|
59
59
|
- fixtures/layout.rb
|
60
60
|
- fixtures/page.rb
|
61
61
|
- fixtures/view_helper.rb
|
62
|
-
- lib/overrides/symbol/name.rb
|
63
62
|
- lib/phlex.rb
|
64
63
|
- lib/phlex/black_hole.rb
|
65
|
-
- lib/phlex/buffered.rb
|
66
64
|
- lib/phlex/callable.rb
|
67
65
|
- lib/phlex/deferred_render.rb
|
68
66
|
- lib/phlex/elements.rb
|
@@ -70,6 +68,10 @@ files:
|
|
70
68
|
- lib/phlex/html.rb
|
71
69
|
- lib/phlex/html/standard_elements.rb
|
72
70
|
- lib/phlex/html/void_elements.rb
|
71
|
+
- lib/phlex/overrides/symbol/name.rb
|
72
|
+
- lib/phlex/sgml.rb
|
73
|
+
- lib/phlex/svg.rb
|
74
|
+
- lib/phlex/svg/standard_elements.rb
|
73
75
|
- lib/phlex/testing/view_helper.rb
|
74
76
|
- lib/phlex/unbuffered.rb
|
75
77
|
- lib/phlex/version.rb
|
@@ -99,7 +101,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
99
101
|
- !ruby/object:Gem::Version
|
100
102
|
version: '0'
|
101
103
|
requirements: []
|
102
|
-
rubygems_version: 3.
|
104
|
+
rubygems_version: 3.4.6
|
103
105
|
signing_key:
|
104
106
|
specification_version: 4
|
105
107
|
summary: A framework for building views in Ruby.
|
data/lib/phlex/buffered.rb
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "delegate"
|
4
|
-
|
5
|
-
module Phlex
|
6
|
-
class Buffered < SimpleDelegator
|
7
|
-
def initialize(object, buffer:)
|
8
|
-
super(object)
|
9
|
-
@buffer = buffer
|
10
|
-
end
|
11
|
-
|
12
|
-
# Alias output methods to this
|
13
|
-
def __output_method__(...)
|
14
|
-
output = __getobj__.public_send(__callee__, ...)
|
15
|
-
@buffer << output if output.is_a? String
|
16
|
-
nil
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|