syntropy 0.34.4 → 0.35.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/CHANGELOG.md +5 -0
- data/bin/syntropy +1 -1
- data/cmd/console.rb +1 -1
- data/{examples → cmd/new}/template/.gitignore +1 -0
- data/cmd/new/template/Dockerfile +25 -0
- data/{examples → cmd/new}/template/Gemfile +1 -1
- data/cmd/new/template/README.md +40 -0
- data/cmd/new/template/docker-compose.yml +46 -0
- data/cmd/new.rb +46 -0
- data/lib/syntropy/module_loader.rb +4 -0
- data/lib/syntropy/version.rb +1 -1
- metadata +40 -36
- /data/{examples → cmd/new}/template/app/_layout/default.rb +0 -0
- /data/{examples → cmd/new}/template/app/_lib/database.rb +0 -0
- /data/{examples → cmd/new}/template/app/_schema/2026-01-01-initial.rb +0 -0
- /data/{examples → cmd/new}/template/app/assets/style.css +0 -0
- /data/{examples → cmd/new}/template/app/index.rb +0 -0
- /data/{examples → cmd/new}/template/app/test.rb +0 -0
- /data/{examples → cmd/new}/template/config/development.rb +0 -0
- /data/{examples → cmd/new}/template/config/production.rb +0 -0
- /data/{examples → cmd/new}/template/config/test.rb +0 -0
- /data/{examples → cmd/new}/template/test/test_app.rb +0 -0
- /data/cmd/{setup/template → new/template_old}/site/.gitignore +0 -0
- /data/cmd/{setup/template → new/template_old}/site/Dockerfile +0 -0
- /data/cmd/{setup/template → new/template_old}/site/Gemfile +0 -0
- /data/cmd/{setup/template → new/template_old}/site/README.md +0 -0
- /data/cmd/{setup/template → new/template_old}/site/bin/console +0 -0
- /data/cmd/{setup/template → new/template_old}/site/bin/restart +0 -0
- /data/cmd/{setup/template → new/template_old}/site/bin/server +0 -0
- /data/cmd/{setup/template → new/template_old}/site/bin/start +0 -0
- /data/cmd/{setup/template → new/template_old}/site/bin/stop +0 -0
- /data/cmd/{setup/template → new/template_old}/site/docker-compose.yml +0 -0
- /data/cmd/{setup/template → new/template_old}/site/proxy/Dockerfile +0 -0
- /data/cmd/{setup/template → new/template_old}/site/proxy/etc/Caddyfile +0 -0
- /data/cmd/{setup/template → new/template_old}/site/proxy/etc/tls_auto +0 -0
- /data/cmd/{setup/template → new/template_old}/site/proxy/etc/tls_cloudflare +0 -0
- /data/cmd/{setup/template → new/template_old}/site/proxy/etc/tls_custom +0 -0
- /data/cmd/{setup/template → new/template_old}/site/proxy/etc/tls_selfsigned +0 -0
- /data/cmd/{setup/template → new/template_old}/site/site/_layout/default.rb +0 -0
- /data/cmd/{setup/template → new/template_old}/site/site/about.md +0 -0
- /data/cmd/{setup/template → new/template_old}/site/site/articles/cage.rb +0 -0
- /data/cmd/{setup/template → new/template_old}/site/site/articles/index.rb +0 -0
- /data/cmd/{setup/template → new/template_old}/site/site/assets/css/style.css +0 -0
- /data/cmd/{setup/template → new/template_old}/site/site/assets/img/syntropy.png +0 -0
- /data/cmd/{setup/template → new/template_old}/site/site/index.rb +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 90b51e20e3a93a2b92bca677eddfe21efdd929d7378499f012dfb4c733336ddd
|
|
4
|
+
data.tar.gz: 3f873ae675918b8601f8144daca4041b7f90c490dcdda1d32143ad9c1ab13d75
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 40a3b22e7d24ab92be72b5552702ec5e6ca878ea8731537d552323e3dca5252b0ce965add0270a6bda710e8d20d32478060adee740f7acc33e386255daf44882
|
|
7
|
+
data.tar.gz: 4129035e2daca7068eda05ced8b78604b10fbc39fd67aae20da3de5eb53b880b395c47d70795ec39e282cca50e65e2b3a878853ff8fd2e47e95bd2cb7cf80711
|
data/CHANGELOG.md
CHANGED
data/bin/syntropy
CHANGED
data/cmd/console.rb
CHANGED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
FROM ruby:4.0-slim AS base
|
|
2
|
+
WORKDIR /syntropy
|
|
3
|
+
RUN apt-get update -qq && apt-get install -y \
|
|
4
|
+
curl \
|
|
5
|
+
build-essential \
|
|
6
|
+
libpq-dev \
|
|
7
|
+
libsqlite3-dev \
|
|
8
|
+
libssl-dev \
|
|
9
|
+
libyaml-dev \
|
|
10
|
+
pkg-config && \
|
|
11
|
+
rm -rf /var/lib/apt/lists /var/cache/apt/archives
|
|
12
|
+
|
|
13
|
+
ENV BUNDLE_PATH="/usr/local/bundle"
|
|
14
|
+
COPY Gemfile Gemfile.lock ./
|
|
15
|
+
RUN bundle install
|
|
16
|
+
|
|
17
|
+
RUN groupadd --system --gid 1000 syntropy && \
|
|
18
|
+
useradd syntropy --uid 1000 --gid 1000 --create-home --shell /bin/bash
|
|
19
|
+
USER 1000:1000
|
|
20
|
+
|
|
21
|
+
EXPOSE 1234
|
|
22
|
+
|
|
23
|
+
# Start the main process
|
|
24
|
+
# CMD ["bash"]
|
|
25
|
+
CMD ["bundle", "exec", "syntropy", "serve"]
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# My awesome Syntropy app
|
|
2
|
+
|
|
3
|
+
## Installation
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
$ bundle install
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
## Running the web server
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
$ bundle exec syntropy serve
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Starting the app console
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
$ bundle exec syntropy console
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
### Running tests
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
$ bundle exec syntropy tests
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### Usage with Docker Compose
|
|
28
|
+
|
|
29
|
+
You can also run the app on Docker Compose:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
# run the app server
|
|
33
|
+
$ docker compose up
|
|
34
|
+
|
|
35
|
+
# run the console
|
|
36
|
+
$ docker compose run --remove-orphans console
|
|
37
|
+
|
|
38
|
+
# run tests
|
|
39
|
+
$ docker compose run --remove-orphans test
|
|
40
|
+
```
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
#version: "3.8"
|
|
2
|
+
|
|
3
|
+
services:
|
|
4
|
+
app_server:
|
|
5
|
+
build: .
|
|
6
|
+
security_opt:
|
|
7
|
+
- seccomp:unconfined
|
|
8
|
+
volumes:
|
|
9
|
+
- .:/syntropy
|
|
10
|
+
ports:
|
|
11
|
+
- "1234:1234"
|
|
12
|
+
stop_signal: SIGINT
|
|
13
|
+
stop_grace_period: 10s
|
|
14
|
+
restart: always
|
|
15
|
+
healthcheck:
|
|
16
|
+
test: "curl 'http://localhost:1234/'"
|
|
17
|
+
interval: "30s"
|
|
18
|
+
timeout: "3s"
|
|
19
|
+
start_period: "5s"
|
|
20
|
+
retries: 3
|
|
21
|
+
console:
|
|
22
|
+
build: .
|
|
23
|
+
command: bundle exec syntropy console
|
|
24
|
+
stdin_open: true # docker run -i
|
|
25
|
+
tty: true
|
|
26
|
+
security_opt:
|
|
27
|
+
- seccomp:unconfined
|
|
28
|
+
profiles:
|
|
29
|
+
- dev
|
|
30
|
+
volumes:
|
|
31
|
+
- .:/syntropy
|
|
32
|
+
stop_signal: SIGINT
|
|
33
|
+
restart: never
|
|
34
|
+
test:
|
|
35
|
+
build: .
|
|
36
|
+
command: bundle exec syntropy test -w
|
|
37
|
+
stdin_open: true # docker run -i
|
|
38
|
+
tty: true
|
|
39
|
+
security_opt:
|
|
40
|
+
- seccomp:unconfined
|
|
41
|
+
profiles:
|
|
42
|
+
- dev
|
|
43
|
+
volumes:
|
|
44
|
+
- .:/syntropy
|
|
45
|
+
stop_signal: SIGINT
|
|
46
|
+
restart: never
|
data/cmd/new.rb
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'optparse'
|
|
4
|
+
require 'fileutils'
|
|
5
|
+
|
|
6
|
+
parser = OptionParser.new do |o|
|
|
7
|
+
o.banner = 'Usage: syntropy new NAME [options]'
|
|
8
|
+
|
|
9
|
+
o.on('-h', '--help', 'Show this help message') do
|
|
10
|
+
puts o
|
|
11
|
+
exit
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
begin
|
|
16
|
+
parser.parse!
|
|
17
|
+
rescue OptionParser::InvalidOption
|
|
18
|
+
puts parser
|
|
19
|
+
exit
|
|
20
|
+
rescue StandardError => e
|
|
21
|
+
p e
|
|
22
|
+
puts e.message
|
|
23
|
+
puts e.backtrace.join("\n")
|
|
24
|
+
exit
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
path = ARGV.shift
|
|
28
|
+
if !path
|
|
29
|
+
$stdout << 'Please enter a name for your app: '
|
|
30
|
+
path = $stdin.gets
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
full_path = File.expand_path(path)
|
|
34
|
+
puts "Creating app in #{full_path}"
|
|
35
|
+
|
|
36
|
+
template_path = File.join(__dir__, 'new/template')
|
|
37
|
+
|
|
38
|
+
begin
|
|
39
|
+
`mkdir -p "#{path}"`
|
|
40
|
+
`cp -r #{template_path}/* "#{path}/"`
|
|
41
|
+
puts "Your app is ready in #{path}"
|
|
42
|
+
rescue => e
|
|
43
|
+
p e
|
|
44
|
+
p e.backtrace
|
|
45
|
+
exit(1)
|
|
46
|
+
end
|
|
@@ -199,6 +199,7 @@ module Syntropy
|
|
|
199
199
|
env[:logger]&.info(message: "Loaded module at #{fn}")
|
|
200
200
|
m
|
|
201
201
|
rescue SyntaxError => e
|
|
202
|
+
env[:logger]&.error(message: "Error while loading module at #{fn}", error: e)
|
|
202
203
|
STDERR.puts("\n#{e.message}")
|
|
203
204
|
|
|
204
205
|
if (m = e.message.match(/^(.+)\: syntax/))
|
|
@@ -209,6 +210,9 @@ module Syntropy
|
|
|
209
210
|
else
|
|
210
211
|
raise e
|
|
211
212
|
end
|
|
213
|
+
rescue => e
|
|
214
|
+
env[:logger]&.error(message: "Error while loading module at #{fn}", error: e)
|
|
215
|
+
raise e
|
|
212
216
|
end
|
|
213
217
|
|
|
214
218
|
# Initializes a module with the given environment hash.
|
data/lib/syntropy/version.rb
CHANGED
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.35.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Sharon Rosner
|
|
@@ -170,30 +170,46 @@ files:
|
|
|
170
170
|
- cmd/_banner.rb
|
|
171
171
|
- cmd/console.rb
|
|
172
172
|
- cmd/help.rb
|
|
173
|
+
- cmd/new.rb
|
|
174
|
+
- cmd/new/template/.gitignore
|
|
175
|
+
- cmd/new/template/Dockerfile
|
|
176
|
+
- cmd/new/template/Gemfile
|
|
177
|
+
- cmd/new/template/README.md
|
|
178
|
+
- cmd/new/template/app/_layout/default.rb
|
|
179
|
+
- cmd/new/template/app/_lib/database.rb
|
|
180
|
+
- cmd/new/template/app/_schema/2026-01-01-initial.rb
|
|
181
|
+
- cmd/new/template/app/assets/style.css
|
|
182
|
+
- cmd/new/template/app/index.rb
|
|
183
|
+
- cmd/new/template/app/test.rb
|
|
184
|
+
- cmd/new/template/config/development.rb
|
|
185
|
+
- cmd/new/template/config/production.rb
|
|
186
|
+
- cmd/new/template/config/test.rb
|
|
187
|
+
- cmd/new/template/docker-compose.yml
|
|
188
|
+
- cmd/new/template/test/test_app.rb
|
|
189
|
+
- cmd/new/template_old/site/.gitignore
|
|
190
|
+
- cmd/new/template_old/site/Dockerfile
|
|
191
|
+
- cmd/new/template_old/site/Gemfile
|
|
192
|
+
- cmd/new/template_old/site/README.md
|
|
193
|
+
- cmd/new/template_old/site/bin/console
|
|
194
|
+
- cmd/new/template_old/site/bin/restart
|
|
195
|
+
- cmd/new/template_old/site/bin/server
|
|
196
|
+
- cmd/new/template_old/site/bin/start
|
|
197
|
+
- cmd/new/template_old/site/bin/stop
|
|
198
|
+
- cmd/new/template_old/site/docker-compose.yml
|
|
199
|
+
- cmd/new/template_old/site/proxy/Dockerfile
|
|
200
|
+
- cmd/new/template_old/site/proxy/etc/Caddyfile
|
|
201
|
+
- cmd/new/template_old/site/proxy/etc/tls_auto
|
|
202
|
+
- cmd/new/template_old/site/proxy/etc/tls_cloudflare
|
|
203
|
+
- cmd/new/template_old/site/proxy/etc/tls_custom
|
|
204
|
+
- cmd/new/template_old/site/proxy/etc/tls_selfsigned
|
|
205
|
+
- cmd/new/template_old/site/site/_layout/default.rb
|
|
206
|
+
- cmd/new/template_old/site/site/about.md
|
|
207
|
+
- cmd/new/template_old/site/site/articles/cage.rb
|
|
208
|
+
- cmd/new/template_old/site/site/articles/index.rb
|
|
209
|
+
- cmd/new/template_old/site/site/assets/css/style.css
|
|
210
|
+
- cmd/new/template_old/site/site/assets/img/syntropy.png
|
|
211
|
+
- cmd/new/template_old/site/site/index.rb
|
|
173
212
|
- cmd/serve.rb
|
|
174
|
-
- cmd/setup/template/site/.gitignore
|
|
175
|
-
- cmd/setup/template/site/Dockerfile
|
|
176
|
-
- cmd/setup/template/site/Gemfile
|
|
177
|
-
- cmd/setup/template/site/README.md
|
|
178
|
-
- cmd/setup/template/site/bin/console
|
|
179
|
-
- cmd/setup/template/site/bin/restart
|
|
180
|
-
- cmd/setup/template/site/bin/server
|
|
181
|
-
- cmd/setup/template/site/bin/start
|
|
182
|
-
- cmd/setup/template/site/bin/stop
|
|
183
|
-
- cmd/setup/template/site/docker-compose.yml
|
|
184
|
-
- cmd/setup/template/site/proxy/Dockerfile
|
|
185
|
-
- cmd/setup/template/site/proxy/etc/Caddyfile
|
|
186
|
-
- cmd/setup/template/site/proxy/etc/tls_auto
|
|
187
|
-
- cmd/setup/template/site/proxy/etc/tls_cloudflare
|
|
188
|
-
- cmd/setup/template/site/proxy/etc/tls_custom
|
|
189
|
-
- cmd/setup/template/site/proxy/etc/tls_selfsigned
|
|
190
|
-
- cmd/setup/template/site/site/_layout/default.rb
|
|
191
|
-
- cmd/setup/template/site/site/about.md
|
|
192
|
-
- cmd/setup/template/site/site/articles/cage.rb
|
|
193
|
-
- cmd/setup/template/site/site/articles/index.rb
|
|
194
|
-
- cmd/setup/template/site/site/assets/css/style.css
|
|
195
|
-
- cmd/setup/template/site/site/assets/img/syntropy.png
|
|
196
|
-
- cmd/setup/template/site/site/index.rb
|
|
197
213
|
- cmd/test.rb
|
|
198
214
|
- docker-compose.yml
|
|
199
215
|
- examples/basic/bad.rb
|
|
@@ -235,18 +251,6 @@ files:
|
|
|
235
251
|
- examples/mcp-oauth/app/signin.rb
|
|
236
252
|
- examples/mcp-oauth/test/test_app.rb
|
|
237
253
|
- examples/mcp-oauth/test/test_oauth.rb
|
|
238
|
-
- examples/template/.gitignore
|
|
239
|
-
- examples/template/Gemfile
|
|
240
|
-
- examples/template/app/_layout/default.rb
|
|
241
|
-
- examples/template/app/_lib/database.rb
|
|
242
|
-
- examples/template/app/_schema/2026-01-01-initial.rb
|
|
243
|
-
- examples/template/app/assets/style.css
|
|
244
|
-
- examples/template/app/index.rb
|
|
245
|
-
- examples/template/app/test.rb
|
|
246
|
-
- examples/template/config/development.rb
|
|
247
|
-
- examples/template/config/production.rb
|
|
248
|
-
- examples/template/config/test.rb
|
|
249
|
-
- examples/template/test/test_app.rb
|
|
250
254
|
- lib/syntropy.rb
|
|
251
255
|
- lib/syntropy/app.rb
|
|
252
256
|
- lib/syntropy/applets/builtin/auto_refresh/watch.js
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|