iron-cms 0.17.3 → 0.18.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 (139) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +88 -4
  3. data/app/assets/builds/iron.css +236 -106
  4. data/app/assets/tailwind/iron/lexxy.css +111 -87
  5. data/app/controllers/concerns/iron/schema_editing.rb +19 -0
  6. data/app/controllers/iron/api/schema/base_controller.rb +25 -0
  7. data/app/controllers/iron/api/schema/block_definitions_controller.rb +49 -0
  8. data/app/controllers/iron/api/schema/content_types_controller.rb +64 -0
  9. data/app/controllers/iron/api/schema/field_definitions_controller.rb +88 -0
  10. data/app/controllers/iron/api/schema/locales_controller.rb +52 -0
  11. data/app/controllers/iron/application_controller.rb +1 -1
  12. data/app/controllers/iron/block_definitions_controller.rb +1 -0
  13. data/app/controllers/iron/content_types_controller.rb +1 -0
  14. data/app/controllers/iron/field_definitions_controller.rb +2 -1
  15. data/app/controllers/iron/first_runs_controller.rb +1 -1
  16. data/app/controllers/iron/locales_controller.rb +1 -0
  17. data/app/controllers/iron/sessions_controller.rb +1 -1
  18. data/app/helpers/iron/avatar_helper.rb +24 -2
  19. data/app/models/iron/account.rb +1 -1
  20. data/app/models/iron/api/openapi_spec.rb +37 -15
  21. data/app/models/iron/block_definition/exportable.rb +1 -1
  22. data/app/models/iron/block_definition.rb +3 -1
  23. data/app/models/iron/content.rb +176 -0
  24. data/app/models/iron/content_type/exportable.rb +3 -1
  25. data/app/models/iron/content_type/importable.rb +1 -1
  26. data/app/models/iron/content_type.rb +6 -1
  27. data/app/models/iron/entry/content_assignable.rb +10 -2
  28. data/app/models/iron/exporter.rb +1 -26
  29. data/app/models/iron/field/length_constrained.rb +17 -0
  30. data/app/models/iron/field/validatable.rb +16 -0
  31. data/app/models/iron/field.rb +1 -1
  32. data/app/models/iron/field_definition/exportable.rb +3 -4
  33. data/app/models/iron/field_definition/importable.rb +16 -9
  34. data/app/models/iron/field_definition/ranked.rb +1 -1
  35. data/app/models/iron/field_definition/searchable.rb +2 -0
  36. data/app/models/iron/field_definition/validatable.rb +40 -0
  37. data/app/models/iron/field_definition/validations.rb +175 -0
  38. data/app/models/iron/field_definition.rb +1 -1
  39. data/app/models/iron/field_definitions/date.rb +2 -0
  40. data/app/models/iron/field_definitions/file.rb +3 -11
  41. data/app/models/iron/field_definitions/number.rb +2 -0
  42. data/app/models/iron/field_definitions/reference.rb +2 -0
  43. data/app/models/iron/field_definitions/rich_text_area.rb +1 -0
  44. data/app/models/iron/field_definitions/text_area.rb +2 -0
  45. data/app/models/iron/field_definitions/text_field.rb +1 -9
  46. data/app/models/iron/fields/block.rb +5 -1
  47. data/app/models/iron/fields/block_list.rb +5 -1
  48. data/app/models/iron/fields/date.rb +19 -2
  49. data/app/models/iron/fields/file.rb +5 -3
  50. data/app/models/iron/fields/number.rb +28 -1
  51. data/app/models/iron/fields/reference.rb +2 -0
  52. data/app/models/iron/fields/rich_text_area.rb +2 -0
  53. data/app/models/iron/fields/text_area.rb +4 -0
  54. data/app/models/iron/fields/text_field.rb +9 -5
  55. data/app/models/iron/importer.rb +1 -54
  56. data/app/models/iron/locale.rb +2 -0
  57. data/app/models/iron/schema/auto_dumpable.rb +26 -0
  58. data/app/models/iron/schema/diff.rb +194 -0
  59. data/app/models/iron/schema/validation.rb +214 -0
  60. data/app/models/iron/schema.rb +282 -0
  61. data/app/models/iron/seed.rb +5 -3
  62. data/app/models/iron/system.rb +7 -0
  63. data/app/models/iron/user/deactivatable.rb +5 -0
  64. data/app/models/iron/user.rb +18 -1
  65. data/app/views/iron/api/fields/_rich_text_area.json.jbuilder +2 -2
  66. data/app/views/iron/api/schema/block_definitions/_block_definition.json.jbuilder +4 -0
  67. data/app/views/iron/api/schema/block_definitions/index.json.jbuilder +1 -0
  68. data/app/views/iron/api/schema/block_definitions/show.json.jbuilder +1 -0
  69. data/app/views/iron/api/schema/content_types/_content_type.json.jbuilder +5 -0
  70. data/app/views/iron/api/schema/content_types/index.json.jbuilder +1 -0
  71. data/app/views/iron/api/schema/content_types/show.json.jbuilder +1 -0
  72. data/app/views/iron/api/schema/field_definitions/_field_definition.json.jbuilder +7 -0
  73. data/app/views/iron/api/schema/field_definitions/show.json.jbuilder +1 -0
  74. data/app/views/iron/api/schema/locales/_locale.json.jbuilder +4 -0
  75. data/app/views/iron/api/schema/locales/index.json.jbuilder +1 -0
  76. data/app/views/iron/api/schema/locales/show.json.jbuilder +1 -0
  77. data/app/views/iron/block_definitions/_empty_state.html.erb +5 -3
  78. data/app/views/iron/block_definitions/_form.html.erb +3 -1
  79. data/app/views/iron/block_definitions/edit.html.erb +19 -17
  80. data/app/views/iron/block_definitions/index.html.erb +7 -3
  81. data/app/views/iron/block_definitions/show.html.erb +14 -8
  82. data/app/views/iron/content_types/_content_type.html.erb +1 -1
  83. data/app/views/iron/content_types/_empty_state.html.erb +5 -3
  84. data/app/views/iron/content_types/_form.html.erb +12 -8
  85. data/app/views/iron/content_types/edit.html.erb +19 -17
  86. data/app/views/iron/content_types/index.html.erb +7 -3
  87. data/app/views/iron/content_types/show.html.erb +14 -8
  88. data/app/views/iron/entries/_empty_state.html.erb +1 -1
  89. data/app/views/iron/entries/edit.html.erb +1 -1
  90. data/app/views/iron/entries/entry.html.erb +1 -1
  91. data/app/views/iron/entries/fields/_block.html.erb +4 -0
  92. data/app/views/iron/entries/fields/_block_list.html.erb +2 -0
  93. data/app/views/iron/entries/fields/_boolean.html.erb +1 -0
  94. data/app/views/iron/entries/fields/_date.html.erb +3 -2
  95. data/app/views/iron/entries/fields/_field_errors.html.erb +7 -0
  96. data/app/views/iron/entries/fields/_field_label.html.erb +8 -0
  97. data/app/views/iron/entries/fields/_file.html.erb +4 -19
  98. data/app/views/iron/entries/fields/_number.html.erb +6 -2
  99. data/app/views/iron/entries/fields/_reference.html.erb +2 -1
  100. data/app/views/iron/entries/fields/_reference_list.html.erb +2 -0
  101. data/app/views/iron/entries/fields/_rich_text_area.html.erb +2 -1
  102. data/app/views/iron/entries/fields/_text_area.html.erb +6 -2
  103. data/app/views/iron/entries/fields/_text_field.html.erb +5 -12
  104. data/app/views/iron/field_definitions/_field_definition.html.erb +51 -29
  105. data/app/views/iron/field_definitions/date/_form.html.erb +5 -1
  106. data/app/views/iron/field_definitions/edit.html.erb +10 -8
  107. data/app/views/iron/field_definitions/file/_form.html.erb +6 -0
  108. data/app/views/iron/field_definitions/new.html.erb +5 -3
  109. data/app/views/iron/field_definitions/number/_form.html.erb +23 -1
  110. data/app/views/iron/field_definitions/reference/_form.html.erb +5 -0
  111. data/app/views/iron/field_definitions/rich_text_area/_form.html.erb +5 -0
  112. data/app/views/iron/field_definitions/text_area/_form.html.erb +23 -0
  113. data/app/views/iron/field_definitions/text_field/_form.html.erb +20 -1
  114. data/app/views/iron/home/_content_types.html.erb +1 -1
  115. data/app/views/iron/locales/_form.html.erb +5 -3
  116. data/app/views/iron/locales/edit.html.erb +1 -1
  117. data/app/views/iron/locales/index.html.erb +12 -6
  118. data/app/views/iron/shared/_schema_lock_badge.html.erb +19 -0
  119. data/config/locales/en.yml +13 -1
  120. data/config/locales/it.yml +18 -1
  121. data/config/routes.rb +11 -0
  122. data/db/migrate/20260612131538_create_iron_systems.rb +9 -0
  123. data/exe/iron +5 -0
  124. data/lib/generators/iron/agents/agents_generator.rb +52 -0
  125. data/lib/generators/iron/agents/templates/AGENTS.md +24 -0
  126. data/lib/generators/iron/agents/templates/SKILL.md +423 -0
  127. data/lib/generators/iron/install/install_generator.rb +118 -0
  128. data/lib/generators/iron/install/templates/iron_release.rake +5 -0
  129. data/lib/generators/iron/install/templates/schema.json +12 -0
  130. data/lib/generators/iron/install/templates/seeds.rb +13 -0
  131. data/lib/generators/iron/pages/pages_generator.rb +5 -0
  132. data/lib/generators/iron/pages/templates/pages_controller.rb +1 -1
  133. data/lib/generators/iron/pages/templates/show.html.erb +1 -1
  134. data/lib/install/template.rb +9 -0
  135. data/lib/iron/cli.rb +43 -0
  136. data/lib/iron/version.rb +1 -1
  137. data/lib/tasks/iron_content.rake +82 -0
  138. data/lib/tasks/iron_schema.rake +45 -0
  139. metadata +61 -3
