message_train 0.7.5 → 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 (171) hide show
  1. checksums.yaml +5 -5
  2. data/.gitattributes +1 -0
  3. data/.github/workflows/ci.yml +86 -0
  4. data/.gitignore +64 -0
  5. data/.rubocop.yml +9 -0
  6. data/.rubocop_todo.yml +854 -2
  7. data/.ruby-version +1 -1
  8. data/.simplecov +2 -4
  9. data/CHANGELOG.md +128 -0
  10. data/CLAUDE.md +5 -0
  11. data/Gemfile +30 -32
  12. data/LICENSE.txt +1 -1
  13. data/README.md +106 -35
  14. data/Rakefile +4 -18
  15. data/app/assets/stylesheets/message_train.scss +405 -67
  16. data/app/controllers/concerns/message_train_support.rb +2 -2
  17. data/app/controllers/message_train/boxes_controller.rb +4 -2
  18. data/app/controllers/message_train/conversations_controller.rb +1 -0
  19. data/app/helpers/message_train/application_helper.rb +68 -0
  20. data/app/helpers/message_train/attachments_helper.rb +7 -4
  21. data/app/helpers/message_train/conversations_helper.rb +16 -16
  22. data/app/helpers/message_train/messages_helper.rb +23 -10
  23. data/app/javascript/controllers/message_train/bulk_actions_controller.js +36 -0
  24. data/app/javascript/controllers/message_train/lightbox_controller.js +25 -0
  25. data/app/javascript/controllers/message_train/nested_form_controller.js +36 -0
  26. data/app/javascript/controllers/message_train/recipient_autocomplete_controller.js +31 -0
  27. data/app/mailers/message_train/previews/receipt_mailer_preview.rb +7 -5
  28. data/app/models/message_train/attachment.rb +54 -42
  29. data/app/models/message_train/box.rb +2 -2
  30. data/app/models/message_train/conversation.rb +28 -2
  31. data/app/models/message_train/ignore.rb +2 -2
  32. data/app/models/message_train/message.rb +10 -4
  33. data/app/models/message_train/receipt.rb +27 -4
  34. data/app/models/message_train/unsubscribe.rb +1 -1
  35. data/app/views/application/404.html.haml +1 -3
  36. data/app/views/kaminari/_first_page.html.haml +1 -1
  37. data/app/views/kaminari/_last_page.html.haml +1 -1
  38. data/app/views/kaminari/_next_page.html.haml +1 -1
  39. data/app/views/kaminari/_page.html.haml +3 -3
  40. data/app/views/kaminari/_paginator.html.haml +12 -11
  41. data/app/views/kaminari/_prev_page.html.haml +1 -1
  42. data/app/views/message_train/application/_attachment_fields.html.haml +10 -7
  43. data/app/views/message_train/application/_attachment_link.html.haml +2 -2
  44. data/app/views/message_train/application/_widget.html.haml +2 -4
  45. data/app/views/message_train/boxes/_widget.html.haml +5 -5
  46. data/app/views/message_train/boxes/show.html.haml +28 -45
  47. data/app/views/message_train/collectives/_widget.html.haml +4 -4
  48. data/app/views/message_train/conversations/_conversation.html.haml +11 -11
  49. data/app/views/message_train/conversations/_deleted_toggle.html.haml +1 -1
  50. data/app/views/message_train/conversations/_ignored_toggle.html.haml +2 -2
  51. data/app/views/message_train/conversations/_read_toggle.html.haml +2 -2
  52. data/app/views/message_train/conversations/_toggle.html.haml +6 -4
  53. data/app/views/message_train/conversations/_trashed_toggle.html.haml +2 -2
  54. data/app/views/message_train/conversations/show.html.haml +8 -6
  55. data/app/views/message_train/messages/_deleted_toggle.html.haml +1 -1
  56. data/app/views/message_train/messages/_form.html.haml +22 -30
  57. data/app/views/message_train/messages/_message.html.haml +27 -45
  58. data/app/views/message_train/messages/_read_toggle.html.haml +2 -2
  59. data/app/views/message_train/messages/_toggle.html.haml +5 -1
  60. data/app/views/message_train/messages/_trashed_toggle.html.haml +2 -2
  61. data/app/views/message_train/unsubscribes/index.html.haml +12 -15
  62. data/badges/coverage.json +1 -0
  63. data/config/importmap.rb +2 -0
  64. data/config/locales/en.yml +6 -3
  65. data/db/migrate/20150721145319_create_message_train_conversations.rb +1 -1
  66. data/db/migrate/20150721160322_create_message_train_messages.rb +1 -1
  67. data/db/migrate/20150721161144_create_message_train_attachments.rb +5 -2
  68. data/db/migrate/20150721161940_create_message_train_receipts.rb +1 -1
  69. data/db/migrate/20150721163838_create_message_train_ignores.rb +1 -1
  70. data/db/migrate/20150901183458_add_received_through_to_message_train_receipts.rb +1 -1
  71. data/db/migrate/20151004184347_add_unique_index_to_receipts.rb +1 -1
  72. data/db/migrate/20151124000820_create_message_train_unsubscribes.rb +1 -1
  73. data/db/migrate/20260827095938_remove_paperclip_columns_from_message_train_attachments.rb +8 -0
  74. data/db/migrate/20260827171549_remove_body_from_message_train_messages.rb +5 -0
  75. data/db/migrate/20260827180000_add_marking_indexes.rb +9 -0
  76. data/db/migrate/20260827200000_add_body_back_to_message_train_messages.rb +5 -0
  77. data/docs/screenshots/inbox-desktop.png +0 -0
  78. data/docs/screenshots/inbox-mobile.png +0 -0
  79. data/lib/generators/message_train/install/install_generator.rb +1 -1
  80. data/lib/message_train/engine.rb +11 -0
  81. data/lib/message_train/instance_methods.rb +13 -7
  82. data/lib/message_train/localization.rb +4 -3
  83. data/lib/message_train/version.rb +1 -1
  84. data/lib/message_train.rb +0 -2
  85. data/message_train.gemspec +57 -389
  86. data/spec/controllers/message_train/boxes_controller_spec.rb +13 -8
  87. data/spec/controllers/message_train/concerns_spec.rb +2 -2
  88. data/spec/controllers/message_train/conversations_controller_spec.rb +36 -7
  89. data/spec/controllers/message_train/messages_controller_spec.rb +4 -4
  90. data/spec/dummy/app/assets/stylesheets/application.scss +141 -12
  91. data/spec/dummy/app/controllers/application_controller.rb +1 -1
  92. data/spec/dummy/app/javascript/application.js +4 -0
  93. data/spec/dummy/app/javascript/controllers/application.js +9 -0
  94. data/spec/dummy/app/javascript/controllers/index.js +4 -0
  95. data/spec/dummy/app/models/role.rb +1 -1
  96. data/spec/dummy/app/views/active_storage/blobs/_blob.html.erb +14 -0
  97. data/spec/dummy/app/views/layouts/_top_navigation.html.haml +18 -7
  98. data/spec/dummy/app/views/layouts/application.html.haml +22 -26
  99. data/spec/dummy/bin/importmap +4 -0
  100. data/spec/dummy/config/application.rb +7 -20
  101. data/spec/dummy/config/environments/development.rb +17 -21
  102. data/spec/dummy/config/environments/production.rb +11 -63
  103. data/spec/dummy/config/environments/test.rb +21 -16
  104. data/spec/dummy/config/importmap.rb +7 -0
  105. data/spec/dummy/config/initializers/assets.rb +1 -6
  106. data/spec/dummy/config/routes.rb +1 -1
  107. data/spec/dummy/config/storage.yml +7 -0
  108. data/spec/dummy/db/migrate/20150721140013_devise_create_users.rb +1 -1
  109. data/spec/dummy/db/migrate/20150721141009_rolify_create_roles.rb +1 -1
  110. data/spec/dummy/db/migrate/20150721141128_create_groups.rb +1 -1
  111. data/spec/dummy/db/migrate/20150721150307_add_display_name_column_to_users.rb +1 -1
  112. data/spec/dummy/db/migrate/20160207190402_create_message_train_conversations.message_train.rb +1 -1
  113. data/spec/dummy/db/migrate/20160207190403_create_message_train_messages.message_train.rb +1 -1
  114. data/spec/dummy/db/migrate/20160207190404_create_message_train_attachments.message_train.rb +5 -2
  115. data/spec/dummy/db/migrate/20160207190405_create_message_train_receipts.message_train.rb +1 -1
  116. data/spec/dummy/db/migrate/20160207190406_create_message_train_ignores.message_train.rb +1 -1
  117. data/spec/dummy/db/migrate/20160207190407_add_received_through_to_message_train_receipts.message_train.rb +1 -1
  118. data/spec/dummy/db/migrate/20160207190408_add_unique_index_to_receipts.message_train.rb +1 -1
  119. data/spec/dummy/db/migrate/20160207190409_create_message_train_unsubscribes.message_train.rb +1 -1
  120. data/spec/dummy/db/migrate/20260827095939_remove_paperclip_columns_from_message_train_attachments.message_train.rb +9 -0
  121. data/spec/dummy/db/migrate/20260827161141_create_active_storage_tables.active_storage.rb +57 -0
  122. data/spec/dummy/db/migrate/20260827171550_remove_body_from_message_train_messages.message_train.rb +6 -0
  123. data/spec/dummy/db/migrate/20260827225116_add_marking_indexes.message_train.rb +10 -0
  124. data/spec/dummy/db/migrate/20260828034830_add_body_back_to_message_train_messages.message_train.rb +6 -0
  125. data/spec/dummy/db/migrate/20260828040000_drop_action_text_tables.rb +5 -0
  126. data/spec/dummy/db/schema.rb +106 -72
  127. data/spec/dummy/db/seeds/conversations.seeds.rb +22 -22
  128. data/spec/dummy/db/seeds/development/conversations.seeds.rb +2 -2
  129. data/spec/dummy/db/seeds/groups.seeds.rb +4 -4
  130. data/spec/dummy/db/seeds/test/attachments.seeds.rb +4 -4
  131. data/spec/dummy/db/seeds/test/conversations.seeds.rb +2 -2
  132. data/spec/dummy/db/seeds/users.seeds.rb +8 -8
  133. data/spec/dummy/vendor/javascript/.keep +0 -0
  134. data/spec/factories/attachment.rb +5 -6
  135. data/spec/factories/group.rb +2 -2
  136. data/spec/factories/message.rb +7 -7
  137. data/spec/factories/user.rb +3 -3
  138. data/spec/features/boxes_spec.rb +38 -34
  139. data/spec/features/conversations_spec.rb +13 -6
  140. data/spec/features/messages_spec.rb +20 -20
  141. data/spec/features/unsubscribes_spec.rb +9 -9
  142. data/spec/helpers/message_train/application_helper_spec.rb +16 -18
  143. data/spec/helpers/message_train/attachment_helper_spec.rb +8 -18
  144. data/spec/helpers/message_train/boxes_helper_spec.rb +6 -6
  145. data/spec/helpers/message_train/collectives_helper_spec.rb +10 -10
  146. data/spec/helpers/message_train/conversations_helper_spec.rb +43 -85
  147. data/spec/helpers/message_train/messages_helper_spec.rb +41 -61
  148. data/spec/models/message_train/attachment_spec.rb +26 -36
  149. data/spec/models/message_train/box_spec.rb +2 -2
  150. data/spec/models/message_train/conversation_spec.rb +15 -0
  151. data/spec/models/message_train/message_spec.rb +5 -1
  152. data/spec/models/message_train/receipt_spec.rb +1 -1
  153. data/spec/models/message_train/unsubscribe_spec.rb +1 -1
  154. data/spec/rails_helper.rb +14 -13
  155. data/spec/support/controller_behaviors.rb +13 -13
  156. data/spec/support/factory_bot.rb +3 -0
  157. data/spec/support/feature_behaviors.rb +14 -14
  158. data/spec/support/loaded_site/attachments.rb +6 -2
  159. data/spec/support/utilities.rb +49 -20
  160. metadata +260 -189
  161. data/.travis.yml +0 -12
  162. data/VERSION +0 -1
  163. data/app/assets/javascripts/ckeditor/config.js +0 -49
  164. data/app/assets/javascripts/message_train.js +0 -149
  165. data/spec/dummy/app/assets/javascripts/application.js +0 -17
  166. data/spec/dummy/app/assets/stylesheets/bootstrap-everything.scss +0 -54
  167. data/spec/dummy/config/initializers/bootstrap_leather.rb +0 -7
  168. data/spec/dummy/config/initializers/paperclip.rb +0 -5
  169. data/spec/dummy/config/secrets.yml +0 -22
  170. data/spec/dummy/db/test.sqlite3 +0 -0
  171. data/spec/support/factory_girl.rb +0 -3
