bible270 1.1.2 → 1.1.3
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 +34 -11
- data/README.md +24 -4
- data/app/models/bible270/reader.rb +1 -0
- data/app/views/bible270/profiles/edit.html.erb +2 -1
- data/lib/bible270/version.rb +1 -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: 45fdbb1df9bc7d830bbaf95bf41a49c0bb027faeb5a98da183b5baeda39c30fe
|
|
4
|
+
data.tar.gz: 844cc4dfb784a197321910c5a606e092e57f0a0437890a8cbe1c4bcbe30c146a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: b9c688571b688a9fd9cba621bd3bb816561751af80d59568ba7f54df5598bbd6543efbf28bac976c57deb1d390f7440aad08d9fc51ecc7e047563a85554cf266
|
|
7
|
+
data.tar.gz: f5ffea7599e4526ea4f6184bafb0b7253a5c86ef24a0adf8781abccc410d8135b96781b3b079b856699272a02b6a6ce95c6f6a699fa3864e6ffd9331cc521fc6
|
data/CHANGELOG.md
CHANGED
|
@@ -4,27 +4,47 @@ All notable changes to bible270. Format follows [Keep a Changelog](https://keepa
|
|
|
4
4
|
|
|
5
5
|
## Unreleased Changes
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
**[Full Changelog](https://github.com/avonderluft/bible270/compare/v1.1.2...main)**
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
-
|
|
14
|
-
|
|
9
|
+
## [1.1.2] - 2026-08-22
|
|
10
|
+
|
|
11
|
+
### Changed
|
|
12
|
+
|
|
13
|
+
- include complete 1.1.0 and 1.1.1 release history in the packaged changelog
|
|
14
|
+
|
|
15
|
+
**[Full Changelog](https://github.com/avonderluft/bible270/compare/v1.1.1...v1.1.2)**
|
|
16
|
+
|
|
17
|
+
## [1.1.1] - 2026-08-22
|
|
18
|
+
|
|
19
|
+
### Fixed
|
|
20
|
+
|
|
21
|
+
- make the mobile navigation menu toggle reliably on iOS Safari by relying on native `details` disclosure behavior instead of overriding it with JavaScript
|
|
22
|
+
|
|
23
|
+
**[Full Changelog](https://github.com/avonderluft/bible270/compare/v1.1.0...v1.1.1)**
|
|
24
|
+
|
|
25
|
+
## [1.1.0] - 2026-08-22
|
|
15
26
|
|
|
16
27
|
### Changed
|
|
17
28
|
|
|
18
29
|
- notify reflection authors directly about replies, share one opt-out with explicit mentions, and stop inserting handles into reply text
|
|
19
30
|
- consolidate duplicate visitor sign-in prompts on day pages into one invitation
|
|
20
31
|
- show “Finish what you started” on My Progress only when partially read days need attention
|
|
21
|
-
- clarify the global day-index control as “View all 270 days” and use that standard collapsed control on My Progress
|
|
32
|
+
- clarify the global day-index control as “View all 270 days” and use that standard collapsed control on My Progress and public reader pages
|
|
33
|
+
- redirect successful Profile updates back to Profile
|
|
34
|
+
- simplify Community listings to linked reader names and avatars with full joined dates instead of progress counts
|
|
35
|
+
- remove account-specific reflection messaging from the signed-out Progress page
|
|
36
|
+
- simplify header, Reflections, and empty day-page framing while retaining the primary actions and information
|
|
22
37
|
|
|
23
|
-
###
|
|
38
|
+
### Removed
|
|
24
39
|
|
|
25
|
-
-
|
|
40
|
+
- remove the Compact reading preference so daily reading pages have one simple, predictable presentation
|
|
41
|
+
- replace the homepage reader preview with one clear link to the Community page
|
|
42
|
+
- remove the redundant schedule-restart shortcut from progress recovery choices
|
|
43
|
+
- remove reader-facing start-date status, controls, and self-service endpoints while retaining automatic and admin-managed personal calendars
|
|
44
|
+
- remove weekly progress, its unused schedule helper, milestones, and explanatory schedule-recovery copy from My Progress
|
|
45
|
+
- replace the Reflections page’s separate day grid with the standard “View all 270 days” control
|
|
26
46
|
|
|
27
|
-
**[Full Changelog](https://github.com/avonderluft/bible270/compare/v1.0.0...
|
|
47
|
+
**[Full Changelog](https://github.com/avonderluft/bible270/compare/v1.0.0...v1.1.0)**
|
|
28
48
|
|
|
29
49
|
## [1.0.0] - 2026-08-20
|
|
30
50
|
|
|
@@ -488,6 +508,9 @@ This is the initial public release.
|
|
|
488
508
|
|
|
489
509
|
* Email sign-in requires working Action Mailer delivery in the host application. Set `config.mailer_from`; delivery is inline by default, or set `email_sign_in_deliver_later` when a queue backend is available.
|
|
490
510
|
|
|
511
|
+
[1.1.2]: https://github.com/avonderluft/bible270/releases/tag/v1.1.2
|
|
512
|
+
[1.1.1]: https://github.com/avonderluft/bible270/releases/tag/v1.1.1
|
|
513
|
+
[1.1.0]: https://github.com/avonderluft/bible270/releases/tag/v1.1.0
|
|
491
514
|
[1.0.0]: https://github.com/avonderluft/bible270/releases/tag/v1.0.0
|
|
492
515
|
[0.19.0]: https://github.com/avonderluft/bible270/releases/tag/v0.19.0
|
|
493
516
|
[0.18.2]: https://github.com/avonderluft/bible270/releases/tag/v0.18.2
|
data/README.md
CHANGED
|
@@ -334,7 +334,9 @@ Bible270::Plan.before_start?(date, start)
|
|
|
334
334
|
|
|
335
335
|
Daily reminders are optional at both levels: the host enables the feature, then each reader chooses
|
|
336
336
|
whether to receive it and at what local time from their profile. The feature and reader opt-in both
|
|
337
|
-
default to off; each reader's time defaults to `08:00`.
|
|
337
|
+
default to off; each reader's time defaults to `08:00`. Profile times use quarter-hour choices so they
|
|
338
|
+
match the recommended 15-minute scheduler interval. An existing off-quarter preference remains
|
|
339
|
+
available until that reader chooses a new time.
|
|
338
340
|
|
|
339
341
|
```ruby
|
|
340
342
|
# config/initializers/bible270.rb
|
|
@@ -354,9 +356,27 @@ recurring-job system:
|
|
|
354
356
|
bin/rails bible270:reminders:send
|
|
355
357
|
```
|
|
356
358
|
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
359
|
+
For a host cron job, open the crontab with `crontab -e` under the same account that runs the application
|
|
360
|
+
and add a line like this, using the absolute application path:
|
|
361
|
+
|
|
362
|
+
```cron
|
|
363
|
+
*/15 * * * * cd /absolute/path/to/application && RAILS_ENV=production bin/rails bible270:reminders:send >> /absolute/path/to/application/log/bible270-reminders.log 2>&1
|
|
364
|
+
```
|
|
365
|
+
|
|
366
|
+
For Docker Compose, run `pwd` in the directory containing the Compose file and `command -v docker` to
|
|
367
|
+
find the two absolute paths, then use the same host account that can run Docker:
|
|
368
|
+
|
|
369
|
+
```cron
|
|
370
|
+
*/15 * * * * cd /absolute/path/to/application && /usr/bin/docker compose exec -T rails bin/rails bible270:reminders:send >> /absolute/path/to/application/log/bible270-reminders.log 2>&1
|
|
371
|
+
```
|
|
372
|
+
|
|
373
|
+
The `-T` is required because cron has no interactive terminal. Confirm the saved entry with `crontab -l`
|
|
374
|
+
and check `log/bible270-reminders.log` after the next interval. Run one scheduler per database; several
|
|
375
|
+
web containers sharing a database must not each run the task.
|
|
376
|
+
|
|
377
|
+
Each run converts `Time.now` through `Bible270.local_time`, waits until the first scheduler run at or
|
|
378
|
+
after each reader's chosen time, sends inline with `deliver_now`, and prints the number delivered. Set
|
|
379
|
+
`config.time_zone` when the plan should not follow the server's local clock. Running periodically is
|
|
360
380
|
idempotent once per local date: readers already marked for that date are skipped. Undated readers,
|
|
361
381
|
calendar dates before or after their plan, completed days, blank email addresses, and readers who have
|
|
362
382
|
not opted in are also skipped. A failure for one reader is logged and does not stop the rest. The sent
|
|
@@ -28,6 +28,7 @@ module Bible270
|
|
|
28
28
|
PASSAGE_SOURCES = %w[bible_gateway blue_letter_bible].freeze
|
|
29
29
|
DEFAULT_PASSAGE_SOURCE = 'bible_gateway'
|
|
30
30
|
DAILY_REMINDER_TIME_FORMAT = %r{\A(?:[01]\d|2[0-3]):[0-5]\d\z}
|
|
31
|
+
DAILY_REMINDER_MINUTES = %w[00 15 30 45].freeze
|
|
31
32
|
DAILY_REMINDER_COLUMNS = %w[daily_reminders daily_reminder_time last_daily_reminder_sent_on].freeze
|
|
32
33
|
REFLECTIONS_SEEN_COLUMN = 'reflections_seen_at'
|
|
33
34
|
|
|
@@ -50,6 +50,7 @@
|
|
|
50
50
|
|
|
51
51
|
<% if @daily_reminders_available %>
|
|
52
52
|
<% reminder_hour, reminder_minute = @daily_reminder_time.to_s.split(":", 2) %>
|
|
53
|
+
<% reminder_minutes = (Bible270::Reader::DAILY_REMINDER_MINUTES + [reminder_minute]).compact.uniq.sort %>
|
|
53
54
|
<div class="b270-field">
|
|
54
55
|
<span>Daily reading reminder</span>
|
|
55
56
|
<div class="b270-reminder-row">
|
|
@@ -70,7 +71,7 @@
|
|
|
70
71
|
class: "b270-time-select", required: true, aria: { label: "Hour" } %>
|
|
71
72
|
<span class="b270-time-separator" aria-hidden="true">:</span>
|
|
72
73
|
<%= select_tag :daily_reminder_minute,
|
|
73
|
-
options_for_select(
|
|
74
|
+
options_for_select(reminder_minutes, reminder_minute),
|
|
74
75
|
class: "b270-time-select", required: true, aria: { label: "Minute" } %>
|
|
75
76
|
<span class="b270-reminder-tooltip" id="daily-reminder-time-hint" role="tooltip">
|
|
76
77
|
Uses the plan's configured time zone. You can turn reminders off here at any time.
|
data/lib/bible270/version.rb
CHANGED