vita 0.2.0 → 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/README.md +2 -0
- data/lib/vita/garden.rb +9 -1
- data/lib/vita/server.rb +11 -0
- data/lib/vita/version.rb +1 -1
- data/lib/vita/watcher.rb +13 -0
- data/lib/vita.rb +1 -0
- data/templates/note.html.erb +5 -0
- metadata +33 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1718643c6633bbe89990a662fd29739153a7233dd21352d8784b7af27a74383a
|
4
|
+
data.tar.gz: 89cf60afa27e2b06d8d43251c9ebe64f81a2f7b19ac8c3ecc154acd95af77943
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 18f962183bc9bf35ca240b8820ca882770b6edc3b82d0a183f3adf6553044c207ec3705dc2f6098e2113618ac9258c0d6e39c8356fd4d383989cf8cb0aed3303
|
7
|
+
data.tar.gz: e129b89cc3194e9eca15fdb1e14a786150df89a53c278fef0f250e0449d520e09f2dad7a2913158bc532736fad5d8f4b24d0bfd24dcd85d6986a7e9e46280cdd
|
data/README.md
CHANGED
data/lib/vita/garden.rb
CHANGED
@@ -15,7 +15,11 @@ module Vita
|
|
15
15
|
raise Vita::Error.new("Directory not found at #{root}")
|
16
16
|
end
|
17
17
|
|
18
|
-
Dir[
|
18
|
+
Dir[note_filename_pattern(root)].map { |filename| Note.new(filename) }
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.note_filename_pattern(root)
|
22
|
+
File.join(root, "*.*")
|
19
23
|
end
|
20
24
|
|
21
25
|
def initialize(root, notes)
|
@@ -56,6 +60,10 @@ module Vita
|
|
56
60
|
links.filter { |link| link.to_note == note }
|
57
61
|
end
|
58
62
|
|
63
|
+
def note_filename_pattern
|
64
|
+
self.class.note_filename_pattern(root)
|
65
|
+
end
|
66
|
+
|
59
67
|
private
|
60
68
|
|
61
69
|
def notes=(notes)
|
data/lib/vita/server.rb
CHANGED
@@ -1,7 +1,10 @@
|
|
1
1
|
require "sinatra"
|
2
|
+
require "sinatra/streaming"
|
2
3
|
|
3
4
|
module Vita
|
4
5
|
class Server < Sinatra::Base
|
6
|
+
helpers Sinatra::Streaming
|
7
|
+
|
5
8
|
def self.await_startup
|
6
9
|
sleep 0.1 until settings.running?
|
7
10
|
end
|
@@ -25,6 +28,14 @@ module Vita
|
|
25
28
|
end
|
26
29
|
end
|
27
30
|
|
31
|
+
get "/events", provides: "text/event-stream" do
|
32
|
+
stream do |out|
|
33
|
+
Watcher.new(garden).watch do
|
34
|
+
out << "event: change\ndata: {}\n\n"
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
28
39
|
get "/:path.html" do |path|
|
29
40
|
note = garden.note_at_path("#{path}.html")
|
30
41
|
|
data/lib/vita/version.rb
CHANGED
data/lib/vita/watcher.rb
ADDED
data/lib/vita.rb
CHANGED
data/templates/note.html.erb
CHANGED
@@ -16,6 +16,7 @@
|
|
16
16
|
<script defer src="https://unpkg.com/htmx.org@1.9.10"></script>
|
17
17
|
</head>
|
18
18
|
<body>
|
19
|
+
<div hx-trigger="sse:change" hx-get="/<%= h note.path %>" hx-target="body">
|
19
20
|
<nav class="navbar bg-body-tertiary mb-3">
|
20
21
|
<div class="container">
|
21
22
|
<a class="navbar-brand" href="/">
|
@@ -70,10 +71,14 @@
|
|
70
71
|
</div>
|
71
72
|
</div>
|
72
73
|
</div>
|
74
|
+
</div>
|
73
75
|
<script defer>
|
74
76
|
if (location.protocol !== "file:") {
|
75
77
|
document.body.setAttribute('hx-boost', true);
|
76
78
|
}
|
79
|
+
if (location.port === "9000") {
|
80
|
+
document.body.setAttribute('hx-sse', 'connect:/events');
|
81
|
+
}
|
77
82
|
</script>
|
78
83
|
</body>
|
79
84
|
</html>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vita
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alec Cursley
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-03-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: redcarpet
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '4.0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: sinatra-contrib
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '4.0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '4.0'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: rackup
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -94,6 +108,20 @@ dependencies:
|
|
94
108
|
- - "~>"
|
95
109
|
- !ruby/object:Gem::Version
|
96
110
|
version: '6.4'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: filewatcher
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '2.1'
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '2.1'
|
97
125
|
- !ruby/object:Gem::Dependency
|
98
126
|
name: rake
|
99
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -170,14 +198,14 @@ dependencies:
|
|
170
198
|
requirements:
|
171
199
|
- - "~>"
|
172
200
|
- !ruby/object:Gem::Version
|
173
|
-
version: 1.
|
201
|
+
version: 1.35.1
|
174
202
|
type: :development
|
175
203
|
prerelease: false
|
176
204
|
version_requirements: !ruby/object:Gem::Requirement
|
177
205
|
requirements:
|
178
206
|
- - "~>"
|
179
207
|
- !ruby/object:Gem::Version
|
180
|
-
version: 1.
|
208
|
+
version: 1.35.1
|
181
209
|
description:
|
182
210
|
email:
|
183
211
|
- alec@cursley.net
|
@@ -210,6 +238,7 @@ files:
|
|
210
238
|
- lib/vita/rendering_context.rb
|
211
239
|
- lib/vita/server.rb
|
212
240
|
- lib/vita/version.rb
|
241
|
+
- lib/vita/watcher.rb
|
213
242
|
- templates/note.html.erb
|
214
243
|
homepage: https://github.com/cursley/vita
|
215
244
|
licenses:
|