metadata CHANGED
@@ -1,305 +1,336 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: message_train
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.5
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
- - Karen Lundgren
8
- autorequire:
7
+ - Loren Lundgren
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2017-10-06 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
- name: haml-rails
13
+ name: dartsass-rails
15
14
  requirement: !ruby/object:Gem::Requirement
16
15
  requirements:
17
- - - "<"
18
- - !ruby/object:Gem::Version
19
- version: '2'
20
- - - ">="
16
+ - - "~>"
21
17
  - !ruby/object:Gem::Version
22
- version: '1'
18
+ version: '0.5'
23
19
  type: :runtime
24
20
  prerelease: false
25
21
  version_requirements: !ruby/object:Gem::Requirement
26
22
  requirements:
27
- - - "<"
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: '0.5'
26
+ - !ruby/object:Gem::Dependency
27
+ name: haml-rails
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
28
31
  - !ruby/object:Gem::Version
29
32
  version: '2'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
30
37
  - - ">="
31
38
  - !ruby/object:Gem::Version
32
- version: '1'
39
+ version: '2'
33
40
  - !ruby/object:Gem::Dependency
34
- name: jquery-rails
41
+ name: image_processing
35
42
  requirement: !ruby/object:Gem::Requirement
36
43
  requirements:
37
44
  - - "~>"
