plum-cms 0.2.1 → 0.2.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.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +249 -0
  3. data/README.md +68 -0
  4. data/app/assets/builds/tailwind.css +1 -1
  5. data/app/controllers/plum/cp/entries_controller.rb +88 -5
  6. data/app/controllers/plum/cp/static_cache_controller.rb +12 -0
  7. data/app/controllers/plum/form_submissions_controller.rb +13 -0
  8. data/app/controllers/plum/pages_controller.rb +8 -0
  9. data/app/controllers/plum/theme_assets_controller.rb +2 -0
  10. data/app/javascript/controllers/plum/write_controller.js +174 -0
  11. data/app/models/plum/asset.rb +1 -0
  12. data/app/models/plum/content_type.rb +1 -0
  13. data/app/models/plum/entry.rb +57 -0
  14. data/app/models/plum/entry_term.rb +1 -0
  15. data/app/models/plum/form_definition.rb +1 -0
  16. data/app/models/plum/global.rb +1 -0
  17. data/app/models/plum/nav_item.rb +1 -0
  18. data/app/models/plum/nav_menu.rb +1 -0
  19. data/app/models/plum/site.rb +2 -0
  20. data/app/models/plum/site_setting.rb +1 -0
  21. data/app/models/plum/static_cache_invalidation.rb +30 -0
  22. data/app/models/plum/taxonomy.rb +1 -0
  23. data/app/models/plum/term.rb +1 -0
  24. data/app/services/plum/config_sync.rb +252 -0
  25. data/app/services/plum/draft_diff.rb +177 -0
  26. data/app/services/plum/form_renderer.rb +12 -1
  27. data/app/services/plum/liquid_context.rb +0 -2
  28. data/app/views/layouts/plum/cp.html.erb +1 -1
  29. data/app/views/layouts/plum/session.html.erb +1 -1
  30. data/app/views/layouts/plum/write.html.erb +140 -0
  31. data/app/views/plum/cp/dashboard/show.html.erb +10 -3
  32. data/app/views/plum/cp/entries/_form.html.erb +2 -2
  33. data/app/views/plum/cp/entries/diff.html.erb +40 -0
  34. data/app/views/plum/cp/entries/edit.html.erb +24 -0
  35. data/app/views/plum/cp/entries/index.html.erb +3 -0
  36. data/app/views/plum/cp/entries/write.html.erb +60 -0
  37. data/config/plum_routes.rb +5 -0
  38. data/db/engine_migrate/20260811090000_add_draft_data_to_plum_entries.rb +5 -0
  39. data/docs/config-as-code.md +103 -0
  40. data/docs/plum-cli.md +422 -0
  41. data/docs/static-caching.md +163 -0
  42. data/docs/zero-to-agency.md +172 -0
  43. data/lib/generators/plum/install/install_generator.rb +13 -1
  44. data/lib/generators/plum/install/templates/plum_initializer.rb +8 -0
  45. data/lib/plum/configuration.rb +12 -1
  46. data/lib/plum/engine.rb +18 -4
  47. data/lib/plum/static_cache/middleware.rb +61 -0
  48. data/lib/plum/static_cache.rb +103 -0
  49. data/lib/plum/version.rb +1 -1
  50. data/lib/plum.rb +7 -0
  51. data/lib/tasks/plum_config.rake +48 -0
  52. data/lib/tasks/plum_portability.rake +54 -29
  53. data/lib/tasks/plum_styles.rake +14 -9
  54. metadata +30 -5
metadata CHANGED
@@ -1,13 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: plum-cms
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Simmons
8
+ autorequire:
8
9
  bindir: bin
9
10
  cert_chain: []
10
- date: 1980-01-02 00:00:00.000000000 Z
11
+ date: 2026-09-19 00:00:00.000000000 Z
11
12
  dependencies:
12
13
  - !ruby/object:Gem::Dependency
13
14
  name: bcrypt
@@ -179,16 +180,22 @@ dependencies:
179
180
  name: image_processing
180
181
  requirement: !ruby/object:Gem::Requirement
181
182
  requirements:
182
- - - "~>"
183
+ - - ">="
183
184
  - !ruby/object:Gem::Version
184
185
  version: '1.2'
186
+ - - "<"
187
+ - !ruby/object:Gem::Version
188
+ version: '3'
185
189
  type: :runtime
186
190
  prerelease: false
187
191
  version_requirements: !ruby/object:Gem::Requirement
188
192
  requirements:
189
- - - "~>"
193
+ - - ">="
190
194
  - !ruby/object:Gem::Version
191
195
  version: '1.2'
196
+ - - "<"
197
+ - !ruby/object:Gem::Version
198
+ version: '3'
192
199
  description: Plum is a Rails-native CMS engine with Hotwire control panel, Liquid
193
200
  themes, and site-scoped content.
194
201
  email:
@@ -222,6 +229,7 @@ files:
222
229
  - app/controllers/plum/cp/nav_items_controller.rb
223
230
  - app/controllers/plum/cp/nav_menus_controller.rb
224
231
  - app/controllers/plum/cp/site_settings_controller.rb
232
+ - app/controllers/plum/cp/static_cache_controller.rb
225
233
  - app/controllers/plum/cp/taxonomies_controller.rb
