activeadmin_favorites 0.1.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 (59) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +17 -0
  3. data/CODE_OF_CONDUCT.md +31 -0
  4. data/CONTRIBUTING.md +29 -0
  5. data/GOVERNANCE.md +29 -0
  6. data/LICENSE.md +21 -0
  7. data/README.md +146 -0
  8. data/SECURITY.md +27 -0
  9. data/activeadmin_favorites.gemspec +68 -0
  10. data/app/assets/controllers/activeadmin_favorites/personalization_controller.js +199 -0
  11. data/app/models/active_admin/favorites/application_record.rb +9 -0
  12. data/app/models/active_admin/favorites/combined_favorite.rb +9 -0
  13. data/app/models/active_admin/favorites/favorite/macro_builder.rb +43 -0
  14. data/app/models/active_admin/favorites/favorite/macro_catalog.rb +118 -0
  15. data/app/models/active_admin/favorites/favorite/macro_resolver.rb +86 -0
  16. data/app/models/active_admin/favorites/favorite/macro_validator.rb +87 -0
  17. data/app/models/active_admin/favorites/favorite/query_params.rb +41 -0
  18. data/app/models/active_admin/favorites/favorite/range_detector.rb +54 -0
  19. data/app/models/active_admin/favorites/favorite.rb +339 -0
  20. data/app/models/active_admin/favorites/filters_favorite.rb +8 -0
  21. data/app/models/active_admin/favorites/lens_favorite.rb +9 -0
  22. data/app/models/active_admin/favorites/view_lens/layout.rb +86 -0
  23. data/app/models/active_admin/favorites/view_lens_default.rb +40 -0
  24. data/app/models/active_admin/favorites.rb +6 -0
  25. data/app/views/active_admin/favorites/_lens_catalog_data.html.erb +9 -0
  26. data/app/views/active_admin/favorites/_macro_fields.html.erb +53 -0
  27. data/app/views/active_admin/favorites/_personalization_trigger.html.erb +69 -0
  28. data/app/views/active_admin/resource/index.html.arb +99 -0
  29. data/app/views/active_admin/resource/show.html.arb +13 -0
  30. data/config/locales/activeadmin_favorites.en.yml +60 -0
  31. data/config/locales/activeadmin_favorites.host.yml.example +17 -0
  32. data/config/polyrun_coverage.yml +8 -0
  33. data/db/migrate/20260709100000_create_active_admin_view_lens_defaults.rb +24 -0
  34. data/db/migrate/20260709130000_create_admin_favorites.rb +33 -0
  35. data/lib/activeadmin/favorites/configuration.rb +31 -0
  36. data/lib/activeadmin/favorites/engine.rb +75 -0
  37. data/lib/activeadmin/favorites/hash_coercion.rb +34 -0
  38. data/lib/activeadmin/favorites/install.rb +121 -0
  39. data/lib/activeadmin/favorites/migration_helpers.rb +34 -0
  40. data/lib/activeadmin/favorites/migration_support.rb +19 -0
  41. data/lib/activeadmin/favorites/register_favorites.rb +272 -0
  42. data/lib/activeadmin/favorites/register_view_lens_preferences.rb +98 -0
  43. data/lib/activeadmin/favorites/user_record.rb +26 -0
  44. data/lib/activeadmin/favorites/version.rb +7 -0
  45. data/lib/activeadmin/favorites/view_lens/applicator.rb +150 -0
  46. data/lib/activeadmin/favorites/view_lens/catalog.rb +108 -0
  47. data/lib/activeadmin/favorites/view_lens/current.rb +28 -0
  48. data/lib/activeadmin/favorites/view_lens/patches.rb +95 -0
  49. data/lib/activeadmin/favorites/view_lens/resource_dsl.rb +44 -0
  50. data/lib/activeadmin/favorites/view_lens.rb +8 -0
  51. data/lib/activeadmin/favorites.rb +30 -0
  52. data/lib/activeadmin_favorites.rb +5 -0
  53. data/lib/generators/activeadmin_favorites/install/templates/favorite_policy.rb +56 -0
  54. data/lib/generators/activeadmin_favorites/install/templates/initializer.rb +16 -0
  55. data/lib/generators/activeadmin_favorites/install/templates/locale.en.yml +60 -0
  56. data/lib/generators/activeadmin_favorites/install_generator.rb +37 -0
  57. data/lib/tasks/activeadmin_favorites_tasks.rake +39 -0
  58. data/sig/activeadmin/favorites.rbs +5 -0
  59. metadata +418 -0