38
45
  - !ruby/object:Gem::Version
39
- version: '4'
46
+ version: '1.2'
40
47
  type: :runtime
41
48
  prerelease: false
42
49
  version_requirements: !ruby/object:Gem::Requirement
43
50
  requirements:
44
51
  - - "~>"
45
52
  - !ruby/object:Gem::Version
46
- version: '4'
53
+ version: '1.2'
47
54
  - !ruby/object:Gem::Dependency
48
- name: paperclip
55
+ name: importmap-rails
49
56
  requirement: !ruby/object:Gem::Requirement
50
57
  requirements:
51
- - - "<"
52
- - !ruby/object:Gem::Version
53
- version: '6'
54
- - - ">="
58
+ - - "~>"
55
59
  - !ruby/object:Gem::Version
56
- version: '4.2'
60
+ version: '2.0'
57
61
  type: :runtime
58
62
  prerelease: false
59
63
  version_requirements: !ruby/object:Gem::Requirement
60
64
  requirements:
61
- - - "<"
62
- - !ruby/object:Gem::Version
63
- version: '6'
64
- - - ">="
65
+ - - "~>"
65
66
  - !ruby/object:Gem::Version
66
- version: '4.2'
67
+ version: '2.0'
67
68
  - !ruby/object:Gem::Dependency
68
- name: rails
69
+ name: jbuilder
69
70
  requirement: !ruby/object:Gem::Requirement
70
71
  requirements:
71
- - - "<"
72
- - !ruby/object:Gem::Version
73
- version: '6'
74
- - - ">="
72
+ - - "~>"
75
73
  - !ruby/object:Gem::Version
76
- version: '4'
74
+ version: '2.0'
77
75
  type: :runtime
78
76
  prerelease: false
79
77
  version_requirements: !ruby/object:Gem::Requirement
80
78
  requirements:
81
- - - "<"
79
+ - - "~>"
82
80
  - !ruby/object:Gem::Version
83
- version: '6'
84
- - - ">="
81
+ version: '2.0'
82
+ - !ruby/object:Gem::Dependency
83
+ name: kaminari
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
85
87
  - !ruby/object:Gem::Version
86
- version: '4'
88
+ version: '1.0'
89
+ type: :runtime
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '1.0'
87
96
  - !ruby/object:Gem::Dependency
88
- name: rails-i18n
97
+ name: mini_magick
89
98
  requirement: !ruby/object:Gem::Requirement
90
99
  requirements:
91
- - - "<"
100
+ - - "~>"
92
101
  - !ruby/object:Gem::Version
93
- version: '6'
94
- - - ">="
102
+ version: '4.12'
103
+ type: :runtime
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
95
108
  - !ruby/object:Gem::Version
96
- version: '4'
109
+ version: '4.12'
110
+ - !ruby/object:Gem::Dependency
111
+ name: propshaft
112
+ requirement: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: '1.1'
97
117
  type: :runtime
98
118
  prerelease: false
99
119
  version_requirements: !ruby/object:Gem::Requirement
100
120
  requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: '1.1'
124
+ - !ruby/object:Gem::Dependency
125
+ name: rails
126
+ requirement: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - ">="
129
+ - !ruby/object:Gem::Version
130
+ version: '7.1'
101
131
  - - "<"
102
132
  - !ruby/object:Gem::Version
103
- version: '6'
133
+ version: '9'
134
+ type: :runtime
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ requirements:
104
138
  - - ">="
105
139
  - !ruby/object:Gem::Version
106
- version: '4'
140
+ version: '7.1'
141
+ - - "<"
142
+ - !ruby/object:Gem::Version
143
+ version: '9'
107
144
  - !ruby/object:Gem::Dependency