@@ -0,0 +1,82 @@
1
+ module Iron
2
+ module ContentCommands
3
+ module_function
4
+
5
+ def run
6
+ puts JSON.pretty_generate(yield)
7
+ rescue Iron::Content::InvalidContent => e
8
+ abort JSON.pretty_generate({ errors: e.errors })
9
+ rescue Iron::Content::Error => e
10
+ abort e.message
11
+ rescue ActiveRecord::RecordNotFound => e
12
+ abort not_found_message(e)
13
+ end
14
+
15
+ def payload
16
+ raw = ENV["PAYLOAD"] || (ENV["FILE"] && File.read(ENV["FILE"])) || ($stdin.read unless $stdin.tty?)
17
+ raw.present? ? JSON.parse(raw) : {}
18
+ rescue JSON::ParserError => e
19
+ abort "Invalid JSON payload: #{e.message}"
20
+ end
21
+
22
+ def not_found_message(error)
23
+ case error.model
24
+ when "Iron::ContentType"
25
+ "Unknown content type #{ENV["HANDLE"].inspect}. Known handles: #{Iron::ContentType.pluck(:handle).join(", ")}"
26
+ when "Iron::Locale"
27
+ "Unknown locale #{ENV["LOCALE"].inspect}. Known locales: #{Iron::Locale.pluck(:code).join(", ")}"
28
+ else
29
+ error.message
30
+ end
31
+ end
32
+ end
33
+ end
34
+
35
+ namespace :iron do
36
+ namespace :content do
37
+ desc "List all entries of a content type (HANDLE=required, LOCALE=optional)"
38
+ task list: :environment do
39
+ handle = ENV.fetch("HANDLE") { abort "HANDLE is required. Usage: bin/rails iron:content:list HANDLE=blog" }
40
+
41
+ Iron::ContentCommands.run do
42
+ Iron::Content.list(handle, locale: ENV["LOCALE"])
43
+ end
44
+ end
45
+
46
+ desc "Get an entry (HANDLE=required; ID= or ROUTE= for collections, neither for singles; LOCALE=optional)"
47
+ task get: :environment do
48
+ handle = ENV.fetch("HANDLE") { abort "HANDLE is required. Usage: bin/rails iron:content:get HANDLE=blog ID=1" }
49
+
50
+ Iron::ContentCommands.run do
51
+ Iron::Content.get(handle, id: ENV["ID"], route: ENV["ROUTE"], locale: ENV["LOCALE"])
52
+ end
53
+ end
54
+
55
+ desc "Create an entry (HANDLE=required; content JSON via PAYLOAD=, FILE=, or stdin; ROUTE= and LOCALE= optional)"
56
+ task create: :environment do
57
+ handle = ENV.fetch("HANDLE") { abort "HANDLE is required. Usage: bin/rails iron:content:create HANDLE=blog PAYLOAD='{\"title\":\"Hello\"}'" }
58
+
59
+ Iron::ContentCommands.run do
60
+ Iron::Content.create(handle, Iron::ContentCommands.payload, route: ENV["ROUTE"], locale: ENV["LOCALE"])
61
+ end
62
+ end
63
+
64
+ desc "Update an entry (HANDLE=required; ID= or ROUTE= for collections, neither upserts singles; content JSON via PAYLOAD=, FILE=, or stdin; LOCALE=optional)"
65
+ task update: :environment do
66
+ handle = ENV.fetch("HANDLE") { abort "HANDLE is required. Usage: bin/rails iron:content:update HANDLE=blog ID=1 PAYLOAD='{\"title\":\"Hello\"}'" }
67
+
68
+ Iron::ContentCommands.run do
69
+ Iron::Content.update(handle, Iron::ContentCommands.payload, id: ENV["ID"], route: ENV["ROUTE"], locale: ENV["LOCALE"])
70
+ end
71
+ end
72
+
73
+ desc "Delete an entry (HANDLE=required; ID= or ROUTE=)"
74
+ task delete: :environment do
75
+ handle = ENV.fetch("HANDLE") { abort "HANDLE is required. Usage: bin/rails iron:content:delete HANDLE=blog ID=1" }
76
+
77
+ Iron::ContentCommands.run do
78
+ Iron::Content.delete(handle, id: ENV["ID"], route: ENV["ROUTE"])
79
+ end
80
+ end
81
+ end
82
+ end
@@ -0,0 +1,45 @@
1
+ namespace :iron do
2
+ namespace :schema do
3
+ desc "Dump the CMS schema to db/cms/schema.json (SCHEMA_PATH=optional output path, FORMAT=json for machine output)"
4
+ task dump: :environment do
5
+ path = Iron::Schema.dump(ENV["SCHEMA_PATH"])
6
+
7
+ if ENV["FORMAT"] == "json"
8
+ puts JSON.pretty_generate(path: path.to_s)
9
+ else
10
+ puts "Schema dumped to #{path}"
11
+ end
12
+ end
13
+
14
+ desc "Show drift between db/cms/schema.json and the database (SCHEMA_PATH=optional input path, FORMAT=json for machine output)"
15
+ task diff: :environment do
16
+ diff = Iron::Schema.diff(ENV["SCHEMA_PATH"])
17
+
18
+ if ENV["FORMAT"] == "json"
19
+ puts JSON.pretty_generate(diff.to_h)
20
+ else
21
+ puts diff
22
+ end
23
+ rescue Iron::Schema::FileMissing, Iron::Schema::InvalidSchema => error
24
+ abort error.message
25
+ end
26
+
27
+ desc "Apply db/cms/schema.json to the database (SCHEMA_PATH=optional input path, PRUNE=1 destroys objects missing from the file, FORMAT=json for machine output)"
28
+ task apply: :environment do
29
+ prune = ENV["PRUNE"] == "1"
30
+ diff = Iron::Schema.apply(ENV["SCHEMA_PATH"], prune: prune)
31
+
32
+ if ENV["FORMAT"] == "json"
33
+ puts JSON.pretty_generate(diff.to_h)
34
+ elsif diff.empty?
35
+ puts "Schema is in sync."
36
+ else
37
+ applied = diff.size(include_removals: prune)
38
+ puts "Applied #{applied} #{"change".pluralize(applied)}:"
39
+ puts diff
40
+ end
41
+ rescue Iron::Schema::FileMissing, Iron::Schema::InvalidSchema => error
42
+ abort error.message
43
+ end
44
+ end
45
+ end
metadata CHANGED
@@ -1,11 +1,11 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: iron-cms
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.17.3
4
+ version: 0.18.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Massimo De Marchi
8
- bindir: bin
8
+ bindir: exe
9
9
  cert_chain: []
