lownode 0.5.2 → 0.5.4

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: baff3ab2842de9d3e8a395ab89cb68bac58bbd0916f55981cfd53f71d44c3cf8
4
- data.tar.gz: 508ba8d387fbc7a94002a5e3f5d405c42d78c4d6763f3522f715cd200737a0cb
3
+ metadata.gz: 0c9876da61a9ae1d20d48fb9c6596b4656d7e5e183e9ec5ca4ff257cc573c4a7
4
+ data.tar.gz: 520075c48ad0fab6b3a868cc752a80d9fe932d8c0505fd96529ed0e7976b20ee
5
5
  SHA512:
6
- metadata.gz: b5685b9ac1b58d7f29fc0c557b14ed25ef9c75576e72f71552b4974199d465e2da12818fe71a0f73008059493797ca1a42ccc2dd19c3a3078e3eb54c5a44a2dc
7
- data.tar.gz: bb79da2d930fc5a743952eb8ac4a9864a4a44d92abf05cf7385306d458ee36ad5d6c5b81bffd69645abf14952de66e506eba845afeb9efd4b4879065a54cd7e3
6
+ metadata.gz: a5d2352882e064c18e1616bc3786d08bc2961d7c64327be13f48ae644f7b39847af94abea865cf87060d7ac34c5a5012166ac6f721282685a097492a9a3cbd41
7
+ data.tar.gz: a37d2ac038ce23bea6543f17d732daa1d25f4322df915acf6c61fa78babede6c24444070571251353d68a74b6a14105ef3aaf107adc54af565683ebaa76d00e0
data/lib/lownode.rb CHANGED
@@ -3,7 +3,6 @@
3
3
  require 'observers'
4
4
  require 'lowtype'
5
5
  require 'lowevent'
6
- require 'lowloop' # TODO: ResponseFactory should be done in LowLoop, which is where the class lives already anyway.
7
6
 
8
7
  require_relative 'templates/renderer'
9
8
 
@@ -1,6 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative 'template'
4
+ require 'antlers/keywords'
5
+ require 'protocol/http'
4
6
 
5
7
  module Low
6
8
  module Templates
@@ -32,15 +34,15 @@ module Low
32
34
  end
33
35
 
34
36
  module ClassMethods
35
- # Accepts all arguments but only sends arguments required by the sub class.
36
- def render(**)
37
+ # Accepts all arguments but only sends each method the arguments it takes, like initialize(limit:) and render(event:).
38
+ def render(**kwargs)
37
39
  # GOAL: Make return value configurable; ResponseEvent, Response, or body.
38
- body = response_body(**)
40
+ body = response_body(**kwargs)
39
41
 
40
42
  return if body.nil? || body == ''
41
43
 
42
- # TODO: ResponseFactory should be done in LowLoop, which is where the class lives already anyway.
43
- response = Low::ResponseFactory.html(body:)
44
+ headers = Protocol::HTTP::Headers.new([['content-type', 'text/html']])
45
+ response = Protocol::HTTP::Response.new('HTTP/1.1', response_status(kwargs[:event]), headers, Protocol::HTTP::Body::Buffered.wrap(body.strip))
44
46
  Low::Events::ResponseEvent.new(response:).tap(&:branch)
45
47
  end
46
48
 
@@ -56,13 +58,16 @@ module Low
56
58
 
57
59
  private
58
60
 
59
- def response_body(**kwargs)
60
- node = new(**kwargs)
61
+ # Responses default to 200 but when rendering for a StatusEvent use that event's status code.
62
+ def response_status(event)
63
+ event.is_a?(Low::Events::StatusEvent) ? event.status.status_code : 200
64
+ end
61
65
 
66
+ def response_body(**kwargs)
67
+ node = new(**Antlers::Keywords.accepted(instance_method(:initialize), kwargs))
62
68
  return node.render_template(**kwargs) if @template
63
- return node.render(**kwargs) if node.method(:render).arity > 0
64
69
 
65
- node.render
70
+ node.render(**Antlers::Keywords.accepted(node.method(:render), kwargs))
66
71
  end
67
72
  end
68
73
  end
data/lib/version.rb CHANGED
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Low
4
4
  module Node
5
- VERSION = '0.5.2'
5
+ VERSION = '0.5.4'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lownode
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.2
4
+ version: 0.5.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - maedi
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2026-10-17 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
- name: lowevent
13
+ name: protocol-http
14
14
  requirement: !ruby/object:Gem::Requirement
15
15
  requirements:
16
16
  - - ">="
@@ -24,7 +24,7 @@ dependencies:
24
24
  - !ruby/object:Gem::Version
25
25
  version: '0'
26
26
  - !ruby/object:Gem::Dependency
27
- name: lowloop
27
+ name: lowevent
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
30
30
  - - ">="
@@ -43,28 +43,28 @@ dependencies:
43
43
  requirements:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: '1.5'
46
+ version: '1.6'
47
47
  type: :runtime
48
48
  prerelease: false
49
49
  version_requirements: !ruby/object:Gem::Requirement
50
50
  requirements:
51
51
  - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: '1.5'
53
+ version: '1.6'
54
54
  - !ruby/object:Gem::Dependency
55
55
  name: antlers
56
56
  requirement: !ruby/object:Gem::Requirement
57
57
  requirements:
58
- - - ">="
58
+ - - "~>"
59
59
  - !ruby/object:Gem::Version
60
- version: '0'
60
+ version: 1.2.1
61
61
  type: :runtime
62
62
  prerelease: false
63
63
  version_requirements: !ruby/object:Gem::Requirement
64
64
  requirements:
65
- - - ">="
65
+ - - "~>"
66
66
  - !ruby/object:Gem::Version
67
- version: '0'
67
+ version: 1.2.1
68
68
  - !ruby/object:Gem::Dependency
69
69
  name: observers
70
70
  requirement: !ruby/object:Gem::Requirement
@@ -108,7 +108,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
108
108
  - !ruby/object:Gem::Version
109
109
  version: '0'
110
110
  requirements: []
111
- rubygems_version: 3.6.2
111
+ rubygems_version: 4.0.6
112
112
  specification_version: 4
113
113
  summary: Flexible building blocks
114
114
  test_files: []