108
- name: uglifier
145
+ name: rails-i18n
109
146
  requirement: !ruby/object:Gem::Requirement
110
147
  requirements:
111
- - - "<"
112
- - !ruby/object:Gem::Version
113
- version: '4'
114
148
  - - ">="
115
149
  - !ruby/object:Gem::Version
116
- version: '2.7'
150
+ version: '7'
151
+ - - "<"
152
+ - !ruby/object:Gem::Version
153
+ version: '9'
117
154
  type: :runtime
118
155
  prerelease: false
119
156
  version_requirements: !ruby/object:Gem::Requirement
120
157
  requirements:
121
- - - "<"
122
- - !ruby/object:Gem::Version
123
- version: '4'
124
158
  - - ">="
125
159
  - !ruby/object:Gem::Version
126
- version: '2.7'
160
+ version: '7'
161
+ - - "<"
162
+ - !ruby/object:Gem::Version
163
+ version: '9'
127
164
  - !ruby/object:Gem::Dependency
128
- name: jbuilder
165
+ name: redcarpet
129
166
  requirement: !ruby/object:Gem::Requirement
130
167
  requirements:
131
168
  - - "~>"
132
169
  - !ruby/object:Gem::Version
133
- version: '2.0'
170
+ version: '3.6'
134
171
  type: :runtime
135
172
  prerelease: false
136
173
  version_requirements: !ruby/object:Gem::Requirement
137
174
  requirements:
138
175
  - - "~>"
139
176
  - !ruby/object:Gem::Version
140
- version: '2.0'
177
+ version: '3.6'
141
178
  - !ruby/object:Gem::Dependency
142
- name: bootstrap-sass
179
+ name: stimulus-rails
143
180
  requirement: !ruby/object:Gem::Requirement
144
181
  requirements:
145
182
  - - "~>"
146
183
  - !ruby/object:Gem::Version
147
- version: '3.3'
184
+ version: '1.3'
148
185
  type: :runtime
149
186
  prerelease: false
150
187
  version_requirements: !ruby/object:Gem::Requirement
151
188
  requirements:
152
189
  - - "~>"
153
190
  - !ruby/object:Gem::Version
154
- version: '3.3'
191
+ version: '1.3'
155
192
  - !ruby/object:Gem::Dependency
156
- name: bootstrap_form
193
+ name: turbo-rails
157
194
  requirement: !ruby/object:Gem::Requirement
158
195
  requirements:
159
196
  - - "~>"
160
197
  - !ruby/object:Gem::Version
161
- version: '2.3'
198
+ version: '2.0'
162
199
  type: :runtime
163
200
  prerelease: false
164
201
  version_requirements: !ruby/object:Gem::Requirement
165
202
  requirements:
166
203
  - - "~>"
167
204
  - !ruby/object:Gem::Version
168
- version: '2.3'
205
+ version: '2.0'
169
206
  - !ruby/object:Gem::Dependency
170
- name: bootstrap_leather
207
+ name: byebug
171
208
  requirement: !ruby/object:Gem::Requirement
172
209
  requirements:
173
- - - "<"
174
- - !ruby/object:Gem::Version
175
- version: '1'
176
- - - ">="
210
+ - - "~>"
177
211
  - !ruby/object:Gem::Version
178
- version: 0.10.11
179
- type: :runtime
212
+ version: '11'
213
+ type: :development
180
214
  prerelease: false
181
215
  version_requirements: !ruby/object:Gem::Requirement
182
216
  requirements:
183
- - - "<"
184
- - !ruby/object:Gem::Version
185
- version: '1'
186
- - - ">="
217
+ - - "~>"
187
218
  - !ruby/object:Gem::Version
188
- version: 0.10.11
219
+ version: '11'
189
220
  - !ruby/object:Gem::Dependency
190
- name: kaminari
221
+ name: capybara
191
222
  requirement: !ruby/object:Gem::Requirement
192
223
  requirements:
193
224
  - - "~>"
194
225
  - !ruby/object:Gem::Version
195
- version: '1.0'
196
- type: :runtime
226
+ version: '3.40'
227
+ type: :development
197
228
  prerelease: false
198
229
  version_requirements: !ruby/object:Gem::Requirement
199
230
  requirements:
200
231
  - - "~>"
201
232
  - !ruby/object:Gem::Version
202
- version: '1.0'
233
+ version: '3.40'
203
234
  - !ruby/object:Gem::Dependency
204
- name: bootstrap_tokenfield_rails
235
+ name: cuprite
205
236
  requirement: !ruby/object:Gem::Requirement
206
237
  requirements:
207
238
  - - "~>"
208
239
  - !ruby/object:Gem::Version
209
- version: '0.12'
210
- type: :runtime
240
+ version: '0.15'
241
+ type: :development
211
242
  prerelease: false
212
243
  version_requirements: !ruby/object:Gem::Requirement
213
244
  requirements:
214
245
  - - "~>"
215
246
  - !ruby/object:Gem::Version
216
- version: '0.12'
247
+ version: '0.15'
217
248
  - !ruby/object:Gem::Dependency
218
- name: ckeditor
249
+ name: database_cleaner-active_record
219
250
  requirement: !ruby/object:Gem::Requirement
220
251
  requirements:
221
- - - ">="
252
+ - - "~>"
222
253
  - !ruby/object:Gem::Version
223
- version: '0'
224
- type: :runtime
254
+ version: '2.1'
255
+ type: :development
225
256
  prerelease: false
226
257
  version_requirements: !ruby/object:Gem::Requirement
227
258
  requirements:
228
- - - ">="
259
+ - - "~>"
229
260
  - !ruby/object:Gem::Version
230
- version: '0'
261
+ version: '2.1'
231
262
  - !ruby/object:Gem::Dependency
232
- name: cocoon
263
+ name: devise
233
264
  requirement: !ruby/object:Gem::Requirement