10
10
  date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
@@ -23,6 +23,20 @@ dependencies:
23
23
  - - "~>"
24
24
  - !ruby/object:Gem::Version
25
25
  version: '8.0'
26
+ - !ruby/object:Gem::Dependency
27
+ name: thor
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '1.0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '1.0'
26
40
  - !ruby/object:Gem::Dependency
27
41
  name: activestorage
28
42
  requirement: !ruby/object:Gem::Requirement
@@ -268,7 +282,8 @@ dependencies:
268
282
  description: A Rails engine for managing and publishing content with a flexible schema.
269
283
  email:
270
284
  - massimo@inkofpixel.com
271
- executables: []
285
+ executables:
286
+ - iron
272
287
  extensions: []
273
288
  extra_rdoc_files: []
274
289
  files:
@@ -312,12 +327,18 @@ files:
312
327
  - app/controllers/concerns/iron/authentication.rb
313
328
  - app/controllers/concerns/iron/authorization.rb
314
329
  - app/controllers/concerns/iron/locale_aware.rb
330
+ - app/controllers/concerns/iron/schema_editing.rb
315
331
  - app/controllers/concerns/iron/web_page.rb
316
332
  - app/controllers/iron/account/exports_controller.rb
317
333
  - app/controllers/iron/account/imports_controller.rb
