syntropy 0.28.2 → 0.30.0
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 +4 -4
- data/.github/workflows/test.yml +2 -2
- data/.ruby-version +1 -0
- data/CHANGELOG.md +11 -0
- data/README.md +0 -4
- data/bin/syntropy +2 -3
- data/cmd/setup/template/site/Dockerfile +1 -1
- data/lib/syntropy/app.rb +22 -14
- data/lib/syntropy/errors.rb +23 -10
- data/lib/syntropy/http/connection.rb +396 -0
- data/lib/syntropy/http/server.rb +174 -0
- data/lib/syntropy/http/status.rb +76 -0
- data/lib/syntropy/http.rb +5 -0
- data/lib/syntropy/json_api.rb +2 -5
- data/lib/syntropy/logger.rb +103 -0
- data/lib/syntropy/mime_types.rb +37 -0
- data/lib/syntropy/request/mock_adapter.rb +58 -0
- data/lib/syntropy/request/request_info.rb +236 -0
- data/lib/syntropy/request/response.rb +206 -0
- data/lib/syntropy/{request_extensions.rb → request/validation.rb} +4 -147
- data/lib/syntropy/request.rb +99 -0
- data/lib/syntropy/utils.rb +1 -1
- data/lib/syntropy/version.rb +1 -1
- data/lib/syntropy.rb +53 -5
- data/syntropy.gemspec +5 -7
- data/test/app/about/_error.rb +1 -1
- data/test/app/api+.rb +1 -1
- data/test/app_custom/_site.rb +1 -1
- data/test/bm_router_proc.rb +3 -3
- data/test/helper.rb +12 -7
- data/test/test_app.rb +30 -30
- data/test/test_caching.rb +2 -2
- data/test/test_connection.rb +649 -0
- data/test/test_errors.rb +6 -6
- data/test/test_json_api.rb +10 -8
- data/test/test_mock_adapter.rb +59 -0
- data/test/test_request_info.rb +90 -0
- data/test/test_response.rb +112 -0
- data/test/test_server.rb +336 -0
- metadata +34 -34
- data/lib/syntropy/file_watch.rb +0 -28
- data/test/test_file_watch.rb +0 -36
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.
|
|
4
|
+
version: 0.30.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Sharon Rosner
|
|
@@ -38,61 +38,47 @@ dependencies:
|
|
|
38
38
|
- !ruby/object:Gem::Version
|
|
39
39
|
version: 3.2.0
|
|
40
40
|
- !ruby/object:Gem::Dependency
|
|
41
|
-
name:
|
|
42
|
-
requirement: !ruby/object:Gem::Requirement
|
|
43
|
-
requirements:
|
|
44
|
-
- - "~>"
|
|
45
|
-
- !ruby/object:Gem::Version
|
|
46
|
-
version: '0.24'
|
|
47
|
-
type: :runtime
|
|
48
|
-
prerelease: false
|
|
49
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
50
|
-
requirements:
|
|
51
|
-
- - "~>"
|
|
52
|
-
- !ruby/object:Gem::Version
|
|
53
|
-
version: '0.24'
|
|
54
|
-
- !ruby/object:Gem::Dependency
|
|
55
|
-
name: tp2
|
|
41
|
+
name: uringmachine
|
|
56
42
|
requirement: !ruby/object:Gem::Requirement
|
|
57
43
|
requirements:
|
|
58
44
|
- - "~>"
|
|
59
45
|
- !ruby/object:Gem::Version
|
|
60
|
-
version: 0.
|
|
46
|
+
version: 1.0.0
|
|
61
47
|
type: :runtime
|
|
62
48
|
prerelease: false
|
|
63
49
|
version_requirements: !ruby/object:Gem::Requirement
|
|
64
50
|
requirements:
|
|
65
51
|
- - "~>"
|
|
66
52
|
- !ruby/object:Gem::Version
|
|
67
|
-
version: 0.
|
|
53
|
+
version: 1.0.0
|
|
68
54
|
- !ruby/object:Gem::Dependency
|
|
69
|
-
name:
|
|
55
|
+
name: cgi
|
|
70
56
|
requirement: !ruby/object:Gem::Requirement
|
|
71
57
|
requirements:
|
|
72
|
-
- - "
|
|
58
|
+
- - ">="
|
|
73
59
|
- !ruby/object:Gem::Version
|
|
74
|
-
version: 0
|
|
60
|
+
version: '0'
|
|
75
61
|
type: :runtime
|
|
76
62
|
prerelease: false
|
|
77
63
|
version_requirements: !ruby/object:Gem::Requirement
|
|
78
64
|
requirements:
|
|
79
|
-
- - "
|
|
65
|
+
- - ">="
|
|
80
66
|
- !ruby/object:Gem::Version
|
|
81
|
-
version: 0
|
|
67
|
+
version: '0'
|
|
82
68
|
- !ruby/object:Gem::Dependency
|
|
83
|
-
name:
|
|
69
|
+
name: escape_utils
|
|
84
70
|
requirement: !ruby/object:Gem::Requirement
|
|
85
71
|
requirements:
|
|
86
|
-
- -
|
|
72
|
+
- - '='
|
|
87
73
|
- !ruby/object:Gem::Version
|
|
88
|
-
version: 3.
|
|
74
|
+
version: 1.3.0
|
|
89
75
|
type: :runtime
|
|
90
76
|
prerelease: false
|
|
91
77
|
version_requirements: !ruby/object:Gem::Requirement
|
|
92
78
|
requirements:
|
|
93
|
-
- -
|
|
79
|
+
- - '='
|
|
94
80
|
- !ruby/object:Gem::Version
|
|
95
|
-
version: 3.
|
|
81
|
+
version: 1.3.0
|
|
96
82
|
- !ruby/object:Gem::Dependency
|
|
97
83
|
name: json
|
|
98
84
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -159,6 +145,7 @@ files:
|
|
|
159
145
|
- ".github/workflows/test.yml"
|
|
160
146
|
- ".gitignore"
|
|
161
147
|
- ".rubocop.yml"
|
|
148
|
+
- ".ruby-version"
|
|
162
149
|
- CHANGELOG.md
|
|
163
150
|
- Gemfile
|
|
164
151
|
- LICENSE
|
|
@@ -212,12 +199,21 @@ files:
|
|
|
212
199
|
- lib/syntropy/connection_pool.rb
|
|
213
200
|
- lib/syntropy/dev_mode.rb
|
|
214
201
|
- lib/syntropy/errors.rb
|
|
215
|
-
- lib/syntropy/
|
|
202
|
+
- lib/syntropy/http.rb
|
|
203
|
+
- lib/syntropy/http/connection.rb
|
|
204
|
+
- lib/syntropy/http/server.rb
|
|
205
|
+
- lib/syntropy/http/status.rb
|
|
216
206
|
- lib/syntropy/json_api.rb
|
|
207
|
+
- lib/syntropy/logger.rb
|
|
217
208
|
- lib/syntropy/markdown.rb
|
|
209
|
+
- lib/syntropy/mime_types.rb
|
|
218
210
|
- lib/syntropy/module.rb
|
|
219
211
|
- lib/syntropy/papercraft_extensions.rb
|
|
220
|
-
- lib/syntropy/
|
|
212
|
+
- lib/syntropy/request.rb
|
|
213
|
+
- lib/syntropy/request/mock_adapter.rb
|
|
214
|
+
- lib/syntropy/request/request_info.rb
|
|
215
|
+
- lib/syntropy/request/response.rb
|
|
216
|
+
- lib/syntropy/request/validation.rb
|
|
221
217
|
- lib/syntropy/routing_tree.rb
|
|
222
218
|
- lib/syntropy/side_run.rb
|
|
223
219
|
- lib/syntropy/utils.rb
|
|
@@ -259,13 +255,17 @@ files:
|
|
|
259
255
|
- test/run.rb
|
|
260
256
|
- test/test_app.rb
|
|
261
257
|
- test/test_caching.rb
|
|
258
|
+
- test/test_connection.rb
|
|
262
259
|
- test/test_connection_pool.rb
|
|
263
260
|
- test/test_errors.rb
|
|
264
|
-
- test/test_file_watch.rb
|
|
265
261
|
- test/test_json_api.rb
|
|
262
|
+
- test/test_mock_adapter.rb
|
|
266
263
|
- test/test_module.rb
|
|
267
264
|
- test/test_request_extensions.rb
|
|
265
|
+
- test/test_request_info.rb
|
|
266
|
+
- test/test_response.rb
|
|
268
267
|
- test/test_routing_tree.rb
|
|
268
|
+
- test/test_server.rb
|
|
269
269
|
- test/test_side_run.rb
|
|
270
270
|
homepage: https://github.com/digital-fabric/syntropy
|
|
271
271
|
licenses:
|
|
@@ -273,10 +273,10 @@ licenses:
|
|
|
273
273
|
metadata:
|
|
274
274
|
homepage_uri: https://github.com/digital-fabric/syntropy
|
|
275
275
|
documentation_uri: https://www.rubydoc.info/gems/syntropy
|
|
276
|
-
changelog_uri: https://github.com/digital-fabric/syntropy/blob/
|
|
276
|
+
changelog_uri: https://github.com/digital-fabric/syntropy/blob/main/CHANGELOG.md
|
|
277
277
|
rdoc_options:
|
|
278
278
|
- "--title"
|
|
279
|
-
-
|
|
279
|
+
- Syntropy
|
|
280
280
|
- "--main"
|
|
281
281
|
- README.md
|
|
282
282
|
require_paths:
|
|
@@ -292,7 +292,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
292
292
|
- !ruby/object:Gem::Version
|
|
293
293
|
version: '0'
|
|
294
294
|
requirements: []
|
|
295
|
-
rubygems_version: 4.0.
|
|
295
|
+
rubygems_version: 4.0.6
|
|
296
296
|
specification_version: 4
|
|
297
297
|
summary: Syntropic Web Framework
|
|
298
298
|
test_files: []
|
data/lib/syntropy/file_watch.rb
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Syntropy
|
|
4
|
-
def self.file_watch(machine, *roots, period: 0.1, &block)
|
|
5
|
-
raise 'Missing root paths' if roots.empty?
|
|
6
|
-
|
|
7
|
-
require 'listen'
|
|
8
|
-
|
|
9
|
-
queue = Thread::Queue.new
|
|
10
|
-
listener = Listen.to(*roots) do |modified, added, removed|
|
|
11
|
-
modified.each { queue.push([:modified, it]) }
|
|
12
|
-
added.each { queue.push([:added, it]) }
|
|
13
|
-
removed.each { queue.push([:removed, it]) }
|
|
14
|
-
end
|
|
15
|
-
listener.start
|
|
16
|
-
|
|
17
|
-
loop do
|
|
18
|
-
machine.sleep(period) while queue.empty?
|
|
19
|
-
event, fn = queue.shift
|
|
20
|
-
block.call(event, fn)
|
|
21
|
-
end
|
|
22
|
-
rescue StandardError => e
|
|
23
|
-
p e
|
|
24
|
-
p e.backtrace
|
|
25
|
-
ensure
|
|
26
|
-
listener.stop
|
|
27
|
-
end
|
|
28
|
-
end
|
data/test/test_file_watch.rb
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'fileutils'
|
|
4
|
-
require_relative 'helper'
|
|
5
|
-
|
|
6
|
-
class FileWatchTest < Minitest::Test
|
|
7
|
-
def setup
|
|
8
|
-
@machine = UM.new
|
|
9
|
-
@root = "/tmp/syntropy/#{rand(1000000).to_s(16)}"
|
|
10
|
-
FileUtils.mkdir_p(@root)
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
def test_file_watch
|
|
14
|
-
queue = UM::Queue.new
|
|
15
|
-
|
|
16
|
-
f = @machine.spin do
|
|
17
|
-
Syntropy.file_watch(@machine, @root, period: 0.01) { |event, fn| @machine.push(queue, [event, fn]) }
|
|
18
|
-
end
|
|
19
|
-
@machine.sleep(0.05)
|
|
20
|
-
assert_equal 0, queue.count
|
|
21
|
-
|
|
22
|
-
fn = File.join(@root, 'foo.bar')
|
|
23
|
-
IO.write(fn, 'abc')
|
|
24
|
-
assert_equal [:added, fn], @machine.shift(queue)
|
|
25
|
-
|
|
26
|
-
fn = File.join(@root, 'foo.bar')
|
|
27
|
-
IO.write(fn, 'def')
|
|
28
|
-
assert_equal [:modified, fn], @machine.shift(queue)
|
|
29
|
-
|
|
30
|
-
FileUtils.rm(fn)
|
|
31
|
-
assert_equal [:removed, fn], @machine.shift(queue)
|
|
32
|
-
ensure
|
|
33
|
-
@machine.schedule(f, UM::Terminate)
|
|
34
|
-
# @machine.join(f)
|
|
35
|
-
end
|
|
36
|
-
end
|