metadata ADDED
@@ -0,0 +1,418 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: activeadmin_favorites
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Andrei Makarov
8
+ bindir: bin
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: activeadmin
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: 4.0.0.beta13
19
+ - - "<"
20
+ - !ruby/object:Gem::Version
21
+ version: '5'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ version: 4.0.0.beta13
29
+ - - "<"
30
+ - !ruby/object:Gem::Version
31
+ version: '5'
32
+ - !ruby/object:Gem::Dependency
33
+ name: importmap-rails
34
+ requirement: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ">="
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ type: :runtime
40
+ prerelease: false
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: rails
48
+ requirement: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: '7.2'
53
+ type: :runtime
54
+ prerelease: false
55
+ version_requirements: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: '7.2'
60
+ - !ruby/object:Gem::Dependency
61
+ name: factory_bot
62
+ requirement: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - "~>"
65
+ - !ruby/object:Gem::Version
66
+ version: '6'
67
+ type: :development
68
+ prerelease: false
69
+ version_requirements: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - "~>"
72
+ - !ruby/object:Gem::Version
73
+ version: '6'
74
+ - !ruby/object:Gem::Dependency
75
+ name: appraisal
76
+ requirement: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - "~>"
79
+ - !ruby/object:Gem::Version
80
+ version: '2'
81
+ type: :development
82
+ prerelease: false
83
+ version_requirements: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - "~>"
86
+ - !ruby/object:Gem::Version
87
+ version: '2'
88
+ - !ruby/object:Gem::Dependency
89
+ name: bundler-audit
90
+ requirement: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - "~>"
93
+ - !ruby/object:Gem::Version
94
+ version: '0.9'
95
+ type: :development
96
+ prerelease: false
97
+ version_requirements: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - "~>"
100
+ - !ruby/object:Gem::Version
101
+ version: '0.9'
102
+ - !ruby/object:Gem::Dependency
103
+ name: bundler
104
+ requirement: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - ">="
107
+ - !ruby/object:Gem::Version
108
+ version: '2'
109
+ type: :development
110
+ prerelease: false
111
+ version_requirements: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - ">="
114
+ - !ruby/object:Gem::Version
115
+ version: '2'
116
+ - !ruby/object:Gem::Dependency
117
+ name: polyrun
118
+ requirement: !ruby/object:Gem::Requirement
119
+ requirements:
120
+ - - ">="
121
+ - !ruby/object:Gem::Version
122
+ version: 2.2.0
123
+ type: :development
124
+ prerelease: false
125
+ version_requirements: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - ">="
128
+ - !ruby/object:Gem::Version
129
+ version: 2.2.0
130
+ - !ruby/object:Gem::Dependency
131
+ name: prosopite
132
+ requirement: !ruby/object:Gem::Requirement
133
+ requirements:
134
+ - - "~>"
135
+ - !ruby/object:Gem::Version
136
+ version: '2.0'
137
+ type: :development
138
+ prerelease: false
139
+ version_requirements: !ruby/object:Gem::Requirement
140
+ requirements:
141
+ - - "~>"
142
+ - !ruby/object:Gem::Version
143
+ version: '2.0'
144
+ - !ruby/object:Gem::Dependency
145
+ name: rake
146
+ requirement: !ruby/object:Gem::Requirement
147
+ requirements:
148
+ - - "~>"
149
+ - !ruby/object:Gem::Version
150
+ version: '13'
151
+ type: :development
152
+ prerelease: false
153
+ version_requirements: !ruby/object:Gem::Requirement
154
+ requirements:
155
+ - - "~>"
156
+ - !ruby/object:Gem::Version
157
+ version: '13'
158
+ - !ruby/object:Gem::Dependency
159
+ name: rspec
160
+ requirement: !ruby/object:Gem::Requirement
161
+ requirements:
162
+ - - "~>"
163
+ - !ruby/object:Gem::Version
164
+ version: '3'
165
+ type: :development
166
+ prerelease: false
167
+ version_requirements: !ruby/object:Gem::Requirement
168
+ requirements:
169
+ - - "~>"
170
+ - !ruby/object:Gem::Version
171
+ version: '3'
172
+ - !ruby/object:Gem::Dependency
173
+ name: rspec-rails
174
+ requirement: !ruby/object:Gem::Requirement
175
+ requirements:
176
+ - - ">="
177
+ - !ruby/object:Gem::Version
178
+ version: '6'
179
+ type: :development
180
+ prerelease: false
181
+ version_requirements: !ruby/object:Gem::Requirement
182
+ requirements:
183
+ - - ">="
184
+ - !ruby/object:Gem::Version
185
+ version: '6'
186
+ - !ruby/object:Gem::Dependency
187
+ name: sqlite3
188
+ requirement: !ruby/object:Gem::Requirement
189
+ requirements:
190
+ - - ">="
191
+ - !ruby/object:Gem::Version
192
+ version: '1'
193
+ type: :development
194
+ prerelease: false
195
+ version_requirements: !ruby/object:Gem::Requirement
196
+ requirements:
197
+ - - ">="
198
+ - !ruby/object:Gem::Version
199
+ version: '1'
200
+ - !ruby/object:Gem::Dependency
201
+ name: rubocop-rails
202
+ requirement: !ruby/object:Gem::Requirement
203
+ requirements:
204
+ - - "~>"
205
+ - !ruby/object:Gem::Version
206
+ version: '2.34'
207
+ type: :development
208
+ prerelease: false
209
+ version_requirements: !ruby/object:Gem::Requirement
210
+ requirements:
211
+ - - "~>"
212
+ - !ruby/object:Gem::Version
213
+ version: '2.34'
214
+ - !ruby/object:Gem::Dependency
215
+ name: rubocop-rspec
216
+ requirement: !ruby/object:Gem::Requirement
217
+ requirements:
218
+ - - "~>"
219
+ - !ruby/object:Gem::Version
220
+ version: '3.8'
221
+ type: :development
222
+ prerelease: false
223
+ version_requirements: !ruby/object:Gem::Requirement
224
+ requirements:
225
+ - - "~>"
226
+ - !ruby/object:Gem::Version
227
+ version: '3.8'
228
+ - !ruby/object:Gem::Dependency
229
+ name: rubocop-thread_safety
230
+ requirement: !ruby/object:Gem::Requirement
231
+ requirements:
232
+ - - "~>"
233
+ - !ruby/object:Gem::Version
234
+ version: '0.7'
235
+ type: :development
236
+ prerelease: false
237
+ version_requirements: !ruby/object:Gem::Requirement
238
+ requirements:
239
+ - - "~>"
240
+ - !ruby/object:Gem::Version
241
+ version: '0.7'
242
+ - !ruby/object:Gem::Dependency
243
+ name: standard
244
+ requirement: !ruby/object:Gem::Requirement
245
+ requirements:
246
+ - - "~>"
247
+ - !ruby/object:Gem::Version
248
+ version: '1.52'
249
+ type: :development
250
+ prerelease: false
251
+ version_requirements: !ruby/object:Gem::Requirement
252
+ requirements:
253
+ - - "~>"
254
+ - !ruby/object:Gem::Version
255
+ version: '1.52'
256
+ - !ruby/object:Gem::Dependency
257
+ name: standard-custom
258
+ requirement: !ruby/object:Gem::Requirement
259
+ requirements:
260
+ - - "~>"
261
+ - !ruby/object:Gem::Version
262
+ version: '1.0'
263
+ type: :development
264
+ prerelease: false
265
+ version_requirements: !ruby/object:Gem::Requirement
266
+ requirements:
267
+ - - "~>"
268
+ - !ruby/object:Gem::Version
269
+ version: '1.0'
270
+ - !ruby/object:Gem::Dependency
271
+ name: standard-performance
272
+ requirement: !ruby/object:Gem::Requirement
273
+ requirements:
274
+ - - "~>"
275
+ - !ruby/object:Gem::Version
276
+ version: '1.8'
277
+ type: :development
278
+ prerelease: false
279
+ version_requirements: !ruby/object:Gem::Requirement
280
+ requirements:
281
+ - - "~>"
282
+ - !ruby/object:Gem::Version
283
+ version: '1.8'
284
+ - !ruby/object:Gem::Dependency
285
+ name: standard-rails
286
+ requirement: !ruby/object:Gem::Requirement
287
+ requirements:
288
+ - - "~>"
289
+ - !ruby/object:Gem::Version
290
+ version: '1.5'
291
+ type: :development
292
+ prerelease: false
293
+ version_requirements: !ruby/object:Gem::Requirement
294
+ requirements:
295
+ - - "~>"
296
+ - !ruby/object:Gem::Version
297
+ version: '1.5'
298
+ - !ruby/object:Gem::Dependency
299
+ name: standard-rspec
300
+ requirement: !ruby/object:Gem::Requirement
301
+ requirements:
302
+ - - "~>"
303
+ - !ruby/object:Gem::Version
304
+ version: '0.3'
305
+ type: :development
306
+ prerelease: false
307
+ version_requirements: !ruby/object:Gem::Requirement
308
+ requirements:
309
+ - - "~>"
310
+ - !ruby/object:Gem::Version
311
+ version: '0.3'
312
+ - !ruby/object:Gem::Dependency
313
+ name: rbs
314
+ requirement: !ruby/object:Gem::Requirement
315
+ requirements:
316
+ - - "~>"
317
+ - !ruby/object:Gem::Version
318
+ version: '4'
319
+ type: :development
320
+ prerelease: false
321
+ version_requirements: !ruby/object:Gem::Requirement
322
+ requirements:
323
+ - - "~>"
324
+ - !ruby/object:Gem::Version
325
+ version: '4'
326
+ description: Saved filter bookmarks, per-resource layout preferences, and a cogwheel
327
+ personalization UI for ActiveAdmin index and show pages.
328
+ email:
329
+ - contact@kiskolabs.com
330
+ executables: []
331
+ extensions: []
332
+ extra_rdoc_files: []
333
+ files:
334
+ - CHANGELOG.md
335
+ - CODE_OF_CONDUCT.md
336
+ - CONTRIBUTING.md
337
+ - GOVERNANCE.md
338
+ - LICENSE.md
339
+ - README.md
340
+ - SECURITY.md
341
+ - activeadmin_favorites.gemspec
342
+ - app/assets/controllers/activeadmin_favorites/personalization_controller.js
343
+ - app/models/active_admin/favorites.rb
344
+ - app/models/active_admin/favorites/application_record.rb
345
+ - app/models/active_admin/favorites/combined_favorite.rb
346
+ - app/models/active_admin/favorites/favorite.rb
347
+ - app/models/active_admin/favorites/favorite/macro_builder.rb
348
+ - app/models/active_admin/favorites/favorite/macro_catalog.rb
349
+ - app/models/active_admin/favorites/favorite/macro_resolver.rb
350
+ - app/models/active_admin/favorites/favorite/macro_validator.rb
351
+ - app/models/active_admin/favorites/favorite/query_params.rb
352
+ - app/models/active_admin/favorites/favorite/range_detector.rb
353
+ - app/models/active_admin/favorites/filters_favorite.rb
354
+ - app/models/active_admin/favorites/lens_favorite.rb
355
+ - app/models/active_admin/favorites/view_lens/layout.rb
356
+ - app/models/active_admin/favorites/view_lens_default.rb
357
+ - app/views/active_admin/favorites/_lens_catalog_data.html.erb
358
+ - app/views/active_admin/favorites/_macro_fields.html.erb
359
+ - app/views/active_admin/favorites/_personalization_trigger.html.erb
360
+ - app/views/active_admin/resource/index.html.arb
361
+ - app/views/active_admin/resource/show.html.arb
362
+ - config/locales/activeadmin_favorites.en.yml
363
+ - config/locales/activeadmin_favorites.host.yml.example
364
+ - config/polyrun_coverage.yml
365
+ - db/migrate/20260709100000_create_active_admin_view_lens_defaults.rb
366
+ - db/migrate/20260709130000_create_admin_favorites.rb
367
+ - lib/activeadmin/favorites.rb
368
+ - lib/activeadmin/favorites/configuration.rb
369
+ - lib/activeadmin/favorites/engine.rb
370
+ - lib/activeadmin/favorites/hash_coercion.rb
371
+ - lib/activeadmin/favorites/install.rb
372
+ - lib/activeadmin/favorites/migration_helpers.rb
373
+ - lib/activeadmin/favorites/migration_support.rb
374
+ - lib/activeadmin/favorites/register_favorites.rb
375
+ - lib/activeadmin/favorites/register_view_lens_preferences.rb
376
+ - lib/activeadmin/favorites/user_record.rb
377
+ - lib/activeadmin/favorites/version.rb
378
+ - lib/activeadmin/favorites/view_lens.rb
379
+ - lib/activeadmin/favorites/view_lens/applicator.rb
380
+ - lib/activeadmin/favorites/view_lens/catalog.rb
381
+ - lib/activeadmin/favorites/view_lens/current.rb
382
+ - lib/activeadmin/favorites/view_lens/patches.rb
383
+ - lib/activeadmin/favorites/view_lens/resource_dsl.rb
384
+ - lib/activeadmin_favorites.rb
385
+ - lib/generators/activeadmin_favorites/install/templates/favorite_policy.rb
386
+ - lib/generators/activeadmin_favorites/install/templates/initializer.rb
387
+ - lib/generators/activeadmin_favorites/install/templates/locale.en.yml
388
+ - lib/generators/activeadmin_favorites/install_generator.rb
389
+ - lib/tasks/activeadmin_favorites_tasks.rake
390
+ - sig/activeadmin/favorites.rbs
391
+ homepage: https://github.com/amkisko/activeadmin_favorites.rb
392
+ licenses:
393
+ - MIT
394
+ metadata:
395
+ homepage_uri: https://github.com/amkisko/activeadmin_favorites.rb
396
+ source_code_uri: https://github.com/amkisko/activeadmin_favorites.rb/tree/main
397
+ changelog_uri: https://github.com/amkisko/activeadmin_favorites.rb/blob/main/CHANGELOG.md
398
+ bug_tracker_uri: https://github.com/amkisko/activeadmin_favorites.rb/issues
399
+ documentation_uri: https://github.com/amkisko/activeadmin_favorites.rb#readme
400
+ rubygems_mfa_required: 'true'
401
+ rdoc_options: []
402
+ require_paths:
403
+ - lib
404
+ required_ruby_version: !ruby/object:Gem::Requirement
405
+ requirements:
406
+ - - ">="
407
+ - !ruby/object:Gem::Version
408
+ version: '3.4'
409
+ required_rubygems_version: !ruby/object:Gem::Requirement
410
+ requirements:
411
+ - - ">="
412
+ - !ruby/object:Gem::Version
413
+ version: '0'
414
+ requirements: []
415
+ rubygems_version: 4.0.6
416
+ specification_version: 4
417
+ summary: Favorites and view lens personalization for ActiveAdmin 4
418
+ test_files: []