bible270 0.18.3 → 1.0.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.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +16 -0
  3. data/README.md +67 -4
  4. data/Rakefile +178 -4
  5. data/app/controllers/bible270/checkoffs_controller.rb +34 -9
  6. data/app/controllers/bible270/comments_controller.rb +63 -28
  7. data/app/controllers/bible270/days_controller.rb +17 -6
  8. data/app/controllers/bible270/likes_controller.rb +15 -4
  9. data/app/controllers/bible270/profiles_controller.rb +37 -4
  10. data/app/controllers/bible270/readers_controller.rb +48 -3
  11. data/app/helpers/bible270/plan_helper.rb +17 -3
  12. data/app/mailers/bible270/notice_mailer.rb +22 -1
  13. data/app/models/bible270/comment.rb +48 -3
  14. data/app/models/bible270/reader.rb +74 -7
  15. data/app/views/bible270/checkoffs/toggle.turbo_stream.erb +8 -0
  16. data/app/views/bible270/comments/_edit_fields.html.erb +3 -1
  17. data/app/views/bible270/comments/_form.html.erb +10 -1
  18. data/app/views/bible270/comments/create.turbo_stream.erb +1 -1
  19. data/app/views/bible270/comments/index.html.erb +61 -10
  20. data/app/views/bible270/days/_completers.html.erb +12 -0
  21. data/app/views/bible270/days/_day_progress.html.erb +47 -0
  22. data/app/views/bible270/days/_reading.html.erb +10 -2
  23. data/app/views/bible270/days/_start_date.html.erb +1 -1
  24. data/app/views/bible270/days/index.html.erb +16 -8
  25. data/app/views/bible270/days/show.html.erb +38 -42
  26. data/app/views/bible270/likes/_likes.html.erb +5 -1
  27. data/app/views/bible270/notice_mailer/daily_reminder.html.erb +30 -0
  28. data/app/views/bible270/notice_mailer/daily_reminder.text.erb +14 -0
  29. data/app/views/bible270/notice_mailer/mentioned.html.erb +0 -1
  30. data/app/views/bible270/notice_mailer/mentioned.text.erb +1 -2
  31. data/app/views/bible270/profiles/edit.html.erb +41 -8
  32. data/app/views/bible270/readers/_next_steps.html.erb +63 -0
  33. data/app/views/bible270/readers/index.html.erb +6 -9
  34. data/app/views/bible270/readers/progress.html.erb +13 -3
  35. data/app/views/bible270/shared/_comment_drafts.html.erb +169 -0
  36. data/app/views/bible270/shared/_day_index.html.erb +1 -1
  37. data/app/views/bible270/shared/_header.html.erb +14 -17
  38. data/app/views/bible270/shared/_interaction_status.html.erb +2 -0
  39. data/app/views/bible270/shared/_interaction_ui.html.erb +69 -0
  40. data/app/views/bible270/shared/_nav_links.html.erb +15 -0
  41. data/app/views/bible270/shared/_progress.html.erb +24 -6
  42. data/app/views/bible270/shared/_reading_mode.html.erb +62 -0
  43. data/app/views/bible270/shared/_styles.html.erb +147 -10
  44. data/config/routes.rb +4 -3
  45. data/db/migrate/20260101000016_add_daily_reminders_to_bible270_readers.rb +9 -0
  46. data/db/migrate/20260101000017_add_reflections_seen_at_to_bible270_readers.rb +7 -0
  47. data/lib/bible270/configuration.rb +10 -4
  48. data/lib/bible270/daily_reminders.rb +57 -0
  49. data/lib/bible270/migration_reconciler.rb +13 -0
  50. data/lib/bible270/version.rb +1 -1
  51. data/lib/bible270.rb +1 -0
  52. data/lib/generators/bible270/install/install_generator.rb +6 -0
  53. data/lib/generators/bible270/install/templates/bible270.rb.tt +6 -0
  54. data/lib/tasks/bible270_reminders.rake +13 -0
  55. metadata +15 -1
@@ -55,6 +55,12 @@ Bible270.configure do |config|
55
55
  # config.start_date = Date.new(2026, 9, 6)
56
56
  config.allow_reader_start_date = true
57
57
 
58
+ # --- Daily reading reminders -----------------------------------------------
59
+ # Readers choose an opt-in time on their profile only when this is enabled.
60
+ # The host app owns scheduling: run `bin/rails bible270:reminders:send` every 15 minutes.
61
+ config.daily_reminders = false
62
+ # config.mailer_host = "example.com" # required for day/profile links in email
63
+
58
64
  # --- Reading links ---------------------------------------------------------