234
265
  requirements:
235
266
  - - "~>"
236
267
  - !ruby/object:Gem::Version
237
- version: '1.2'
238
- type: :runtime
268
+ version: '4'
269
+ type: :development
239
270
  prerelease: false
240
271
  version_requirements: !ruby/object:Gem::Requirement
241
272
  requirements:
242
273
  - - "~>"
243
274
  - !ruby/object:Gem::Version
244
- version: '1.2'
275
+ version: '4'
245
276
  - !ruby/object:Gem::Dependency
246
- name: jquery-ui-bootstrap-rails
277
+ name: factory_bot_rails
247
278
  requirement: !ruby/object:Gem::Requirement
248
279
  requirements:
249
- - - ">="
280
+ - - "~>"
250
281
  - !ruby/object:Gem::Version
251
- version: '0'
252
- type: :runtime
282
+ version: '6.4'
283
+ type: :development
253
284
  prerelease: false
254
285
  version_requirements: !ruby/object:Gem::Requirement
255
286
  requirements:
256
- - - ">="
287
+ - - "~>"
257
288
  - !ruby/object:Gem::Version
258
- version: '0'
289
+ version: '6.4'
259
290
  - !ruby/object:Gem::Dependency
260
- name: sass-rails
291
+ name: faker
261
292
  requirement: !ruby/object:Gem::Requirement
262
293
  requirements:
263
294
  - - "~>"
264
295
  - !ruby/object:Gem::Version
265
- version: '5'
266
- type: :runtime
296
+ version: '3'
297
+ type: :development
267
298
  prerelease: false
268
299
  version_requirements: !ruby/object:Gem::Requirement
269
300
  requirements:
270
301
  - - "~>"
271
302
  - !ruby/object:Gem::Version
272
- version: '5'
303
+ version: '3'
273
304
  - !ruby/object:Gem::Dependency
274
- name: twitter-typeahead-rails
305
+ name: friendly_id
275
306
  requirement: !ruby/object:Gem::Requirement
276
307
  requirements:
277
- - - ">="
308
+ - - "~>"
278
309
  - !ruby/object:Gem::Version
279
- version: '0'
280
- type: :runtime
310
+ version: '5'
311
+ type: :development
281
312
  prerelease: false
282
313
  version_requirements: !ruby/object:Gem::Requirement
283
314
  requirements:
284
- - - ">="
315
+ - - "~>"
285
316
  - !ruby/object:Gem::Version
286
- version: '0'
317
+ version: '5'
287
318
  - !ruby/object:Gem::Dependency
288
- name: bundler
319
+ name: high_voltage
289
320
  requirement: !ruby/object:Gem::Requirement
290
321
  requirements:
291
322
  - - "~>"
292
323
  - !ruby/object:Gem::Version
293
- version: '1.0'
324
+ version: '3'
294
325
  type: :development
295
326
  prerelease: false
296
327
  version_requirements: !ruby/object:Gem::Requirement
297
328
  requirements:
298
329
  - - "~>"
299
330
  - !ruby/object:Gem::Version
300
- version: '1.0'
331
+ version: '3'
301
332
  - !ruby/object:Gem::Dependency
302
- name: juwelier
333
+ name: launchy
303
334
  requirement: !ruby/object:Gem::Requirement
304
335
  requirements:
305
336
  - - "~>"
@@ -313,202 +344,224 @@ dependencies:
313
344
  - !ruby/object:Gem::Version
314
345
  version: '2'
315
346
  - !ruby/object:Gem::Dependency
316
- name: rubocop
347
+ name: puma
317
348
  requirement: !ruby/object:Gem::Requirement
318
349
  requirements:
319
350
  - - "~>"
320
351
  - !ruby/object:Gem::Version
321
- version: 0.47.1
352
+ version: '6.0'
322
353
  type: :development
323
354
  prerelease: false
324
355
  version_requirements: !ruby/object:Gem::Requirement
325
356
  requirements:
326
357
  - - "~>"
327
358
  - !ruby/object:Gem::Version
328
- version: 0.47.1
359
+ version: '6.0'
329
360
  - !ruby/object:Gem::Dependency
330
- name: scss_lint
361
+ name: rails-controller-testing
331
362
  requirement: !ruby/object:Gem::Requirement
332
363
  requirements:
333
364
  - - "~>"
334
365
  - !ruby/object:Gem::Version
335
- version: '0.52'
366
+ version: '1.0'
336
367
  type: :development
337
368
  prerelease: false
338
369
  version_requirements: !ruby/object:Gem::Requirement
339
370
  requirements:
340
371
  - - "~>"
341
372
  - !ruby/object:Gem::Version
342
- version: '0.52'
373
+ version: '1.0'
343
374
  - !ruby/object:Gem::Dependency
344
- name: byebug
375
+ name: rolify
345
376
  requirement: !ruby/object:Gem::Requirement
346
377
  requirements:
347
- - - "~>"
378
+ - - ">="
348
379
  - !ruby/object:Gem::Version
349
- version: '9'
380
+ version: '4'
350
381
  type: :development
351
382
  prerelease: false
352
383
  version_requirements: !ruby/object:Gem::Requirement
353
384
  requirements:
354
- - - "~>"
385
+ - - ">="
355
386
  - !ruby/object:Gem::Version
356
- version: '9'
387
+ version: '4'
357
388
  - !ruby/object:Gem::Dependency
358
- name: devise
389
+ name: rspec-collection_matchers
390
+ requirement: !ruby/object:Gem::Requirement
391
+ requirements:
392
+ - - ">="
393
+ - !ruby/object:Gem::Version
394
+ version: '1'
395
+ type: :development
396
+ prerelease: false
397
+ version_requirements: !ruby/object:Gem::Requirement
398
+ requirements:
399
+ - - ">="
400
+ - !ruby/object:Gem::Version
401
+ version: '1'
402
+ - !ruby/object:Gem::Dependency
403
+ name: rspec-html-matchers
359
404
  requirement: !ruby/object:Gem::Requirement
