railspress-engine 0.1.2 → 1.2.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 (140) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +20 -0
  3. data/README.md +195 -25
  4. data/app/assets/javascripts/railspress/admin.js +39 -0
  5. data/app/assets/javascripts/railspress/markdown_mode.js +343 -0
  6. data/app/assets/stylesheets/application.css +0 -0
  7. data/app/assets/stylesheets/railspress/admin/badges.css +70 -0
  8. data/app/assets/stylesheets/railspress/admin/base.css +25 -0
  9. data/app/assets/stylesheets/railspress/admin/buttons.css +140 -0
  10. data/app/assets/stylesheets/railspress/admin/cards.css +52 -0
  11. data/app/assets/stylesheets/railspress/admin/components/exports.css +55 -0
  12. data/app/assets/stylesheets/railspress/admin/components/focal_point.css +801 -0
  13. data/app/assets/stylesheets/railspress/admin/components/imports.css +144 -0
  14. data/app/assets/stylesheets/railspress/admin/components/lexxy.css +156 -0
  15. data/app/assets/stylesheets/railspress/admin/filters.css +73 -0
  16. data/app/assets/stylesheets/railspress/admin/flash.css +26 -0
  17. data/app/assets/stylesheets/railspress/admin/forms.css +459 -0
  18. data/app/assets/stylesheets/railspress/admin/layout.css +256 -0
  19. data/app/assets/stylesheets/railspress/admin/lists.css +24 -0
  20. data/app/assets/stylesheets/railspress/admin/page.css +111 -0
  21. data/app/assets/stylesheets/railspress/admin/responsive.css +174 -0
  22. data/app/assets/stylesheets/railspress/admin/stats.css +43 -0
  23. data/app/assets/stylesheets/railspress/admin/tables.css +163 -0
  24. data/app/assets/stylesheets/railspress/admin/utilities.css +202 -0
  25. data/app/assets/stylesheets/railspress/admin/variables.css +58 -0
  26. data/app/assets/stylesheets/railspress/application.css +44 -13
  27. data/app/controllers/railspress/admin/base_controller.rb +6 -3
  28. data/app/controllers/railspress/admin/categories_controller.rb +1 -1
  29. data/app/controllers/railspress/admin/cms_transfers_controller.rb +49 -0
  30. data/app/controllers/railspress/admin/content_element_versions_controller.rb +12 -0
  31. data/app/controllers/railspress/admin/content_elements_controller.rb +143 -0
  32. data/app/controllers/railspress/admin/content_groups_controller.rb +69 -0
  33. data/app/controllers/railspress/admin/dashboard_controller.rb +6 -0
  34. data/app/controllers/railspress/admin/entities_controller.rb +157 -0
  35. data/app/controllers/railspress/admin/exports_controller.rb +55 -0
  36. data/app/controllers/railspress/admin/focal_points_controller.rb +100 -0
  37. data/app/controllers/railspress/admin/imports_controller.rb +63 -0
  38. data/app/controllers/railspress/admin/posts_controller.rb +58 -4
  39. data/app/controllers/railspress/admin/prototypes_controller.rb +30 -0
  40. data/app/controllers/railspress/admin/tags_controller.rb +1 -1
  41. data/app/controllers/railspress/application_controller.rb +1 -0
  42. data/app/helpers/railspress/admin_helper.rb +733 -0
  43. data/app/helpers/railspress/application_helper.rb +23 -0
  44. data/app/helpers/railspress/cms_helper.rb +319 -0
  45. data/app/javascript/railspress/controllers/cms_inline_editor_controller.js +147 -0
  46. data/app/javascript/railspress/controllers/content_element_form_controller.js +15 -0
  47. data/app/javascript/railspress/controllers/crop_controller.js +224 -0
  48. data/app/javascript/railspress/controllers/dropzone_controller.js +261 -0
  49. data/app/javascript/railspress/controllers/focal_point_controller.js +124 -0
  50. data/app/javascript/railspress/controllers/image_section_controller.js +94 -0
  51. data/app/javascript/railspress/controllers/index.js +37 -0
  52. data/app/javascript/railspress/index.js +62 -0
  53. data/app/jobs/railspress/export_posts_job.rb +16 -0
  54. data/app/jobs/railspress/import_posts_job.rb +44 -0
  55. data/app/models/concerns/railspress/has_focal_point.rb +242 -0
  56. data/app/models/concerns/railspress/soft_deletable.rb +23 -0
  57. data/app/models/concerns/railspress/taggable.rb +23 -0
  58. data/app/models/railspress/content_element.rb +103 -0
  59. data/app/models/railspress/content_element_version.rb +32 -0
  60. data/app/models/railspress/content_group.rb +39 -0
  61. data/app/models/railspress/export.rb +67 -0
  62. data/app/models/railspress/focal_point.rb +70 -0
  63. data/app/models/railspress/import.rb +65 -0
  64. data/app/models/railspress/post.rb +102 -15
  65. data/app/models/railspress/post_export_processor.rb +162 -0
  66. data/app/models/railspress/post_import_processor.rb +382 -0
  67. data/app/models/railspress/tag.rb +10 -3
  68. data/app/models/railspress/tagging.rb +11 -0
  69. data/app/services/railspress/content_export_service.rb +122 -0
  70. data/app/services/railspress/content_import_service.rb +228 -0
  71. data/app/views/action_text/attachables/_remote_image.html.erb +8 -0
  72. data/app/views/active_storage/blobs/_blob.html.erb +1 -1
  73. data/app/views/layouts/railspress/admin.html.erb +3 -1
  74. data/app/views/railspress/admin/categories/index.html.erb +11 -15
  75. data/app/views/railspress/admin/cms_transfers/show.html.erb +167 -0
  76. data/app/views/railspress/admin/content_element_versions/show.html.erb +42 -0
  77. data/app/views/railspress/admin/content_elements/_form.html.erb +71 -0
  78. data/app/views/railspress/admin/content_elements/_inline_form.html.erb +32 -0
  79. data/app/views/railspress/admin/content_elements/_inline_form_frame.html.erb +6 -0
  80. data/app/views/railspress/admin/content_elements/edit.html.erb +6 -0
  81. data/app/views/railspress/admin/content_elements/index.html.erb +74 -0
  82. data/app/views/railspress/admin/content_elements/new.html.erb +6 -0
  83. data/app/views/railspress/admin/content_elements/show.html.erb +124 -0
  84. data/app/views/railspress/admin/content_groups/_form.html.erb +9 -0
  85. data/app/views/railspress/admin/content_groups/edit.html.erb +6 -0
  86. data/app/views/railspress/admin/content_groups/index.html.erb +42 -0
  87. data/app/views/railspress/admin/content_groups/new.html.erb +6 -0
  88. data/app/views/railspress/admin/content_groups/show.html.erb +92 -0
  89. data/app/views/railspress/admin/dashboard/index.html.erb +36 -1
  90. data/app/views/railspress/admin/entities/_form.html.erb +53 -0
  91. data/app/views/railspress/admin/entities/edit.html.erb +4 -0
  92. data/app/views/railspress/admin/entities/index.html.erb +74 -0
  93. data/app/views/railspress/admin/entities/new.html.erb +4 -0
  94. data/app/views/railspress/admin/entities/show.html.erb +117 -0
  95. data/app/views/railspress/admin/exports/show.html.erb +62 -0
  96. data/app/views/railspress/admin/imports/_instructions.html.erb +56 -0
  97. data/app/views/railspress/admin/imports/show.html.erb +137 -0
  98. data/app/views/railspress/admin/posts/_form.html.erb +102 -28
  99. data/app/views/railspress/admin/posts/_post_row.html.erb +40 -0
  100. data/app/views/railspress/admin/posts/index.html.erb +47 -36
  101. data/app/views/railspress/admin/posts/show.html.erb +55 -19
  102. data/app/views/railspress/admin/prototypes/image_section.html.erb +42 -0
  103. data/app/views/railspress/admin/shared/_dropzone.html.erb +84 -0
  104. data/app/views/railspress/admin/shared/_focal_point_editor.html.erb +102 -0
  105. data/app/views/railspress/admin/shared/_image_section.html.erb +159 -0
  106. data/app/views/railspress/admin/shared/_image_section_compact.html.erb +90 -0
  107. data/app/views/railspress/admin/shared/_image_section_editor.html.erb +171 -0
  108. data/app/views/railspress/admin/shared/_image_section_v2.html.erb +205 -0
  109. data/app/views/railspress/admin/shared/_sidebar.html.erb +73 -5
  110. data/app/views/railspress/admin/tags/index.html.erb +12 -16
  111. data/config/brakeman.ignore +18 -0
  112. data/config/importmap.rb +23 -0
  113. data/config/routes.rb +62 -1
  114. data/db/migrate/20241218000004_create_railspress_post_tags.rb +1 -1
  115. data/db/migrate/20241218000005_create_railspress_imports.rb +21 -0
  116. data/db/migrate/20241218000006_create_railspress_exports.rb +20 -0
  117. data/db/migrate/20241218000007_create_railspress_taggings.rb +20 -0
  118. data/db/migrate/20241218000008_drop_railspress_post_tags.rb +14 -0
  119. data/db/migrate/20241218000010_add_reading_time_to_railspress_posts.rb +5 -0
  120. data/db/migrate/20250105000002_create_railspress_focal_points.rb +20 -0
  121. data/db/migrate/20260206000001_create_railspress_content_groups.rb +18 -0
  122. data/db/migrate/20260206000002_create_railspress_content_elements.rb +21 -0
  123. data/db/migrate/20260206000003_create_railspress_content_element_versions.rb +20 -0
  124. data/db/migrate/20260207000001_add_unique_index_to_content_elements.rb +11 -0
  125. data/db/migrate/20260211112812_add_image_hint_to_railspress_content_elements.rb +7 -0
  126. data/db/migrate/20260211154040_add_required_to_railspress_content_elements.rb +5 -0
  127. data/lib/generators/railspress/entity/entity_generator.rb +89 -0
  128. data/lib/generators/railspress/entity/templates/migration.rb.tt +13 -0
  129. data/lib/generators/railspress/entity/templates/model.rb.tt +21 -0
  130. data/lib/generators/railspress/install/install_generator.rb +51 -40
  131. data/lib/generators/railspress/install/templates/initializer.rb +29 -0
  132. data/lib/railspress/engine.rb +38 -0
  133. data/lib/railspress/entity.rb +239 -0
  134. data/lib/railspress/version.rb +1 -1
  135. data/lib/railspress.rb +198 -8
  136. data/lib/tasks/railspress_tasks.rake +49 -4
  137. metadata +215 -21
  138. data/MIT-LICENSE +0 -20
  139. data/app/assets/stylesheets/railspress/admin.css +0 -1207
  140. data/app/models/railspress/post_tag.rb +0 -8
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: railspress-engine
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Avi Flombaum
@@ -15,57 +15,197 @@ dependencies:
15
15
  requirements:
16
16
  - - ">="
17
17
  - !ruby/object:Gem::Version
18
- version: '8.0'
18
+ version: '8.1'
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - ">="
24
24
  - !ruby/object:Gem::Version
25
- version: '8.0'
25
+ version: '8.1'
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: lexxy
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
30
- - - "~>"
30
+ - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 0.1.23.beta
32
+ version: 0.9.0.beta
33
33
  type: :runtime
34
34
  prerelease: false
35
35
  version_requirements: !ruby/object:Gem::Requirement
36
36
  requirements:
37
- - - "~>"
37
+ - - ">="
38
38
  - !ruby/object:Gem::Version
39
- version: 0.1.23.beta
40
- description: RailsPress provides drop-in blog functionality with categories, tags,
41
- rich text editing, and an admin interface.
39
+ version: 0.9.0.beta
40
+ - !ruby/object:Gem::Dependency
41
+ name: rubyzip
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: '2.3'
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '2.3'
54
+ - !ruby/object:Gem::Dependency
55
+ name: redcarpet
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '3.6'
61
+ type: :runtime
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '3.6'
68
+ - !ruby/object:Gem::Dependency
69
+ name: rspec-rails
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ type: :development
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ - !ruby/object:Gem::Dependency
83
+ name: capybara
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ type: :development
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: '0'
96
+ - !ruby/object:Gem::Dependency
97
+ name: cuprite
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ - !ruby/object:Gem::Dependency
111
+ name: debug
112
+ requirement: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: '0'
117
+ type: :development
118
+ prerelease: false
119
+ version_requirements: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: '0'
124
+ description: 'RailsPress gives your Rails app a complete content management system:
125
+ a blog with categories and tags, structured entities with custom schemas, and editable
126
+ site blocks with inline editing — all behind a namespaced admin interface.'
42
127
  email:
43
- - avi@flatironschool.com
128
+ - git@avi.nyc
44
129
  executables: []
45
130
  extensions: []
46
131
  extra_rdoc_files: []
47
132
  files:
48
- - MIT-LICENSE
133
+ - LICENSE
49
134
  - README.md
50
135
  - Rakefile
51
136
  - app/assets/javascripts/railspress/admin.js
137
+ - app/assets/javascripts/railspress/markdown_mode.js
52
138
  - app/assets/stylesheets/actiontext.css
53
- - app/assets/stylesheets/railspress/admin.css
139
+ - app/assets/stylesheets/application.css
140
+ - app/assets/stylesheets/railspress/admin/badges.css
141
+ - app/assets/stylesheets/railspress/admin/base.css
142
+ - app/assets/stylesheets/railspress/admin/buttons.css
143
+ - app/assets/stylesheets/railspress/admin/cards.css
144
+ - app/assets/stylesheets/railspress/admin/components/exports.css
145
+ - app/assets/stylesheets/railspress/admin/components/focal_point.css
146
+ - app/assets/stylesheets/railspress/admin/components/imports.css
147
+ - app/assets/stylesheets/railspress/admin/components/lexxy.css
148
+ - app/assets/stylesheets/railspress/admin/filters.css
149
+ - app/assets/stylesheets/railspress/admin/flash.css
150
+ - app/assets/stylesheets/railspress/admin/forms.css
151
+ - app/assets/stylesheets/railspress/admin/layout.css
152
+ - app/assets/stylesheets/railspress/admin/lists.css
153
+ - app/assets/stylesheets/railspress/admin/page.css
154
+ - app/assets/stylesheets/railspress/admin/responsive.css
155
+ - app/assets/stylesheets/railspress/admin/stats.css
156
+ - app/assets/stylesheets/railspress/admin/tables.css
157
+ - app/assets/stylesheets/railspress/admin/utilities.css
158
+ - app/assets/stylesheets/railspress/admin/variables.css
54
159
  - app/assets/stylesheets/railspress/application.css