226
234
  - app/controllers/plum/cp/terms_controller.rb
227
235
  - app/controllers/plum/cp/theme_previews_controller.rb
@@ -246,6 +254,7 @@ files:
246
254
  - app/javascript/controllers/plum/image_picker_controller.js
247
255
  - app/javascript/controllers/plum/structured_field_controller.js
248
256
  - app/javascript/controllers/plum/theme_settings_controller.js
257
+ - app/javascript/controllers/plum/write_controller.js
249
258
  - app/models/plum/application_record.rb
250
259
  - app/models/plum/asset.rb
251
260
  - app/models/plum/content_type.rb
@@ -261,6 +270,7 @@ files:
261
270
  - app/models/plum/site.rb
262
271
  - app/models/plum/site_scoped.rb
263
272
  - app/models/plum/site_setting.rb
273
+ - app/models/plum/static_cache_invalidation.rb
264
274
  - app/models/plum/taxonomy.rb
265
275
  - app/models/plum/term.rb
266
276
  - app/models/plum/user.rb
@@ -268,6 +278,8 @@ files:
268
278
  - app/services/plum/block_editor_config.rb
269
279
  - app/services/plum/block_library.rb
270
280
  - app/services/plum/builder_renderer.rb
281
+ - app/services/plum/config_sync.rb
282
+ - app/services/plum/draft_diff.rb
271
283
  - app/services/plum/entry_serializer.rb
272
284
  - app/services/plum/field_expander.rb
273
285
  - app/services/plum/field_options.rb
@@ -320,6 +332,7 @@ files:
320
332
  - app/themes/default/theme.yml
321
333
  - app/views/layouts/plum/cp.html.erb
322
334
  - app/views/layouts/plum/session.html.erb
335
+ - app/views/layouts/plum/write.html.erb
323
336
  - app/views/plum/cp/assets/_form.html.erb
324
337
  - app/views/plum/cp/assets/edit.html.erb
325
338
  - app/views/plum/cp/assets/index.html.erb
@@ -332,9 +345,11 @@ files:
332
345
  - app/views/plum/cp/custom_fields/_input.html.erb
333
346
  - app/views/plum/cp/dashboard/show.html.erb
334
347
  - app/views/plum/cp/entries/_form.html.erb
348
+ - app/views/plum/cp/entries/diff.html.erb
335
349
  - app/views/plum/cp/entries/edit.html.erb
336
350
  - app/views/plum/cp/entries/index.html.erb
337
351
  - app/views/plum/cp/entries/new.html.erb
352
+ - app/views/plum/cp/entries/write.html.erb
338
353
  - app/views/plum/cp/entry_revisions/index.html.erb
339
354
  - app/views/plum/cp/fieldsets/index.html.erb
340
355
  - app/views/plum/cp/form_definitions/_form.html.erb
@@ -382,15 +397,20 @@ files:
382
397
  - db/engine_migrate/20260807140000_create_plum_fieldsets.rb
383
398
  - db/engine_migrate/20260807150000_add_focal_point_to_plum_assets.rb
384
399
  - db/engine_migrate/20260807160000_add_localization_to_plum_entries.rb
400
+ - db/engine_migrate/20260811090000_add_draft_data_to_plum_entries.rb
385
401
  - docs/blueprint-fields.md
402
+ - docs/config-as-code.md
386
403
  - docs/extensions.md
404
+ - docs/plum-cli.md
387
405
  - docs/portability.md
388
406
  - docs/product-principles.md
389
407
  - docs/roadmap.md
390
408
  - docs/site/homepage.md
391
409
  - docs/site/information-architecture.md
392
410
  - docs/statamic-parity.md
411
+ - docs/static-caching.md
393
412
  - docs/vision.md
413
+ - docs/zero-to-agency.md
394
414
  - lib/generators/plum/install/install_generator.rb
395
415
  - lib/generators/plum/install/templates/plum_initializer.rb
396
416
  - lib/plum.rb
@@ -400,7 +420,10 @@ files:
400
420
  - lib/plum/content_source_registry.rb
401
421
  - lib/plum/engine.rb
402
422
  - lib/plum/liquid_tags/form_tag.rb
423
+ - lib/plum/static_cache.rb
424
+ - lib/plum/static_cache/middleware.rb
403
425
  - lib/plum/version.rb
426
+ - lib/tasks/plum_config.rake
404
427
  - lib/tasks/plum_portability.rake
405
428
  - lib/tasks/plum_styles.rake
406
429
  - vendor/javascript/lexxy.js
@@ -412,6 +435,7 @@ metadata:
412
435
  rubygems_mfa_required: 'true'
413
436
  source_code_uri: https://github.com/tableneeds/plum
414
437
  bug_tracker_uri: https://github.com/tableneeds/plum/issues
438
+ post_install_message:
415
439
  rdoc_options: []
416
440
  require_paths:
417
441
  - lib
@@ -427,7 +451,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
427
451
  - !ruby/object:Gem::Version
428
452
  version: '0'
429
453
  requirements: []
430
- rubygems_version: 3.6.9
454
+ rubygems_version: 3.5.9
455
+ signing_key:
431
456
  specification_version: 4
432
457
  summary: A Rails-native CMS engine.
433
458
  test_files: []