360
405
  requirements:
361
406
  - - "~>"
362
407
  - !ruby/object:Gem::Version
363
- version: '4'
408
+ version: '0.10'
364
409
  type: :development
365
410
  prerelease: false
366
411
  version_requirements: !ruby/object:Gem::Requirement
367
412
  requirements:
368
413
  - - "~>"
369
414
  - !ruby/object:Gem::Version
370
- version: '4'
415
+ version: '0.10'
371
416
  - !ruby/object:Gem::Dependency
372
- name: factory_girl_rails
417
+ name: rspec-its
418
+ requirement: !ruby/object:Gem::Requirement
419
+ requirements:
420
+ - - ">="
421
+ - !ruby/object:Gem::Version
422
+ version: '1'
423
+ - - "<"
424
+ - !ruby/object:Gem::Version
425
+ version: '2'
426
+ type: :development
427
+ prerelease: false
428
+ version_requirements: !ruby/object:Gem::Requirement
429
+ requirements:
430
+ - - ">="
431
+ - !ruby/object:Gem::Version
432
+ version: '1'
433
+ - - "<"
434
+ - !ruby/object:Gem::Version
435
+ version: '2'
436
+ - !ruby/object:Gem::Dependency
437
+ name: rspec-rails
373
438
  requirement: !ruby/object:Gem::Requirement
374
439
  requirements:
375
440
  - - "~>"
376
441
  - !ruby/object:Gem::Version
377
- version: '4.5'
442
+ version: '7.0'
378
443
  type: :development
379
444
  prerelease: false
380
445
  version_requirements: !ruby/object:Gem::Requirement
381
446
  requirements:
382
447
  - - "~>"
383
448
  - !ruby/object:Gem::Version
384
- version: '4.5'
449
+ version: '7.0'
385
450
  - !ruby/object:Gem::Dependency
386
- name: faker
451
+ name: rubocop
387
452
  requirement: !ruby/object:Gem::Requirement
388
453
  requirements:
389
454
  - - "~>"
390
455
  - !ruby/object:Gem::Version
391
- version: '1.4'
456
+ version: '1.6'
392
457
  type: :development
393
458
  prerelease: false
394
459
  version_requirements: !ruby/object:Gem::Requirement
395
460
  requirements:
396
461
  - - "~>"
397
462
  - !ruby/object:Gem::Version
398
- version: '1.4'
463
+ version: '1.6'
399
464
  - !ruby/object:Gem::Dependency
400
- name: friendly_id
465
+ name: rubocop-rails
401
466
  requirement: !ruby/object:Gem::Requirement
402
467
  requirements:
403
468
  - - "~>"
404
469
  - !ruby/object:Gem::Version
405
- version: '5'
470
+ version: '2.25'
406
471
  type: :development
407
472
  prerelease: false
408
473
  version_requirements: !ruby/object:Gem::Requirement
409
474
  requirements:
410
475
  - - "~>"
411
476
  - !ruby/object:Gem::Version
412
- version: '5'
477
+ version: '2.25'
413
478
  - !ruby/object:Gem::Dependency
414
- name: high_voltage
479
+ name: rubocop-rake
415
480
  requirement: !ruby/object:Gem::Requirement
416
481
  requirements:
417
482
  - - "~>"
418
483
  - !ruby/object:Gem::Version
419
- version: '3'
484
+ version: '0.7'
420
485
  type: :development
421
486
  prerelease: false
422
487
  version_requirements: !ruby/object:Gem::Requirement
423
488
  requirements:
424
489
  - - "~>"
425
490
  - !ruby/object:Gem::Version
426
- version: '3'
491
+ version: '0.7'
427
492
  - !ruby/object:Gem::Dependency
428
- name: rolify
493
+ name: rubocop-rspec
429
494
  requirement: !ruby/object:Gem::Requirement
430
495
  requirements:
431
- - - "<"
432
- - !ruby/object:Gem::Version
433
- version: '5.2'
434
- - - ">="
496
+ - - "~>"
435
497
  - !ruby/object:Gem::Version
436
- version: '4'
498
+ version: '3.0'
437
499
  type: :development
438
500
  prerelease: false
439
501
  version_requirements: !ruby/object:Gem::Requirement
440
502
  requirements:
441
- - - "<"
442
- - !ruby/object:Gem::Version
443
- version: '5.2'
444
- - - ">="
503
+ - - "~>"
445
504
  - !ruby/object:Gem::Version
446
- version: '4'
505
+ version: '3.0'
447
506
  - !ruby/object:Gem::Dependency
448
- name: rspec-its
507
+ name: seedbank
449
508
  requirement: !ruby/object:Gem::Requirement
450
509
  requirements:
451
- - - ">="
510
+ - - "~>"
452
511
  - !ruby/object:Gem::Version
453
- version: '1'
512
+ version: '0.3'
454
513
  type: :development
455
514
  prerelease: false
456
515
  version_requirements: !ruby/object:Gem::Requirement
457
516
  requirements:
458
- - - ">="
517
+ - - "~>"
459
518
  - !ruby/object:Gem::Version
460
- version: '1'
519
+ version: '0.3'
461
520
  - !ruby/object:Gem::Dependency
462
- name: rspec-rails
521
+ name: shoulda-matchers
463
522
  requirement: !ruby/object:Gem::Requirement
464
523
  requirements:
465
- - - "<"
466
- - !ruby/object:Gem::Version
467
- version: '4'
468
- - - ">="
524
+ - - "~>"
469
525
  - !ruby/object:Gem::Version
470
- version: '3'
526
+ version: '6.0'
471
527
  type: :development
472
528
  prerelease: false
473
529
  version_requirements: !ruby/object:Gem::Requirement
474
530
  requirements:
475
- - - "<"
476
- - !ruby/object:Gem::Version
477
- version: '4'
478
- - - ">="
531
+ - - "~>"
479
532
  - !ruby/object:Gem::Version