59
65
  config.bible_version = "NKJV"
60
66
 
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'bible270/daily_reminders'
4
+
5
+ namespace :bible270 do
6
+ namespace :reminders do
7
+ desc 'Send Bible270 reminders now due at each opted-in reader time'
8
+ task send: :environment do
9
+ count = Bible270::DailyReminders.deliver
10
+ puts "Sent #{count} daily reading #{'reminder'.pluralize(count)}."
11
+ end
12
+ end
13
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bible270
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.18.3
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew vonderLuft
@@ -115,6 +115,8 @@ files:
115
115
  - app/views/bible270/comments/edit.turbo_stream.erb
116
116
  - app/views/bible270/comments/index.html.erb
117
117
  - app/views/bible270/comments/update.turbo_stream.erb
118
+ - app/views/bible270/days/_completers.html.erb
119
+ - app/views/bible270/days/_day_progress.html.erb
118
120
  - app/views/bible270/days/_reading.html.erb
119
121
  - app/views/bible270/days/_start_date.html.erb
120
122
  - app/views/bible270/days/index.html.erb
@@ -123,21 +125,29 @@ files:
123
125
  - app/views/bible270/likes/toggle.turbo_stream.erb
124
126
  - app/views/bible270/notice_mailer/broadcast.html.erb
125
127
  - app/views/bible270/notice_mailer/broadcast.text.erb
128
+ - app/views/bible270/notice_mailer/daily_reminder.html.erb
129
+ - app/views/bible270/notice_mailer/daily_reminder.text.erb
126
130
  - app/views/bible270/notice_mailer/mentioned.html.erb
127
131
  - app/views/bible270/notice_mailer/mentioned.text.erb
128
132
  - app/views/bible270/notice_mailer/new_reader.html.erb
129
133
  - app/views/bible270/notice_mailer/new_reader.text.erb
130
134
  - app/views/bible270/profiles/edit.html.erb
135
+ - app/views/bible270/readers/_next_steps.html.erb
131
136
  - app/views/bible270/readers/index.html.erb
132
137
  - app/views/bible270/readers/progress.html.erb
133
138
  - app/views/bible270/readers/show.html.erb
134
139
  - app/views/bible270/sessions/new.html.erb
140
+ - app/views/bible270/shared/_comment_drafts.html.erb
135
141
  - app/views/bible270/shared/_day_index.html.erb
136
142
  - app/views/bible270/shared/_footer.html.erb
137
143
  - app/views/bible270/shared/_grid_legend.html.erb
138
144
  - app/views/bible270/shared/_header.html.erb
145
+ - app/views/bible270/shared/_interaction_status.html.erb
146
+ - app/views/bible270/shared/_interaction_ui.html.erb
147
+ - app/views/bible270/shared/_nav_links.html.erb
139
148
  - app/views/bible270/shared/_passage_source.html.erb
140
149
  - app/views/bible270/shared/_progress.html.erb
150
+ - app/views/bible270/shared/_reading_mode.html.erb
141
151
  - app/views/bible270/shared/_reflections.html.erb
142
152
  - app/views/bible270/shared/_styles.html.erb
143
153
  - app/views/bible270/shared/_track_bars.html.erb
@@ -160,9 +170,12 @@ files:
160
170
  - db/migrate/20260101000013_create_bible270_likes.rb
161
171
  - db/migrate/20260101000014_add_blue_letter_bible_to_bible270_readers.rb
162
172
  - db/migrate/20260101000015_add_passage_source_to_bible270_readers.rb
173
+ - db/migrate/20260101000016_add_daily_reminders_to_bible270_readers.rb
174
+ - db/migrate/20260101000017_add_reflections_seen_at_to_bible270_readers.rb
163
175
  - lib/bible270.rb
164
176
  - lib/bible270/avatars.rb
165
177
  - lib/bible270/configuration.rb
178
+ - lib/bible270/daily_reminders.rb
166
179
  - lib/bible270/email_sign_in.rb
167
180
  - lib/bible270/engine.rb
168
181
  - lib/bible270/favicon.rb
@@ -177,6 +190,7 @@ files:
177
190
  - lib/generators/bible270/install/templates/bible270.rb.tt
178
191
  - lib/generators/bible270/install/templates/omniauth.rb.tt
179
192
  - lib/tasks/bible270_migrations.rake
193
+ - lib/tasks/bible270_reminders.rake
180
194
  homepage: https://github.com/avonderluft/bible270
181
195
  licenses:
182
196
  - MIT