anatomy 0.2.16 → 0.3.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/lib/anatomy/server.ay +27 -23
- data/lib/anatomy/version.rb +1 -1
- metadata +27 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 47f62f1faa26500750a8f1f6f0527b4be80ffae5
|
4
|
+
data.tar.gz: 932e0b655fa5ab2b23c8500ece2b3cd12907e9f2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0edd0cec8340c5fcf51aabf9ad53670ce1df40c1c120b4a1b9744c935e89fa2e2d1a92d19430fc0a6c554d2b43beb7668f6fa903f8b45e32dc27ded34d7a5eea
|
7
|
+
data.tar.gz: 81ebee66c67b1448522854f5553b058109ad51c74a6ee8966c00a491a2f40254a741fb98328cc64e1ca1ba2821d4006c8cdeb8e0e539537514893120838aa5f4
|
data/lib/anatomy/server.ay
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
use(require("atomy"))
|
2
2
|
|
3
3
|
require("webrick")
|
4
|
+
require("puma")
|
4
5
|
|
5
6
|
-- shim in svg content-type support
|
6
7
|
WEBrick HTTPUtils DefaultMimeTypes["svg"] = "image/svg+xml"
|
@@ -10,43 +11,47 @@ class(Server):
|
|
10
11
|
@mutex = Mutex new
|
11
12
|
|
12
13
|
def(Server serve(port)):
|
13
|
-
server =
|
14
|
+
server = Puma Server new(
|
15
|
+
[env]:
|
16
|
+
relative-path = env["REQUEST_PATH"] sub(r"^\/", "")
|
17
|
+
local-abs-path = File absolute-path(relative-path, @destination)
|
14
18
|
|
15
|
-
|
16
|
-
|
17
|
-
|
19
|
+
if(relative-path == "favicon.ico")
|
20
|
+
then: respond-to-favicon
|
21
|
+
else: respond-to-path(relative-path, local-abs-path)
|
22
|
+
)
|
18
23
|
|
19
|
-
|
20
|
-
then: respond-to-favicon(res)
|
21
|
-
else: respond-to-path(res, relative-path, local-abs-path)
|
24
|
+
server add-tcp-listener("0.0.0.0", port)
|
22
25
|
|
23
|
-
|
26
|
+
-- server mount-proc("/") [req, res]:
|
24
27
|
|
25
|
-
|
28
|
+
trap("INT"):
|
29
|
+
server stop
|
26
30
|
|
27
|
-
|
28
|
-
|
31
|
+
puts(i"serving on port #{port}")
|
32
|
+
server run(false)
|
29
33
|
|
30
|
-
def(Server respond-to-
|
34
|
+
def(Server respond-to-favicon()):
|
35
|
+
[404, #{}, []]
|
36
|
+
|
37
|
+
def(Server respond-to-path(relative-path, local-abs-path)):
|
31
38
|
do {
|
32
|
-
rebuild-if-needed
|
39
|
+
rebuild-if-needed
|
33
40
|
|
34
41
|
if(File directory?(local-abs-path))
|
35
|
-
then: respond-to-file(
|
36
|
-
else: respond-to-file(
|
42
|
+
then: respond-to-file(File join(local-abs-path, "index.html"))
|
43
|
+
else: respond-to-file(local-abs-path)
|
37
44
|
} rescue:
|
38
45
|
e:
|
39
46
|
message = i"#{e to-s}\n#{Rubinius Backtrace backtrace(e locations) show}"
|
40
47
|
puts(message)
|
41
|
-
respond-with-error(
|
48
|
+
respond-with-error(message)
|
42
49
|
|
43
|
-
def(Server respond-with-error(
|
44
|
-
|
45
|
-
res body = i"<pre>#{message}</pre>"
|
50
|
+
def(Server respond-with-error(message)):
|
51
|
+
[500, #{"Content-Type" -> "text/html"}, [i"<pre>#{message}</pre>"]]
|
46
52
|
|
47
|
-
def(Server respond-to-file(
|
48
|
-
|
49
|
-
res content-type = guess-content-type(local-abs-path)
|
53
|
+
def(Server respond-to-file(local-abs-path)):
|
54
|
+
[200, #{"Content-Type" -> guess-content-type(local-abs-path)}, [File read(local-abs-path)]]
|
50
55
|
|
51
56
|
def(Server guess-content-type(path)):
|
52
57
|
extension = File extname(path) sub(r"^\.", "")
|
@@ -54,7 +59,6 @@ def(Server guess-content-type(path)):
|
|
54
59
|
"application/octet-stream"
|
55
60
|
|
56
61
|
def(Server rebuild-if-needed):
|
57
|
-
-- Webrick is multi-threaded; guard against concurrent builds
|
58
62
|
@mutex synchronize:
|
59
63
|
when(@last-disk-state == disk-state):
|
60
64
|
return
|
data/lib/anatomy/version.rb
CHANGED
metadata
CHANGED
@@ -1,67 +1,81 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: anatomy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alex Suraci
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-08-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
prerelease: false
|
15
14
|
name: atomy
|
15
|
+
prerelease: false
|
16
16
|
type: :runtime
|
17
|
-
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
18
18
|
requirements:
|
19
19
|
- - "~>"
|
20
20
|
- !ruby/object:Gem::Version
|
21
21
|
version: 0.6.3
|
22
|
-
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 0.6.3
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
+
name: puma
|
28
29
|
prerelease: false
|
29
|
-
name: broomhlda
|
30
30
|
type: :runtime
|
31
|
+
requirement: !ruby/object:Gem::Requirement
|
32
|
+
requirements:
|
33
|
+
- - "~>"
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: '3.6'
|
31
36
|
version_requirements: !ruby/object:Gem::Requirement
|
32
37
|
requirements:
|
33
38
|
- - "~>"
|
34
39
|
- !ruby/object:Gem::Version
|
35
|
-
version:
|
40
|
+
version: '3.6'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: broomhlda
|
43
|
+
prerelease: false
|
44
|
+
type: :runtime
|
36
45
|
requirement: !ruby/object:Gem::Requirement
|
37
46
|
requirements:
|
38
47
|
- - "~>"
|
39
48
|
- !ruby/object:Gem::Version
|
40
49
|
version: 0.2.0
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 0.2.0
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
|
-
prerelease: false
|
43
56
|
name: json_pure
|
57
|
+
prerelease: false
|
44
58
|
type: :runtime
|
45
|
-
|
59
|
+
requirement: !ruby/object:Gem::Requirement
|
46
60
|
requirements:
|
47
61
|
- - "~>"
|
48
62
|
- !ruby/object:Gem::Version
|
49
63
|
version: '1.8'
|
50
|
-
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
65
|
requirements:
|
52
66
|
- - "~>"
|
53
67
|
- !ruby/object:Gem::Version
|
54
68
|
version: '1.8'
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
|
-
prerelease: false
|
57
70
|
name: rake
|
71
|
+
prerelease: false
|
58
72
|
type: :development
|
59
|
-
|
73
|
+
requirement: !ruby/object:Gem::Requirement
|
60
74
|
requirements:
|
61
75
|
- - "~>"
|
62
76
|
- !ruby/object:Gem::Version
|
63
77
|
version: '10.4'
|
64
|
-
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
79
|
requirements:
|
66
80
|
- - "~>"
|
67
81
|
- !ruby/object:Gem::Version
|