480
- version: '3'
533
+ version: '6.0'
481
534
  - !ruby/object:Gem::Dependency
482
- name: seedbank
535
+ name: simplecov
483
536
  requirement: !ruby/object:Gem::Requirement
484
537
  requirements:
485
538
  - - "~>"
486
539
  - !ruby/object:Gem::Version
487
- version: '0.3'
540
+ version: '0.22'
488
541
  type: :development
489
542
  prerelease: false
490
543
  version_requirements: !ruby/object:Gem::Requirement
491
544
  requirements:
492
545
  - - "~>"
493
546
  - !ruby/object:Gem::Version
494
- version: '0.3'
547
+ version: '0.22'
495
548
  - !ruby/object:Gem::Dependency
496
549
  name: sqlite3
497
550
  requirement: !ruby/object:Gem::Requirement
498
551
  requirements:
499
552
  - - "~>"
500
553
  - !ruby/object:Gem::Version
501
- version: '1.3'
554
+ version: '2.1'
502
555
  type: :development
503
556
  prerelease: false
504
557
  version_requirements: !ruby/object:Gem::Requirement
505
558
  requirements:
506
559
  - - "~>"
507
560
  - !ruby/object:Gem::Version
508
- version: '1.3'
509
- description: Rails 4 & 5 Engine providing private and public messaging for any object,
510
- such as Users or Groups
511
- email: karen.e.lundgren@gmail.com
561
+ version: '2.1'
562
+ description: Rails Engine providing private and public messaging for any object, such
563
+ as Users or Groups
564
+ email: loren.lundgren@gmail.com
512
565
  executables: []
513
566
  extensions: []
514
567
  extra_rdoc_files:
@@ -516,6 +569,9 @@ extra_rdoc_files:
516
569
  - README.md
517
570
  files:
518
571
  - ".document"
572
+ - ".gitattributes"
573
+ - ".github/workflows/ci.yml"
574
+ - ".gitignore"
519
575
  - ".rspec"
520
576
  - ".rubocop.yml"
521
577
  - ".rubocop_todo.yml"
@@ -523,14 +579,12 @@ files:
523
579
  - ".ruby-version"
524
580
  - ".scss-lint.yml"
525
581
  - ".simplecov"
526
- - ".travis.yml"
582
+ - CHANGELOG.md
583
+ - CLAUDE.md
527
584
  - Gemfile
528
585
  - LICENSE.txt
529
586
  - README.md
530
587
  - Rakefile
531
- - VERSION
532
- - app/assets/javascripts/ckeditor/config.js
533
- - app/assets/javascripts/message_train.js
534
588
  - app/assets/stylesheets/message_train.scss
535
589
  - app/controllers/concerns/message_train_authorization.rb
536
590
  - app/controllers/concerns/message_train_support.rb
@@ -546,6 +600,10 @@ files:
546
600
  - app/helpers/message_train/collectives_helper.rb
547
601
  - app/helpers/message_train/conversations_helper.rb
548
602
  - app/helpers/message_train/messages_helper.rb
603
+ - app/javascript/controllers/message_train/bulk_actions_controller.js
604
+ - app/javascript/controllers/message_train/lightbox_controller.js
605
+ - app/javascript/controllers/message_train/nested_form_controller.js
606
+ - app/javascript/controllers/message_train/recipient_autocomplete_controller.js
549
607
  - app/mailers/message_train/application_mailer.rb
550
608
  - app/mailers/message_train/previews/receipt_mailer_preview.rb
551
609
  - app/mailers/message_train/receipt_mailer.rb
@@ -601,7 +659,9 @@ files:
601
659
  - app/views/message_train/receipt_mailer/notification_email.html.haml
602
660
  - app/views/message_train/receipt_mailer/notification_email.text.haml
603
661
  - app/views/message_train/unsubscribes/index.html.haml
662
+ - badges/coverage.json
604
663
  - config/environment.rb
664
+ - config/importmap.rb
605
665
  - config/initializers/date_time.rb
606
666
  - config/initializers/kaminari_config.rb
607
667
  - config/locales/en.yml
@@ -614,6 +674,12 @@ files:
614
674
  - db/migrate/20150901183458_add_received_through_to_message_train_receipts.rb
615
675
  - db/migrate/20151004184347_add_unique_index_to_receipts.rb
616
676
  - db/migrate/20151124000820_create_message_train_unsubscribes.rb
677
+ - db/migrate/20260827095938_remove_paperclip_columns_from_message_train_attachments.rb
678
+ - db/migrate/20260827171549_remove_body_from_message_train_messages.rb
679
+ - db/migrate/20260827180000_add_marking_indexes.rb
680
+ - db/migrate/20260827200000_add_body_back_to_message_train_messages.rb
681
+ - docs/screenshots/inbox-desktop.png
682
+ - docs/screenshots/inbox-mobile.png
617
683
  - lib/generators/message_train/install/install_generator.rb
618
684
  - lib/generators/message_train/install/templates/initializer.rb
619
685
  - lib/generators/message_train/utils.rb
@@ -668,19 +734,22 @@ files:
668
734
  - spec/dummy/app/assets/files/message_train/attachments/tips.doc
669
735
  - spec/dummy/app/assets/files/message_train/attachments/wd-spectools-word-sample-04.doc
670
736
  - spec/dummy/app/assets/images/logo.svg
671
- - spec/dummy/app/assets/javascripts/application.js
672
737
  - spec/dummy/app/assets/stylesheets/application.scss
673
- - spec/dummy/app/assets/stylesheets/bootstrap-everything.scss
674
738
  - spec/dummy/app/controllers/application_controller.rb
675
739
  - spec/dummy/app/helpers/application_helper.rb
740
+ - spec/dummy/app/javascript/application.js
741
+ - spec/dummy/app/javascript/controllers/application.js
742
+ - spec/dummy/app/javascript/controllers/index.js
676
743
  - spec/dummy/app/mailers/.keep
677
744
  - spec/dummy/app/models/group.rb