318
334
  - app/controllers/iron/api/base_controller.rb
319
335
  - app/controllers/iron/api/content_controller.rb
320
336
  - app/controllers/iron/api/openapi_controller.rb
337
+ - app/controllers/iron/api/schema/base_controller.rb
338
+ - app/controllers/iron/api/schema/block_definitions_controller.rb
339
+ - app/controllers/iron/api/schema/content_types_controller.rb
340
+ - app/controllers/iron/api/schema/field_definitions_controller.rb
341
+ - app/controllers/iron/api/schema/locales_controller.rb
321
342
  - app/controllers/iron/api/search_controller.rb
322
343
  - app/controllers/iron/api/uploads_controller.rb
323
344
  - app/controllers/iron/application_controller.rb
@@ -393,6 +414,7 @@ files:
393
414
  - app/models/iron/block_definition.rb
394
415
  - app/models/iron/block_definition/exportable.rb
395
416
  - app/models/iron/block_definition/importable.rb
417
+ - app/models/iron/content.rb
396
418
  - app/models/iron/content_type.rb
397
419
  - app/models/iron/content_type/exportable.rb
398
420
  - app/models/iron/content_type/field_queryable.rb
@@ -416,11 +438,15 @@ files:
416
438
  - app/models/iron/exporter.rb
