syntropy 0.9.2 → 0.10

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: 87551109e0882665af35d16b21a6cd12d1fc3bff3d8fbae1a24c8856a54ada08
4
- data.tar.gz: 3c9cf454a3489ca3b578f1574cf7c216b5b873ee6568ef7bcedfda1c369ba8e4
3
+ metadata.gz: 5a73932b30656f39aa80ecfdd0161a04bb6aff7d0895d24c092d89422bc5cebe
4
+ data.tar.gz: 07266a98667a5a9b45756d25a79abc0143f7f99f786fa8fde1e2a5d58f237392
5
5
  SHA512:
6
- metadata.gz: b96d96be5114528ab81ec1b385e7cf8d0562e916fedc8e984cbaddf72ab4e5c4ae490a951abe21dc0028d1222f2cdba2240e1128ce3fa0f93d1ba5f893f3b965
7
- data.tar.gz: 22cb63958b159665caa8132ae2f03c33afb2f4248c797852a0c2d66a460247fea98a769a5cf649a42a0c8b476cf0ae727ca9f35426c0342bf4dd7b1ac1959520
6
+ metadata.gz: e84b35bff3fd83e038488aa581710c79dd23adaa11777cdb2872fc06562f3e79e2ce000afd270677feaead75cff90a07a8e88f312b4fae4fcd4772cfa3b3c228
7
+ data.tar.gz: b8788e723ca3108c78e65bcd445fa91184e0835f602b1fdb46bf06add11681e61cc1429f6e9f72f415bc33b1b80e9dc7e56587881c02401e0e5ecde5d0551714
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## 0.10 2025-08-10
2
+
3
+ - Add query, execute methods to ConnectionPool
4
+ - Switch from Papercraft to P2
5
+
1
6
  ## 0.9.2 2025-07-24
2
7
 
3
8
  - Fix logging
data/README.md CHANGED
@@ -42,8 +42,7 @@ Syntropy is based on:
42
42
  concurrent Ruby apps.