55
160
  - app/controllers/railspress/admin/base_controller.rb
56
161
  - app/controllers/railspress/admin/categories_controller.rb
162
+ - app/controllers/railspress/admin/cms_transfers_controller.rb
163
+ - app/controllers/railspress/admin/content_element_versions_controller.rb
164
+ - app/controllers/railspress/admin/content_elements_controller.rb
165
+ - app/controllers/railspress/admin/content_groups_controller.rb
57
166
  - app/controllers/railspress/admin/dashboard_controller.rb
167
+ - app/controllers/railspress/admin/entities_controller.rb
168
+ - app/controllers/railspress/admin/exports_controller.rb
169
+ - app/controllers/railspress/admin/focal_points_controller.rb
170
+ - app/controllers/railspress/admin/imports_controller.rb
58
171
  - app/controllers/railspress/admin/posts_controller.rb
172
+ - app/controllers/railspress/admin/prototypes_controller.rb
59
173
  - app/controllers/railspress/admin/tags_controller.rb
60
174
  - app/controllers/railspress/application_controller.rb
175
+ - app/helpers/railspress/admin_helper.rb
61
176
  - app/helpers/railspress/application_helper.rb
177
+ - app/helpers/railspress/cms_helper.rb
178
+ - app/javascript/railspress/controllers/cms_inline_editor_controller.js
179
+ - app/javascript/railspress/controllers/content_element_form_controller.js
180
+ - app/javascript/railspress/controllers/crop_controller.js
181
+ - app/javascript/railspress/controllers/dropzone_controller.js
182
+ - app/javascript/railspress/controllers/focal_point_controller.js
183
+ - app/javascript/railspress/controllers/image_section_controller.js
184
+ - app/javascript/railspress/controllers/index.js
185
+ - app/javascript/railspress/index.js
62
186
  - app/jobs/railspress/application_job.rb
187
+ - app/jobs/railspress/export_posts_job.rb
188
+ - app/jobs/railspress/import_posts_job.rb
63
189
  - app/mailers/railspress/application_mailer.rb
190
+ - app/models/concerns/railspress/has_focal_point.rb
191
+ - app/models/concerns/railspress/soft_deletable.rb
192
+ - app/models/concerns/railspress/taggable.rb
64
193
  - app/models/railspress/application_record.rb
