monkrb 0.15.0 → 0.15.1
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 +16 -0
- data/README.md +2 -0
- data/lib/monk/version.rb +1 -1
- data/lib/monk/views.rb +12 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 4dff53a61a5894d736707c11c3fc9f3b8ee8b096e180e34e070fb1cd98c3cf61
|
|
4
|
+
data.tar.gz: 0ca1e853e672436cc717ccad3059f360dcd31cee83d99622a0f0f6aafc78f100
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: b0350a71969e23f530a51a281fe824c8f5448fc27e2e957dea78f0ea3eb1f60a2ee89a31bfe7cb474ae342539b511d3f9f2beed7b52c72b50832f149ec4b5e6b
|
|
7
|
+
data.tar.gz: b59f8860ea7686d5eb284b307db91ad094c58ffdcbf4b35aaec534c8e803c86e75ec9c46f274e861d4dc5f5cd6d17cc5e4e3650489ae634d2e8eeee9229c025c
|
data/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,22 @@ All notable changes to this project are documented here. Format is loosely
|
|
|
4
4
|
[Keep a Changelog](https://keepachangelog.com/); versions are as released
|
|
5
5
|
in `lib/monk/version.rb`.
|
|
6
6
|
|
|
7
|
+
## 0.15.1 - 2026-09-24
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- ERB templates with a non-ASCII string literal inside Ruby code (e.g.
|
|
12
|
+
`<%= ok ? "✓" : "✗" %>`) no longer render as `ASCII-8BIT` and drag the
|
|
13
|
+
whole page — layout and other locals included — down with them. The
|
|
14
|
+
compiled template source is now retagged with the encoding
|
|
15
|
+
`ERB::Compiler#compile` returns instead of dropping it.
|
|
16
|
+
|
|
17
|
+
### Added
|
|
18
|
+
|
|
19
|
+
- `docs/ai_usage_disclaimer.md`, linked from the README.
|
|
20
|
+
- `docs/deployment-options.md`: analysis of hosting options for Postgres,
|
|
21
|
+
Redis, and SMTP.
|
|
22
|
+
|
|
7
23
|
## 0.15.0 - 2026-09-22
|
|
8
24
|
|
|
9
25
|
### Changed
|
data/README.md
CHANGED
|
@@ -86,3 +86,5 @@ More (server modes, Docker) in [`docs/development.md`](docs/development.md).
|
|
|
86
86
|
## Status
|
|
87
87
|
|
|
88
88
|
Monk is **pre-1.0** (see `lib/monk/version.rb` and the [changelog](CHANGELOG.md)): the API may still change between minor versions. The core is described in [`docs/history/core-plan.md`](docs/history/core-plan.md). There's no open roadmap issue at the moment; new work is proposed and tracked as it comes up. Done so far, each with its own design doc and plan: persistence, migrations, HTML templating and static assets, auth and sessions, WebSocket with Redis fan-out, log levels, live updates (`Monk::Live`, as of 2026-09-19), deployment support (Dockerfile scaffolding, `docs/guides/deploying.md`), and the RubyGems release as `monkrb` (both 2026-09-22).
|
|
89
|
+
|
|
90
|
+
[Made with Love ❤️, Ruby 💎 and AI 🤖](docs/ai_usage_disclaimer.md)
|
data/lib/monk/version.rb
CHANGED
|
@@ -5,5 +5,5 @@ module Monk
|
|
|
5
5
|
# class of bug .freeze! guards against for routes/error handlers/models,
|
|
6
6
|
# just on a top-level constant that every worker Ractor reads on boot
|
|
7
7
|
# (found live under kino: GET /hello 500'd until this was frozen).
|
|
8
|
-
VERSION = "0.15.
|
|
8
|
+
VERSION = "0.15.1".freeze
|
|
9
9
|
end
|
data/lib/monk/views.rb
CHANGED
|
@@ -151,7 +151,18 @@ module Monk
|
|
|
151
151
|
compiler.post_cmd = ["Monk::Views::Raw.new(_erbout)"]
|
|
152
152
|
compiler.put_cmd = "_erbout.<<"
|
|
153
153
|
compiler.insert_cmd = "_erbout.<< Monk::Views.h"
|
|
154
|
-
compiler.compile(source)
|
|
154
|
+
script, encoding, = compiler.compile(source)
|
|
155
|
+
# ERB::Compiler#compile scans the source as ASCII-8BIT (see its
|
|
156
|
+
# own String#b) and hands that tag straight through to any code
|
|
157
|
+
# inside <%= %>/<% %> -- template TEXT is safe (put_cmd dumps it
|
|
158
|
+
# to ASCII escapes), but a non-ASCII literal written in Ruby code,
|
|
159
|
+
# e.g. <%= ok ? "✓" : "✗" %>, comes back mistagged
|
|
160
|
+
# ASCII-8BIT even though the bytes are valid UTF-8. #compile's
|
|
161
|
+
# second return value is the encoding to retag it with; dropping
|
|
162
|
+
# that (as this used to) is what broke non-ASCII Ruby literals --
|
|
163
|
+
# the mistagged string then downgrades whatever UTF-8 content it's
|
|
164
|
+
# concatenated with (layouts, other locals) to ASCII-8BIT too.
|
|
165
|
+
encoding ? script.dup.force_encoding(encoding) : script
|
|
155
166
|
end
|
|
156
167
|
|
|
157
168
|
def method_name_for(name)
|