houseaccount 0.7.0 → 0.8.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 +9 -0
- data/README.md +8 -10
- data/config/locales/houseaccount.en.yml +1 -4
- data/lib/houseaccount/version.rb +1 -1
- data/lib/houseaccount.rb +4 -8
- data/public/index.html +2 -2
- data/public/{v0.7.0 → v0.8.0}/css/houseaccount.css +1 -1
- metadata +19 -19
- /data/public/{v0.7.0 → v0.8.0}/font/bootstrap-icons-6LILWPE2.woff2 +0 -0
- /data/public/{v0.7.0 → v0.8.0}/font/quicksand-500-latin-QHYSRFVK.woff2 +0 -0
- /data/public/{v0.7.0 → v0.8.0}/font/quicksand-500-latin-ext-QZ4PXVHB.woff2 +0 -0
- /data/public/{v0.7.0 → v0.8.0}/font/quicksand-500-latin-ext.woff2 +0 -0
- /data/public/{v0.7.0 → v0.8.0}/font/quicksand-500-latin.woff2 +0 -0
- /data/public/{v0.7.0 → v0.8.0}/font/quicksand-500-vietnamese-RRA5CUQB.woff2 +0 -0
- /data/public/{v0.7.0 → v0.8.0}/font/quicksand-500-vietnamese.woff2 +0 -0
- /data/public/{v0.7.0 → v0.8.0}/js/houseaccount.js +0 -0
- /data/public/{v0.7.0 → v0.8.0}/theme/bootstrap.css +0 -0
- /data/public/{v0.7.0 → v0.8.0}/theme/dawn.css +0 -0
- /data/public/{v0.7.0 → v0.8.0}/theme/dracula.css +0 -0
- /data/public/{v0.7.0 → v0.8.0}/theme/gruvbox.css +0 -0
- /data/public/{v0.7.0 → v0.8.0}/theme/monokai.css +0 -0
- /data/public/{v0.7.0 → v0.8.0}/theme/nord.css +0 -0
- /data/public/{v0.7.0 → v0.8.0}/theme/one_dark.css +0 -0
- /data/public/{v0.7.0 → v0.8.0}/theme/solarized.css +0 -0
- /data/public/{v0.7.0 → v0.8.0}/theme/tokyo_night.css +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 25c029d0c9b4a7be0acc92597d51ab5ff79de388f92446ad603a5d64ceeaab3a
|
|
4
|
+
data.tar.gz: 85a331299adfb3bc24800738dee1d094a185037a17bf169747912ea96f29f3f8
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 5639f3869ea8eaf95321546515d0aeaad2263042e8de41a77ff7c74a212638be06f73e842ef7e35c118e2009e3886be0e06c67de025cb0f77b6fb09b7ff2ec9a
|
|
7
|
+
data.tar.gz: 32dc62a114967214bf1f2ee7880223e599f306f0d74cc75e0a4d98eb33d6da61c7f66e73a23ca1fef22e8d2702c1f03f41c75abe3df88cdd2c21a969de8ac002
|
data/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,15 @@ For more information about changelogs, check [Keep a Changelog](http://keepachan
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## 0.8.0 - 2026-09-14
|
|
11
|
+
|
|
12
|
+
* [Breaking change] A one-time code is the sentence alone, without the line for the phone
|
|
13
|
+
|
|
14
|
+
`written` carried a second paragraph, `@host #code`, there for Safari and iOS to read and
|
|
15
|
+
offer the code above the keyboard. It is plainly visible in the message that arrives, so it
|
|
16
|
+
is gone: `written` is now the sentence `spoken` says, with its digits together, and
|
|
17
|
+
`HouseAccount.one_time_code` no longer takes `host:`.
|
|
18
|
+
|
|
10
19
|
## 0.7.0 - 2026-09-14
|
|
11
20
|
|
|
12
21
|
## 0.6.0 - 2026-09-14
|
data/README.md
CHANGED
|
@@ -20,10 +20,10 @@ gem install houseaccount
|
|
|
20
20
|
|
|
21
21
|
```ruby
|
|
22
22
|
# Gemfile
|
|
23
|
-
gem 'houseaccount', '~> 0.
|
|
23
|
+
gem 'houseaccount', '~> 0.8.0'
|
|
24
24
|
```
|
|
25
25
|
|
|
26
|
-
`~> 0.
|
|
26
|
+
`~> 0.8.0` stops short of `0.9`, since below 1.0 a minor release may break whatever it likes.
|
|
27
27
|
Rails 8.1 and Ruby 3.2 are the minimum.
|
|
28
28
|
|
|
29
29
|
A page takes the gem's layout, and wears the same head:
|
|
@@ -60,7 +60,7 @@ which Pages redirects away from.
|
|
|
60
60
|
|
|
61
61
|
With the gem in the bundle an app serves `/css/houseaccount.css`, `/js/houseaccount.js`,
|
|
62
62
|
`/theme/*`, `/font/*`, `/logo/*` and `/favicon/*` itself — and its own version's copy under
|
|
63
|
-
`/v0.
|
|
63
|
+
`/v0.8.0/`, which is what the head helper links, cached for a year — answers a 400, 404, 406, 422 or 500
|
|
64
64
|
with the house's own page, and has these helpers in every view:
|
|
65
65
|
|
|
66
66
|
```erb
|
|
@@ -181,15 +181,13 @@ HouseAccount::Message.new side: :left, text: answer.note, sender: 'Claude', at:
|
|
|
181
181
|
```
|
|
182
182
|
|
|
183
183
|
A code sent to a phone is the same words from every app, `HouseAccount.one_time_code`, in
|
|
184
|
-
each voice they are said in. `written` is the sentence a person reads
|
|
185
|
-
|
|
186
|
-
`spoken` is the sentence alone, its digits one at a time so a listener can write them down.
|
|
187
|
-
The host is the application's default one unless `host:` says otherwise, and the words are
|
|
184
|
+
each voice they are said in. `written` is the one sentence a person reads; `spoken` is that
|
|
185
|
+
same sentence with its digits one at a time, so a listener can write them down. The words are
|
|
188
186
|
the gem's `config/locales` entry.
|
|
189
187
|
|
|
190
188
|
```ruby
|
|
191
189
|
HouseAccount.one_time_code(contact.pin).written
|
|
192
|
-
# => "Enter this 6-digit code to proceed: 482913
|
|
190
|
+
# => "Enter this 6-digit code to proceed: 482913"
|
|
193
191
|
HouseAccount.one_time_code(contact.pin).spoken
|
|
194
192
|
# => "Enter this 6-digit code to proceed: 4, 8, 2, 9, 1, 3"
|
|
195
193
|
```
|
|
@@ -205,8 +203,8 @@ Those follow the latest release. Every release is also kept whole under its own
|
|
|
205
203
|
forever and cached for a year, for a page that would rather move on its own terms:
|
|
206
204
|
|
|
207
205
|
```html
|
|
208
|
-
<link rel='stylesheet' href='https://design.houseaccount.com/v0.
|
|
209
|
-
<script type='module' src='https://design.houseaccount.com/v0.
|
|
206
|
+
<link rel='stylesheet' href='https://design.houseaccount.com/v0.8.0/css/houseaccount.css'>
|
|
207
|
+
<script type='module' src='https://design.houseaccount.com/v0.8.0/js/houseaccount.js'></script>
|
|
210
208
|
```
|
|
211
209
|
|
|
212
210
|
A host with a Content Security Policy allows that origin for `style-src`, `script-src` and
|
|
@@ -4,10 +4,7 @@ en:
|
|
|
4
4
|
ask: Ask a question
|
|
5
5
|
close: Close
|
|
6
6
|
okay: Okay
|
|
7
|
-
one_time_code:
|
|
8
|
-
Enter this 6-digit code to proceed: %{pin}
|
|
9
|
-
|
|
10
|
-
@%{host} #%{pin}
|
|
7
|
+
one_time_code: 'Enter this 6-digit code to proceed: %{pin}'
|
|
11
8
|
send: Send
|
|
12
9
|
spoken_one_time_code: 'Enter this 6-digit code to proceed: %{pin}'
|
|
13
10
|
typing: Typing
|
data/lib/houseaccount/version.rb
CHANGED
data/lib/houseaccount.rb
CHANGED
|
@@ -29,14 +29,10 @@ module HouseAccount
|
|
|
29
29
|
MARKS.key?(name) ? name : :houseaccount
|
|
30
30
|
end
|
|
31
31
|
|
|
32
|
-
# The
|
|
33
|
-
# a
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
# them down, and without a line meant for a phone rather than a person. Every app of the
|
|
37
|
-
# house that sends a code sends these, from `config/locales`.
|
|
38
|
-
def self.one_time_code(pin, host: Rails.application.default_url_options[:host])
|
|
39
|
-
Copy.new written: I18n.t('houseaccount.one_time_code', pin:, host:),
|
|
32
|
+
# The one sentence that carries a 6-digit code to a phone, written as a person reads it and
|
|
33
|
+
# spoken a digit at a time so a listener can write it down.
|
|
34
|
+
def self.one_time_code(pin)
|
|
35
|
+
Copy.new written: I18n.t('houseaccount.one_time_code', pin:),
|
|
40
36
|
spoken: I18n.t('houseaccount.spoken_one_time_code', pin: pin.chars.join(', '))
|
|
41
37
|
end
|
|
42
38
|
end
|
data/public/index.html
CHANGED
|
@@ -66,8 +66,8 @@
|
|
|
66
66
|
</div>
|
|
67
67
|
<div class='col-12'>
|
|
68
68
|
<div class='card p-3'>
|
|
69
|
-
<strong>Pinned to a version — the latest is 0.
|
|
70
|
-
<span class='design-url'>https://design.houseaccount.com/v0.
|
|
69
|
+
<strong>Pinned to a version — the latest is 0.8.0</strong>
|
|
70
|
+
<span class='design-url'>https://design.houseaccount.com/v0.8.0/css/houseaccount.css · /v0.8.0/js/houseaccount.js · /v0.8.0/theme/nord.css</span>
|
|
71
71
|
<span class='small fg-2 mt-1'>Every release stays at its own prefix forever, whole and cached for a year, for a page that moves on its own terms. The unversioned paths follow the latest.</span>
|
|
72
72
|
</div>
|
|
73
73
|
</div>
|