678
745
  - spec/dummy/app/models/role.rb
679
746
  - spec/dummy/app/models/user.rb
747
+ - spec/dummy/app/views/active_storage/blobs/_blob.html.erb
680
748
  - spec/dummy/app/views/layouts/_top_navigation.html.haml
681
749
  - spec/dummy/app/views/layouts/application.html.haml
682
750
  - spec/dummy/app/views/pages/index.html.haml
683
751
  - spec/dummy/bin/bundle
752
+ - spec/dummy/bin/importmap
684
753
  - spec/dummy/bin/rails
685
754
  - spec/dummy/bin/rake
686
755
  - spec/dummy/bin/setup
@@ -692,9 +761,9 @@ files:
692
761
  - spec/dummy/config/environments/development.rb
693
762
  - spec/dummy/config/environments/production.rb
694
763
  - spec/dummy/config/environments/test.rb
764
+ - spec/dummy/config/importmap.rb
695
765
  - spec/dummy/config/initializers/assets.rb
696
766
  - spec/dummy/config/initializers/backtrace_silencers.rb
697
- - spec/dummy/config/initializers/bootstrap_leather.rb
698
767
  - spec/dummy/config/initializers/cookies_serializer.rb
699
768
  - spec/dummy/config/initializers/devise.rb
700
769
  - spec/dummy/config/initializers/filter_parameter_logging.rb
@@ -702,15 +771,14 @@ files:
702
771
  - spec/dummy/config/initializers/inflections.rb
703
772
  - spec/dummy/config/initializers/message_train.rb
704
773
  - spec/dummy/config/initializers/mime_types.rb
705
- - spec/dummy/config/initializers/paperclip.rb
706
774
  - spec/dummy/config/initializers/rolify.rb
707
775
  - spec/dummy/config/initializers/session_store.rb
708
776
  - spec/dummy/config/initializers/wrap_parameters.rb
709
777
  - spec/dummy/config/locales/devise.en.yml
710
778
  - spec/dummy/config/locales/en.yml
711
779
  - spec/dummy/config/routes.rb
712
- - spec/dummy/config/secrets.yml
713
780
  - spec/dummy/config/settings.yml
781
+ - spec/dummy/config/storage.yml
714
782
  - spec/dummy/db/migrate/20150721140013_devise_create_users.rb
715
783
  - spec/dummy/db/migrate/20150721141009_rolify_create_roles.rb
716
784
  - spec/dummy/db/migrate/20150721141128_create_groups.rb
@@ -723,6 +791,12 @@ files:
723
791
  - spec/dummy/db/migrate/20160207190407_add_received_through_to_message_train_receipts.message_train.rb
724
792
  - spec/dummy/db/migrate/20160207190408_add_unique_index_to_receipts.message_train.rb
725
793
  - spec/dummy/db/migrate/20160207190409_create_message_train_unsubscribes.message_train.rb
794
+ - spec/dummy/db/migrate/20260827095939_remove_paperclip_columns_from_message_train_attachments.message_train.rb
795
+ - spec/dummy/db/migrate/20260827161141_create_active_storage_tables.active_storage.rb
796
+ - spec/dummy/db/migrate/20260827171550_remove_body_from_message_train_messages.message_train.rb
797
+ - spec/dummy/db/migrate/20260827225116_add_marking_indexes.message_train.rb
798
+ - spec/dummy/db/migrate/20260828034830_add_body_back_to_message_train_messages.message_train.rb
799
+ - spec/dummy/db/migrate/20260828040000_drop_action_text_tables.rb
726
800
  - spec/dummy/db/schema.rb
727
801
  - spec/dummy/db/seeds.rb
728
802
  - spec/dummy/db/seeds/conversations.seeds.rb
@@ -732,12 +806,12 @@ files:
732
806
  - spec/dummy/db/seeds/test/conversations.seeds.rb
733
807
  - spec/dummy/db/seeds/unsubscribes.seeds.rb
734
808
  - spec/dummy/db/seeds/users.seeds.rb
735
- - spec/dummy/db/test.sqlite3
736
809
  - spec/dummy/lib/assets/.keep
737
810
  - spec/dummy/public/404.html
738
811
  - spec/dummy/public/422.html
739
812
  - spec/dummy/public/500.html
740
813
  - spec/dummy/public/favicon.ico
814
+ - spec/dummy/vendor/javascript/.keep
741
815
  - spec/factories/attachment.rb
742
816
  - spec/factories/group.rb
743
817
  - spec/factories/message.rb
@@ -767,7 +841,7 @@ files:
767
841
  - spec/spec_helper.rb
768
842
  - spec/support/controller_behaviors.rb
769
843
  - spec/support/controller_macros.rb
770
- - spec/support/factory_girl.rb
844
+ - spec/support/factory_bot.rb
771
845
  - spec/support/feature_behaviors.rb
772
846
  - spec/support/loaded_site/attachments.rb
773
847
  - spec/support/loaded_site/conversations.rb
@@ -782,7 +856,6 @@ homepage: http://www.gemvein.com/museum/cases/message_train
782
856
  licenses:
783
857
  - MIT
784
858
  metadata: {}
785
- post_install_message:
786
859
  rdoc_options: []
787
860
  require_paths:
788
861
  - lib
@@ -790,16 +863,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
790
863
  requirements:
791
864
  - - ">="
792
865
  - !ruby/object:Gem::Version
793
- version: '0'
866
+ version: '3.2'
794
867
  required_rubygems_version: !ruby/object:Gem::Requirement
795
868
  requirements:
796
869
  - - ">="
797
870
  - !ruby/object:Gem::Version
798
871
  version: '0'
799
872
  requirements: []
800
- rubyforge_project:
801
- rubygems_version: 2.4.5.1
802
- signing_key:
873
+ rubygems_version: 4.0.16
803
874
  specification_version: 4
804
- summary: Rails 4 & 5 Engine providing messaging for any object
875
+ summary: Rails Engine providing messaging for any object
805
876
  test_files: []