low_node 0.4.0 → 0.5.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3306c75f526286a539e171e60afec93be837c7e25047aa129b206351d61ef0ec
4
- data.tar.gz: adca6941b2fec856c5cfeeee62bc19522073cc4a19369977715af2476df424e5
3
+ metadata.gz: 0fdb440f3f4177ccfa14dc0a24712e7216272e402c1dc5a6c696fed295ba342d
4
+ data.tar.gz: 76013ec6f229b414571aae9672a1de344031ae5b81d4908949f873dcb90a33af
5
5
  SHA512:
6
- metadata.gz: c33df65970b91273bf362a342ad2f055479a34fab25025cf8583420552587bb93726a9344d2fe50ea971690f5d11b455c0daa0fc859fe966b874c5251bc0a467
7
- data.tar.gz: 1a8596590dbd4c8b033297b70d631f4f580e4d9ef342af20d937cd58d65e4f8e6a5e0bb4c58c7c519551e6f0d04fc4dfe28229d1146b0b55100745b65350dc73
6
+ metadata.gz: 6dc356d5a9e768491fd8e72990ac09ff4ce74367d58fb38e283e798fa943ae0f8bd12d34e87135c36797e1f2729b9181060bd066b35a3ec150f5ae977d173508
7
+ data.tar.gz: 793280b364412eb66e605d2091399cb6831e35e712fab1aa3d60f1fba00eb53f8a0c3447ed97ec0bb7dd8e02550d2206211cf330dfc8ea888a0f02a4dfd2fa4d
data/lib/low_node.rb CHANGED
@@ -3,7 +3,7 @@
3
3
  require 'observers'
4
4
  require 'low_type'
5
5
  require 'low_event'
6
- require 'low_loop' # TODO: Merge low loop's response factory into low event.
6
+ require 'low_loop' # TODO: ResponseFactory should be done in LowLoop, which is where the class lives already anyway.
7
7
 
8
8
  require_relative 'templates/renderer'
9
9
 
@@ -4,7 +4,7 @@ require_relative 'template'
4
4
 
5
5
  module Low
6
6
  module Templates
7
- # Use the Method Factory pattern to .render -> .new -> #initialize -> #render a low node.
7
+ # Use the Method Factory pattern to ".render -> .new -> #initialize -> #render" a low node.
8
8
  module Renderer
9
9
  # When render() contains RBX/Antlers then LowLoad builds a template to render with instead.
10
10
  def render_template(parent_binding: nil, slot_node: nil, props: {}, **kwargs)
@@ -27,10 +27,16 @@ module Low
27
27
  end
28
28
 
29
29
  module ClassMethods
30
+ # Accepts all arguments but only sends arguments required by the sub class.
30
31
  def render(**)
31
32
  # GOAL: Make return value configurable; ResponseEvent, Response, or body.
32
- response = Low::Factories::ResponseFactory.html(body: response_body(**))
33
- Low::Events::ResponseEvent.new(response:).tap { it.branch }
33
+ body = response_body(**)
34
+
35
+ return if body.nil? || body == ''
36
+
37
+ # TODO: ResponseFactory should be done in LowLoop, which is where the class lives already anyway.
38
+ response = Low::ResponseFactory.html(body:)
39
+ Low::Events::ResponseEvent.new(response:).tap(&:branch)
34
40
  end
35
41
 
36
42
  # LowLoad hook.
@@ -45,12 +51,13 @@ module Low
45
51
 
46
52
  private
47
53
 
48
- def response_body(**)
49
- node = new(**)
54
+ def response_body(**kwargs)
55
+ node = new(**kwargs)
50
56
 
51
- return node.render_template(**) if @template
57
+ return node.render_template(**kwargs) if @template
58
+ return node.render(**kwargs) if node.method(:render).arity > 0
52
59
 
53
- node.render(**)
60
+ node.render
54
61
  end
55
62
  end
56
63
  end
data/lib/version.rb CHANGED
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Low
4
4
  module Node
5
- VERSION = '0.4.0'
5
+ VERSION = '0.5.1'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: low_node
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - maedi