65
194
  - app/models/railspress/category.rb
195
+ - app/models/railspress/content_element.rb
196
+ - app/models/railspress/content_element_version.rb
197
+ - app/models/railspress/content_group.rb
198
+ - app/models/railspress/export.rb
199
+ - app/models/railspress/focal_point.rb
200
+ - app/models/railspress/import.rb
66
201
  - app/models/railspress/post.rb
67
- - app/models/railspress/post_tag.rb
202
+ - app/models/railspress/post_export_processor.rb
203
+ - app/models/railspress/post_import_processor.rb
68
204
  - app/models/railspress/tag.rb
205
+ - app/models/railspress/tagging.rb
206
+ - app/services/railspress/content_export_service.rb
207
+ - app/services/railspress/content_import_service.rb
208
+ - app/views/action_text/attachables/_remote_image.html.erb
69
209
  - app/views/active_storage/blobs/_blob.html.erb
70
210
  - app/views/layouts/action_text/contents/_content.html.erb
71
211
  - app/views/layouts/railspress/admin.html.erb
@@ -74,32 +214,81 @@ files:
74
214
  - app/views/railspress/admin/categories/edit.html.erb
75
215
  - app/views/railspress/admin/categories/index.html.erb
76
216
  - app/views/railspress/admin/categories/new.html.erb
217
+ - app/views/railspress/admin/cms_transfers/show.html.erb
218
+ - app/views/railspress/admin/content_element_versions/show.html.erb
219
+ - app/views/railspress/admin/content_elements/_form.html.erb
220
+ - app/views/railspress/admin/content_elements/_inline_form.html.erb
221
+ - app/views/railspress/admin/content_elements/_inline_form_frame.html.erb
222
+ - app/views/railspress/admin/content_elements/edit.html.erb
223
+ - app/views/railspress/admin/content_elements/index.html.erb
224
+ - app/views/railspress/admin/content_elements/new.html.erb
225
+ - app/views/railspress/admin/content_elements/show.html.erb
226
+ - app/views/railspress/admin/content_groups/_form.html.erb
227
+ - app/views/railspress/admin/content_groups/edit.html.erb
228
+ - app/views/railspress/admin/content_groups/index.html.erb
229
+ - app/views/railspress/admin/content_groups/new.html.erb
230
+ - app/views/railspress/admin/content_groups/show.html.erb
77
231
  - app/views/railspress/admin/dashboard/index.html.erb
232
+ - app/views/railspress/admin/entities/_form.html.erb
233
+ - app/views/railspress/admin/entities/edit.html.erb
234
+ - app/views/railspress/admin/entities/index.html.erb
235
+ - app/views/railspress/admin/entities/new.html.erb
236
+ - app/views/railspress/admin/entities/show.html.erb
237
+ - app/views/railspress/admin/exports/show.html.erb
238
+ - app/views/railspress/admin/imports/_instructions.html.erb
239
+ - app/views/railspress/admin/imports/show.html.erb
78
240
  - app/views/railspress/admin/posts/_form.html.erb
241
+ - app/views/railspress/admin/posts/_post_row.html.erb
79
242
  - app/views/railspress/admin/posts/edit.html.erb
80
243
  - app/views/railspress/admin/posts/index.html.erb
81
244
  - app/views/railspress/admin/posts/new.html.erb
82
245
  - app/views/railspress/admin/posts/show.html.erb
246
+ - app/views/railspress/admin/prototypes/image_section.html.erb
247
+ - app/views/railspress/admin/shared/_dropzone.html.erb
83
248
  - app/views/railspress/admin/shared/_flash.html.erb
249
+ - app/views/railspress/admin/shared/_focal_point_editor.html.erb
250
+ - app/views/railspress/admin/shared/_image_section.html.erb
251
+ - app/views/railspress/admin/shared/_image_section_compact.html.erb
252
+ - app/views/railspress/admin/shared/_image_section_editor.html.erb
253
+ - app/views/railspress/admin/shared/_image_section_v2.html.erb
84
254
  - app/views/railspress/admin/shared/_sidebar.html.erb
85
255
  - app/views/railspress/admin/tags/_form.html.erb
86
256
  - app/views/railspress/admin/tags/edit.html.erb
87
257
  - app/views/railspress/admin/tags/index.html.erb
88
258
  - app/views/railspress/admin/tags/new.html.erb