417
439
  - app/models/iron/field.rb
418
440
  - app/models/iron/field/belongs_to_entry.rb
441
+ - app/models/iron/field/length_constrained.rb
442
+ - app/models/iron/field/validatable.rb
419
443
  - app/models/iron/field_definition.rb
420
444
  - app/models/iron/field_definition/exportable.rb
421
445
  - app/models/iron/field_definition/importable.rb
422
446
  - app/models/iron/field_definition/ranked.rb
423
447
  - app/models/iron/field_definition/searchable.rb
448
+ - app/models/iron/field_definition/validatable.rb
449
+ - app/models/iron/field_definition/validations.rb
424
450
  - app/models/iron/field_definitions/block.rb
425
451
  - app/models/iron/field_definitions/block_list.rb
426
452
  - app/models/iron/field_definitions/boolean.rb
@@ -452,11 +478,16 @@ files:
452
478
  - app/models/iron/person/transferable.rb
453
479
  - app/models/iron/qr_code_link.rb
454
480
  - app/models/iron/reference.rb
481
+ - app/models/iron/schema.rb
482
+ - app/models/iron/schema/auto_dumpable.rb
483
+ - app/models/iron/schema/diff.rb
484
+ - app/models/iron/schema/validation.rb
455
485
  - app/models/iron/search/query.rb
456
486
  - app/models/iron/search_record.rb
457
487
  - app/models/iron/search_record/fts.rb
458
488
  - app/models/iron/seed.rb
459
489
  - app/models/iron/session.rb
490
+ - app/models/iron/system.rb
460
491
  - app/models/iron/user.rb
461
492
  - app/models/iron/user/deactivatable.rb
462
493
  - app/models/iron/user/role.rb
@@ -482,6 +513,17 @@ files:
482
513
  - app/views/iron/api/fields/_rich_text_area.json.jbuilder
483
514
  - app/views/iron/api/fields/_text_area.json.jbuilder
484
515
  - app/views/iron/api/fields/_text_field.json.jbuilder