43
43
  - [Qeweney](https://github.com/digital-fabric/qeweney) a uniform interface for
44
44
  working with HTTP requests and responses.
45
- - [Papercraft](https://github.com/digital-fabric/papercraft) HTML templating
46
- with plain Ruby.
45
+ - [P2](https://github.com/digital-fabric/p2) HTML templating with plain Ruby.
47
46
  - [Extralite](https://github.com/digital-fabric/extralite) a fast and innovative
48
47
  SQLite wrapper for Ruby.
49
48
 
data/lib/syntropy/app.rb CHANGED
@@ -4,7 +4,7 @@ require 'json'
4
4
  require 'yaml'
5
5
 
6
6
  require 'qeweney'
7
- require 'papercraft'
7
+ require 'p2'
8
8
 
9
9
  require 'syntropy/errors'
10
10
  require 'syntropy/file_watch'
@@ -139,7 +139,7 @@ module Syntropy
139
139
  def load_module(entry)
140
140
  ref = entry[:fn].gsub(%r{^#{@location}/}, '').gsub(/\.rb$/, '')
141
141
  o = @module_loader.load(ref)
142
- o.is_a?(Papercraft::Template) ? wrap_template(o) : o
142
+ o.is_a?(P2::Template) ? wrap_template(o) : o
143
143
  rescue Exception => e
144
144
  @opts[:logger]&.error(
145
145
  message: "Error while loading module #{ref}",
@@ -148,9 +148,10 @@ module Syntropy
148
148
  :invalid
149
149
  end
150
150
 
151
- def wrap_template(template)
151
+ def wrap_template(wrapper)
152
+ template = wrapper.proc
152
153
  lambda { |req|
153
- headers = { 'Content-Type' => template.mime_type }
154
+ headers = { 'Content-Type' => 'text/html' }
154
155
  req.respond_by_http_method(
155
156
  'head' => [nil, headers],
156
157
  'get' => -> { [template.render, headers] }
@@ -165,7 +166,7 @@ module Syntropy
165
166
  layout = @module_loader.load("_layout/#{atts[:layout]}")
166
167
  html = layout.apply(**atts) { emit_markdown(md) }.render
167
168
  else
168
- html = Papercraft.markdown(md)
169
+ html = P2.markdown(md)
169
170
  end
170
171
  html
171
172
  end
@@ -31,6 +31,14 @@ module Syntropy
31
31
  end
32
32
  end
33
33
 
34
+ def query(sql, *, **, &)
35
+ with_db { it.query(sql, *, **, &) }
36
+ end
37
+
38
+ def execute(sql, *, **)
39
+ with_db { it.execute(sql, *, **) }
40
+ end
41
+
34
42
  private
35
43
 
36
44
  def checkout
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'papercraft'
3
+ require 'p2'
4
4
 
5
5
  module Syntropy
6
6
  class ModuleLoader
@@ -32,7 +32,7 @@ module Syntropy
32
32
 
33
33
  mod_body = IO.read(fn)
34
34
  mod_ctx = Class.new(Syntropy::Module)
35
- mod_ctx.prepare(loader: self, env: @env)
35
+ mod_ctx.prepare(loader: self, env: @env, ref: ref)
36
36
  mod_ctx.module_eval(mod_body, fn, 1)
37
37
 
38
38
  export_value = mod_ctx.__export_value__
@@ -64,10 +64,11 @@ module Syntropy
64
64
  end
65
65
 
66
66
  class << self
67
- def prepare(loader:, env:)
67
+ def prepare(loader:, env:, ref:)
68
68
  @loader = loader
69
69
  @env = env
70
70
  @machine = env[:machine]
71
+ @ref = ref
71
72
  const_set(:MODULE, self)
72
73
  end
73
74
 
@@ -81,9 +82,13 @@ module Syntropy
81
82
  @__export_value__ = ref
82
83
  end
83
84
 
84
- def template(&block)
85
- Papercraft.html(&block)
85
+ def template(proc = nil, &block)
86
+ proc ||= block
87
+ raise "No template block/proc given" if !proc
88
+
89
+ P2::Template.new(proc)
86
90
  end
91
+ alias_method :html, :template
87
92
 
88
93
  def route_by_host(map = nil)
89
94
  root = @env[:location]
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Syntropy
4
- VERSION = '0.9.2'
4
+ VERSION = '0.10'
5
5
  end
data/syntropy.gemspec CHANGED
@@ -21,9 +21,9 @@ Gem::Specification.new do |s|
21
21
  s.required_ruby_version = '>= 3.4'
22
22
  s.executables = ['syntropy']
23
23
 
24
- s.add_dependency 'extralite', '2.12'
25
- s.add_dependency 'json', '2.12.2'
26
- s.add_dependency 'papercraft', '1.4'
24
+ s.add_dependency 'extralite', '2.13'
25
+ s.add_dependency 'json', '2.13.2'
26
+ s.add_dependency 'p2', '2.4'
27
27
  s.add_dependency 'qeweney', '0.21'
28
28
  s.add_dependency 'tp2', '0.14.1'
29
29
  s.add_dependency 'uringmachine', '0.16'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: syntropy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.2
4
+ version: '0.10'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sharon Rosner
@@ -15,42 +15,42 @@ dependencies:
15
15
  requirements:
16
16
  - - '='
17
17
  - !ruby/object:Gem::Version
18
- version: '2.12'
18
+ version: '2.13'
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - '='
24
24
  - !ruby/object:Gem::Version
25
- version: '2.12'
25
+ version: '2.13'
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: json
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
30
30
  - - '='
31
31
  - !ruby/object:Gem::Version
32
- version: 2.12.2
32
+ version: 2.13.2
33
33
  type: :runtime
34
34
  prerelease: false
35
35
  version_requirements: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - '='
38
38
  - !ruby/object:Gem::Version
39
- version: 2.12.2
39
+ version: 2.13.2
40
40
  - !ruby/object:Gem::Dependency
41
- name: papercraft
41
+ name: p2
42
42
  requirement: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - '='
45
45
  - !ruby/object:Gem::Version
46
- version: '1.4'
46
+ version: '2.4'
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.4'
53
+ version: '2.4'
54
54
  - !ruby/object:Gem::Dependency
55
55
  name: qeweney
56
56
  requirement: !ruby/object:Gem::Requirement
@@ -258,7 +258,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
258
258
  - !ruby/object:Gem::Version
259
259
  version: '0'
260
260
  requirements: []
261
- rubygems_version: 3.6.8
261
+ rubygems_version: 3.6.9
262
262
  specification_version: 4
263
263
  summary: Syntropic Web Framework
264
264
  test_files: []