259
+ - config/brakeman.ignore
260
+ - config/importmap.rb
89
261
  - config/routes.rb
90
262
  - db/migrate/20241218000001_create_railspress_categories.rb
91
263
  - db/migrate/20241218000002_create_railspress_tags.rb
92
264
  - db/migrate/20241218000003_create_railspress_posts.rb
93
265
  - db/migrate/20241218000004_create_railspress_post_tags.rb
266
+ - db/migrate/20241218000005_create_railspress_imports.rb
267
+ - db/migrate/20241218000006_create_railspress_exports.rb
268
+ - db/migrate/20241218000007_create_railspress_taggings.rb
269
+ - db/migrate/20241218000008_drop_railspress_post_tags.rb
270
+ - db/migrate/20241218000010_add_reading_time_to_railspress_posts.rb
271
+ - db/migrate/20250105000002_create_railspress_focal_points.rb
272
+ - db/migrate/20260206000001_create_railspress_content_groups.rb
273
+ - db/migrate/20260206000002_create_railspress_content_elements.rb
274
+ - db/migrate/20260206000003_create_railspress_content_element_versions.rb
275
+ - db/migrate/20260207000001_add_unique_index_to_content_elements.rb
276
+ - db/migrate/20260211112812_add_image_hint_to_railspress_content_elements.rb
277
+ - db/migrate/20260211154040_add_required_to_railspress_content_elements.rb
278
+ - lib/generators/railspress/entity/entity_generator.rb
279
+ - lib/generators/railspress/entity/templates/migration.rb.tt
280
+ - lib/generators/railspress/entity/templates/model.rb.tt
94
281
  - lib/generators/railspress/install/install_generator.rb
282
+ - lib/generators/railspress/install/templates/initializer.rb
95
283
  - lib/railspress-engine.rb
96
284
  - lib/railspress.rb
97
285
  - lib/railspress/engine.rb
286
+ - lib/railspress/entity.rb
98
287
  - lib/railspress/version.rb
99
288
  - lib/tasks/railspress_tasks.rake
100
289
  homepage: https://github.com/aviflombaum/railspress-engine
101
290
  licenses:
102
- - MIT
291
+ - Nonstandard
103
292
  metadata:
104
293
  homepage_uri: https://github.com/aviflombaum/railspress-engine
105
294
  source_code_uri: https://github.com/aviflombaum/railspress-engine
@@ -108,14 +297,19 @@ metadata:
108
297
  post_install_message: |2+
109
298
 
110
299
  ============================================================
111
- RailsPress installed! Run the generator to complete setup:
300
+ RailsPress installed/updated.
112
301
 
302
+ New install:
113
303
  $ rails generate railspress:install
114
304
 
115
- This will:
116
- - Copy database migrations
117
- - Mount the engine in your routes
118
- - Install ActionText (if needed)
305
+ Upgrading existing app:
306
+ $ rails railspress:install:migrations
307
+ $ rails db:migrate
308
+
309
+ Guides:
310
+ - Install/setup: README.md + docs/CONFIGURING.md
311
+ - Upgrading: docs/UPGRADING.md
312
+ - Full docs: https://railspress.org
119
313
  ============================================================
120
314
 
121
315
  rdoc_options: []
@@ -132,8 +326,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
132
326
  - !ruby/object:Gem::Version
133
327
  version: '0'
134
328
  requirements: []
135
- rubygems_version: 3.6.9
329
+ rubygems_version: 4.0.6
136
330
  specification_version: 4
137
- summary: A mountable blog engine for Rails 8+
331
+ summary: A mountable blog + CMS engine for Rails 8+
138
332
  test_files: []
139
333
  ...
data/MIT-LICENSE DELETED
@@ -1,20 +0,0 @@
1
- Copyright Avi Flombaum
2
-
3
- Permission is hereby granted, free of charge, to any person obtaining
4
- a copy of this software and associated documentation files (the
5
- "Software"), to deal in the Software without restriction, including
6
- without limitation the rights to use, copy, modify, merge, publish,
7
- distribute, sublicense, and/or sell copies of the Software, and to
8
- permit persons to whom the Software is furnished to do so, subject to
9
- the following conditions:
10
-
11
- The above copyright notice and this permission notice shall be
12
- included in all copies or substantial portions of the Software.
13
-
14
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.