516
+ - app/views/iron/api/schema/block_definitions/_block_definition.json.jbuilder
517
+ - app/views/iron/api/schema/block_definitions/index.json.jbuilder
518
+ - app/views/iron/api/schema/block_definitions/show.json.jbuilder
519
+ - app/views/iron/api/schema/content_types/_content_type.json.jbuilder
520
+ - app/views/iron/api/schema/content_types/index.json.jbuilder
521
+ - app/views/iron/api/schema/content_types/show.json.jbuilder
522
+ - app/views/iron/api/schema/field_definitions/_field_definition.json.jbuilder
523
+ - app/views/iron/api/schema/field_definitions/show.json.jbuilder
524
+ - app/views/iron/api/schema/locales/_locale.json.jbuilder
525
+ - app/views/iron/api/schema/locales/index.json.jbuilder
526
+ - app/views/iron/api/schema/locales/show.json.jbuilder
485
527
  - app/views/iron/api/search/show.json.jbuilder
486
528
  - app/views/iron/block_definitions/_block_definition.html.erb
487
529
  - app/views/iron/block_definitions/_empty_state.html.erb
@@ -509,6 +551,8 @@ files:
509
551
  - app/views/iron/entries/fields/_block_list.html.erb
510
552
  - app/views/iron/entries/fields/_boolean.html.erb
511
553
  - app/views/iron/entries/fields/_date.html.erb
554
+ - app/views/iron/entries/fields/_field_errors.html.erb
555
+ - app/views/iron/entries/fields/_field_label.html.erb
512
556
  - app/views/iron/entries/fields/_file.html.erb
513
557
  - app/views/iron/entries/fields/_number.html.erb
514
558
  - app/views/iron/entries/fields/_reference.html.erb
@@ -567,6 +611,7 @@ files:
567
611
  - app/views/iron/settings/show.html.erb
568
612
  - app/views/iron/shared/_icon_picker.html.erb
569
613
  - app/views/iron/shared/_save_bar.html.erb
614
+ - app/views/iron/shared/_schema_lock_badge.html.erb
570
615
  - app/views/iron/shared/_select.html.erb
571
616
  - app/views/iron/users/_change_email_dialog.html.erb
572
617
  - app/views/iron/users/_change_language_dialog.html.erb
@@ -615,13 +660,24 @@ files:
615
660
  - db/migrate/20260215222227_add_authenticatable_to_iron_users.rb
616
661
  - db/migrate/20260215222735_remove_legacy_auth_from_iron_users.rb
617
662
  - db/migrate/20260221231832_create_iron_integrations.rb
663
+ - db/migrate/20260612131538_create_iron_systems.rb
664
+ - exe/iron
665
+ - lib/generators/iron/agents/agents_generator.rb
666
+ - lib/generators/iron/agents/templates/AGENTS.md
667
+ - lib/generators/iron/agents/templates/SKILL.md
668
+ - lib/generators/iron/install/install_generator.rb
669
+ - lib/generators/iron/install/templates/iron_release.rake
670
+ - lib/generators/iron/install/templates/schema.json
671
+ - lib/generators/iron/install/templates/seeds.rb
618
672
  - lib/generators/iron/pages/pages_generator.rb
619
673
  - lib/generators/iron/pages/templates/pages_controller.rb
620
674
  - lib/generators/iron/pages/templates/show.html.erb
621
675
  - lib/generators/iron/template/template_generator.rb
622
676
  - lib/generators/iron/template/templates/content_type.html.erb
677
+ - lib/install/template.rb
623
678
  - lib/iron-cms.rb
624
679
  - lib/iron.rb
680
+ - lib/iron/cli.rb
625
681
  - lib/iron/engine.rb
626
682
  - lib/iron/global_id/instance_scoped_locator.rb
627
683
  - lib/iron/image_analyzer.rb
@@ -634,6 +690,8 @@ files:
634
690
  - lib/iron/sdk.rb
635
691
  - lib/iron/version.rb
636
692
  - lib/puma/plugin/iron_tailwindcss.rb
693
+ - lib/tasks/iron_content.rake
694
+ - lib/tasks/iron_schema.rake
637
695
  - lib/tasks/iron_tailwindcss.rake
638
696
  - lib/tasks/iron_tasks.rake
639
697
  - vendor/javascript/@tailwindplus--elements.js