gaco_cms 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (103) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +48 -0
  3. data/Rakefile +10 -0
  4. data/app/assets/builds/gaco_cms.css +18257 -0
  5. data/app/assets/builds/gaco_cms.js +43235 -0
  6. data/app/assets/builds/gaco_cms.js.map +7 -0
  7. data/app/assets/builds/gaco_cms_front.css +18237 -0
  8. data/app/assets/builds/gaco_cms_front.js +10722 -0
  9. data/app/assets/builds/gaco_cms_front.js.map +7 -0
  10. data/app/assets/javascripts/gaco_cms/base.js +24 -0
  11. data/app/assets/javascripts/gaco_cms/controllers/confirm_controller.ts +20 -0
  12. data/app/assets/javascripts/gaco_cms/controllers/deletable_row_controller.ts +46 -0
  13. data/app/assets/javascripts/gaco_cms/controllers/editor_controller.ts +58 -0
  14. data/app/assets/javascripts/gaco_cms/controllers/file_input_controller.ts +82 -0
  15. data/app/assets/javascripts/gaco_cms/controllers/modal_controller.ts +73 -0
  16. data/app/assets/javascripts/gaco_cms/controllers/remote_content_controller.ts +27 -0
  17. data/app/assets/javascripts/gaco_cms/controllers/repeatable_field_controller.ts +26 -0
  18. data/app/assets/javascripts/gaco_cms/controllers/sortable_controller.ts +27 -0
  19. data/app/assets/javascripts/gaco_cms/controllers/toggle_field_controller.ts +37 -0
  20. data/app/assets/javascripts/gaco_cms/controllers/translatable_controller.ts +86 -0
  21. data/app/assets/javascripts/gaco_cms/lib/progress_bar.ts +7 -0
  22. data/app/assets/javascripts/gaco_cms/lib/request.ts +21 -0
  23. data/app/assets/javascripts/gaco_cms/lib/turbo_request.ts +61 -0
  24. data/app/assets/javascripts/gaco_cms/stimulus.ts +9 -0
  25. data/app/assets/javascripts/gaco_cms.js +7 -0
  26. data/app/assets/javascripts/gaco_cms_front.js +3 -0
  27. data/app/assets/stylesheets/gaco_cms/bootstrap_custom.scss +15 -0
  28. data/app/assets/stylesheets/gaco_cms/shared.scss +22 -0
  29. data/app/assets/stylesheets/gaco_cms.css.scss +8 -0
  30. data/app/assets/stylesheets/gaco_cms_front.css.scss +6 -0
  31. data/app/controllers/concerns/gaco_cms/turbo_concern.rb +52 -0
  32. data/app/controllers/gaco_cms/admin/base_controller.rb +20 -0
  33. data/app/controllers/gaco_cms/admin/field_groups_controller.rb +87 -0
  34. data/app/controllers/gaco_cms/admin/field_groups_manager_controller.rb +66 -0
  35. data/app/controllers/gaco_cms/admin/field_groups_renderer_controller.rb +33 -0
  36. data/app/controllers/gaco_cms/admin/fields_controller.rb +20 -0
  37. data/app/controllers/gaco_cms/admin/page_types_controller.rb +56 -0
  38. data/app/controllers/gaco_cms/admin/pages_controller.rb +70 -0
  39. data/app/controllers/gaco_cms/admin/themes_controller.rb +55 -0
  40. data/app/controllers/gaco_cms/admin_controller.rb +47 -0
  41. data/app/controllers/gaco_cms/front_controller.rb +39 -0
  42. data/app/helpers/gaco_cms/application_helper.rb +26 -0
  43. data/app/jobs/gaco_cms/application_job.rb +6 -0
  44. data/app/mailers/gaco_cms/application_mailer.rb +8 -0
  45. data/app/models/concerns/gaco_cms/fields_assignable.rb +40 -0
  46. data/app/models/concerns/gaco_cms/union_scope.rb +14 -0
  47. data/app/models/gaco_cms/application_record.rb +25 -0
  48. data/app/models/gaco_cms/draft_record.rb +16 -0
  49. data/app/models/gaco_cms/field.rb +78 -0
  50. data/app/models/gaco_cms/field_group.rb +55 -0
  51. data/app/models/gaco_cms/field_value.rb +77 -0
  52. data/app/models/gaco_cms/media_file.rb +22 -0
  53. data/app/models/gaco_cms/page.rb +57 -0
  54. data/app/models/gaco_cms/page_type.rb +38 -0
  55. data/app/models/gaco_cms/theme.rb +28 -0
  56. data/app/services/gaco_cms/application_service.rb +33 -0
  57. data/app/services/gaco_cms/shortcode_parser.rb +217 -0
  58. data/app/services/gaco_cms/theme_content_generator.rb +55 -0
  59. data/app/views/gaco_cms/admin/base/index.html.haml +4 -0
  60. data/app/views/gaco_cms/admin/field_groups_manager/_field.html.haml +53 -0
  61. data/app/views/gaco_cms/admin/field_groups_manager/_group.html.haml +54 -0
  62. data/app/views/gaco_cms/admin/field_groups_manager/index.html.haml +14 -0
  63. data/app/views/gaco_cms/admin/field_groups_renderer/_field.html.haml +31 -0
  64. data/app/views/gaco_cms/admin/field_groups_renderer/_fields_frame.html.haml +16 -0
  65. data/app/views/gaco_cms/admin/field_groups_renderer/_group.html.haml +24 -0
  66. data/app/views/gaco_cms/admin/field_groups_renderer/default_value/_page.html.haml +3 -0
  67. data/app/views/gaco_cms/admin/field_groups_renderer/fields/_editor.html.haml +3 -0
  68. data/app/views/gaco_cms/admin/field_groups_renderer/fields/_file.html.haml +4 -0
  69. data/app/views/gaco_cms/admin/field_groups_renderer/fields/_page.html.haml +3 -0
  70. data/app/views/gaco_cms/admin/field_groups_renderer/fields/_text_area.html.haml +3 -0
  71. data/app/views/gaco_cms/admin/field_groups_renderer/fields/_text_field.html.haml +3 -0
  72. data/app/views/gaco_cms/admin/field_groups_renderer/index.html.haml +20 -0
  73. data/app/views/gaco_cms/admin/page_types/form.html.haml +27 -0
  74. data/app/views/gaco_cms/admin/page_types/index.html.haml +27 -0
  75. data/app/views/gaco_cms/admin/pages/edit.html.haml +57 -0
  76. data/app/views/gaco_cms/admin/pages/index.html.haml +23 -0
  77. data/app/views/gaco_cms/admin/pages/new.html.haml +16 -0
  78. data/app/views/gaco_cms/admin/themes/edit.html.haml +36 -0
  79. data/app/views/gaco_cms/admin/themes/index.html.haml +24 -0
  80. data/app/views/gaco_cms/admin/themes/new.html.haml +21 -0
  81. data/app/views/layouts/gaco_cms/_breadcrumb.html.haml +7 -0
  82. data/app/views/layouts/gaco_cms/_flash_messages.html.haml +13 -0
  83. data/app/views/layouts/gaco_cms/admin.haml +55 -0
  84. data/config/routes.rb +26 -0
  85. data/db/migrate/20230202133738_create_cms_pages.rb +16 -0
  86. data/db/migrate/20230202134840_create_cms_field_groups.rb +17 -0
  87. data/db/migrate/20230202135314_create_cms_fields.rb +21 -0
  88. data/db/migrate/20230202135739_create_cms_field_values.rb +16 -0
  89. data/db/migrate/20230202181744_create_cms_media_files.rb +10 -0
  90. data/db/migrate/20230206231547_create_cms_page_types.rb +23 -0
  91. data/db/migrate/20230209090008_create_cms_themes.rb +19 -0
  92. data/lib/gaco_cms/config.rb +19 -0
  93. data/lib/gaco_cms/engine.rb +31 -0
  94. data/lib/gaco_cms/version.rb +5 -0
  95. data/lib/gaco_cms.rb +18 -0
  96. data/lib/generators/gaco_cms/install_generator.rb +16 -0
  97. data/lib/generators/gaco_cms/install_template/gaco_cms.rb +11 -0
  98. data/lib/generators/gaco_cms/install_template/themes/default/index.html.haml +2 -0
  99. data/lib/generators/gaco_cms/install_template/themes/default/layouts/application.html.haml +34 -0
  100. data/lib/generators/gaco_cms/install_template/themes/default/page.html.haml +2 -0
  101. data/lib/tasks/auto_annotate_models.rake +59 -0
  102. data/lib/tasks/gaco_cms_tasks.rake +5 -0
  103. metadata +174 -0
data/config/routes.rb ADDED
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ Rails.application.routes.draw do
4
+ namespace :gaco_cms, path: GacoCms::Config.url_path do
5
+ namespace :admin do
6
+ get '/', to: 'base#index'
7
+ post 'upload_file', controller: 'base'
8
+ resources :page_types do
9
+ resources :pages
10
+ end
11
+ resources :field_groups_manager, only: %i[index update] do
12
+ get :group_tpl, on: :collection
13
+ get :field_tpl, on: :collection
14
+ end
15
+ resources :field_groups_renderer, only: :index do
16
+ get :render_group, on: :collection
17
+ get :render_field, on: :collection
18
+ end
19
+ resources :themes
20
+ end
21
+
22
+ # frontend
23
+ get '/', to: 'front#index'
24
+ get 'page/:page_id', as: 'page', to: 'front#page'
25
+ end
26
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ class CreateCmsPages < ActiveRecord::Migration[7.0]
4
+ def change
5
+ create_table GacoCms::Page.table_name do |t|
6
+ GacoCms.translated_column(t, :key)
7
+ GacoCms.translated_column(t, :title)
8
+ GacoCms.translated_column(t, :summary)
9
+ GacoCms.translated_column(t, :content)
10
+ t.text :template
11
+ t.text :photo_url
12
+
13
+ t.timestamps
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ class CreateCmsFieldGroups < ActiveRecord::Migration[7.0]
4
+ def change
5
+ create_table GacoCms::FieldGroup.table_name do |t|
6
+ t.string :key
7
+ GacoCms.translated_column(t, :title)
8
+ GacoCms.translated_column(t, :description)
9
+ t.references :record, polymorphic: true
10
+ t.boolean :repeat, default: false
11
+ t.integer :position, default: 0
12
+ t.text :template, default: ''
13
+
14
+ t.timestamps
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ class CreateCmsFields < ActiveRecord::Migration[7.0]
4
+ def change
5
+ create_table GacoCms::Field.table_name do |t|
6
+ t.string :key
7
+ GacoCms.translated_column(t, :title)
8
+ GacoCms.translated_column(t, :description)
9
+ t.belongs_to :field_group, null: false, foreign_key: { to_table: GacoCms::FieldGroup.table_name }
10
+ t.boolean :repeat, default: false
11
+ t.string :kind, default: 'text_field'
12
+ GacoCms.translated_column(t, :def_value)
13
+ t.boolean :required, default: false
14
+ t.boolean :translatable, default: false
15
+ t.integer :position, default: 0
16
+ GacoCms.translated_column(t, :data)
17
+
18
+ t.timestamps
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ class CreateCmsFieldValues < ActiveRecord::Migration[7.0]
4
+ def change
5
+ create_table GacoCms::FieldValue.table_name do |t|
6
+ t.belongs_to :field, null: false, foreign_key: { to_table: GacoCms::Field.table_name }
7
+ t.string :field_key
8
+ GacoCms.translated_column(t, :value)
9
+ t.integer :group_no, default: 0
10
+ t.integer :position, default: 0
11
+ t.references :record, polymorphic: true
12
+
13
+ t.timestamps
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ class CreateCmsMediaFiles < ActiveRecord::Migration[7.0]
4
+ def change
5
+ create_table GacoCms::MediaFile.table_name do |t|
6
+ t.string :name
7
+ t.timestamps
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ class CreateCmsPageTypes < ActiveRecord::Migration[7.0]
4
+ def change
5
+ create_table GacoCms::PageType.table_name do |t|
6
+ t.string :key, index: true, unique: true
7
+ GacoCms.translated_column(t, :title)
8
+ t.text :template, default: ''
9
+
10
+ t.timestamps
11
+ end
12
+
13
+ change_table GacoCms::Page.table_name do |t|
14
+ t.belongs_to :page_type, null: false, foreign_key: { to_table: GacoCms::PageType.table_name }
15
+ end
16
+
17
+ reversible do |dir|
18
+ dir.up do
19
+ GacoCms::PageType.create!(title: 'Pages', key: 'pages')
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ class CreateCmsThemes < ActiveRecord::Migration[7.0]
4
+ def change
5
+ create_table GacoCms::Theme.table_name do |t|
6
+ t.string :title, null: false
7
+ t.string :key, null: false, unique: true
8
+ t.boolean :active, default: false
9
+
10
+ t.timestamps
11
+ end
12
+
13
+ reversible do |dir|
14
+ dir.up do
15
+ GacoCms::Theme.create!(title: 'Default Theme', key: 'default', active: true)
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GacoCms
4
+ class Config
5
+ cattr_accessor(:url_path) { '/gaco_cms' }
6
+ cattr_accessor(:parent_front_controller) { 'ActionController::Base' }
7
+ cattr_accessor(:parent_backend_controller) { 'ActionController::Base' }
8
+ cattr_accessor(:front_layout) { ->(_controller) { theme_path_for('layouts/application') } }
9
+ cattr_accessor(:backend_editor_css) { ->(_view) { asset_path('application') } }
10
+ cattr_accessor(:table_prefix) { 'simple_cms_' } # TODO: rename into gaco_cms_
11
+ cattr_accessor(:locales) { %i[en de es] }
12
+ cattr_accessor(:extra_fields) { {} }
13
+
14
+ # @param settings [Hash<:tpl, :translatable, :label, :default_value_tpl?>]
15
+ def self.add_extra_field(key, settings)
16
+ extra_fields[key] = settings
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GacoCms
4
+ class Engine < ::Rails::Engine
5
+ # isolate_namespace GacoCms # when enabled routes are not sharable
6
+
7
+ engine_dir = File.expand_path('../../', __dir__)
8
+ initializer 'gaco_cms.assets.precompile' do |app|
9
+ builds_path = File.join(engine_dir, 'app/assets/builds/')
10
+ if app.config.try(:assets)
11
+ app.config.assets.precompile += [
12
+ File.join(builds_path, 'gaco_cms.js'),
13
+ File.join(builds_path, 'gaco_cms.css'),
14
+ File.join(builds_path, 'gaco_cms_front.js'),
15
+ File.join(builds_path, 'gaco_cms_front.css')
16
+ ]
17
+ end
18
+
19
+ static_assets = File.join(engine_dir, 'vendor/static')
20
+ target_path = Rails.root.join('public/assets/gaco_cms')
21
+ unless Dir.exist?(target_path)
22
+ Rails.logger.info '********gaco_cms: copying static assets....'
23
+ FileUtils.mkpath(target_path) unless Dir.exist?(target_path)
24
+ FileUtils.cp_r(File.join(static_assets, '.'), target_path)
25
+
26
+ # puts '*********gaco_cms: copying compiled gaco_cms assets for importmaps'
27
+ FileUtils.cp_r(File.join(builds_path, '.'), app.root.join('public/assets/'))
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GacoCms
4
+ VERSION = '0.1.0'
5
+ end
data/lib/gaco_cms.rb ADDED
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'gaco_cms/version'
4
+ require 'gaco_cms/config'
5
+ require 'gaco_cms/engine'
6
+ require 'buddy_translatable'
7
+
8
+ module GacoCms
9
+ def self.table_name_prefix
10
+ Config.table_prefix
11
+ end
12
+
13
+ def self.translated_column(t_migration, column, **args)
14
+ text_args = {}.merge(args)
15
+ json_args = { default: {} }.merge(args)
16
+ t_migration.respond_to?(:jsonb) ? (t_migration.jsonb column, **json_args) : (t_migration.text column, **text_args)
17
+ end
18
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails/generators/base'
4
+ module GacoCms
5
+ module Generators
6
+ class InstallGenerator < Rails::Generators::Base
7
+ source_root File.expand_path('../install_template', __FILE__)
8
+ desc 'This generator copies all basic settings for GacoCMS'
9
+
10
+ def create_initializer_file
11
+ copy_file 'gaco_cms.rb', 'config/initializers/gaco_cms.rb'
12
+ directory('themes', 'app/views/themes')
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Gaco CMS settings
4
+ GacoCms::Config.url_path = '/gaco_cms'
5
+ GacoCms::Config.parent_front_controller = 'ActionController::Base'
6
+ GacoCms::Config.parent_backend_controller = 'ActionController::Base'
7
+ GacoCms::Config.front_layout = ->(_controller) { theme_path_for('layouts/application') }
8
+ GacoCms::Config.backend_editor_css = ->(_view) { asset_path('application') }
9
+ GacoCms::Config.table_prefix = 'gaco_cms_'
10
+ GacoCms::Config.locales = [:en, :de, :es]
11
+ # GacoCms::Config.add_extra_field(:my_field, { tpl: '..', label: 'My field', translatable: true })
@@ -0,0 +1,2 @@
1
+ %h1 Welcome to GacoCms
2
+ = raw GacoCms::Page.by_key(:home).the_content
@@ -0,0 +1,34 @@
1
+ !!!
2
+ %html
3
+ %head
4
+ = display_meta_tags site: 'Gaco CMS'
5
+ %meta{:content => "text/html; charset=UTF-8", "http-equiv" => "Content-Type"}/
6
+ %meta{:content => "width=device-width,initial-scale=1", :name => "viewport"}/
7
+ = csrf_meta_tags
8
+ = csp_meta_tag
9
+ = stylesheet_link_tag 'gaco_cms_front'
10
+ = javascript_include_tag 'gaco_cms_front'
11
+
12
+ %body#body
13
+ %nav.navbar.navbar-expand-lg.shadow.text-white
14
+ .container
15
+ %a.navbar-brand.logo.p-0.d-flex{href: gaco_cms_path, style: 'font-size: 32px;'}
16
+ %span.text-black Gaco
17
+ %span.text-primary CMS
18
+ %button.navbar-toggler{"aria-controls" => "navbarSupportedContent", "aria-expanded" => "false", "aria-label" => "Toggle navigation", "data-bs-target" => "#main_nav_bar", "data-bs-toggle" => "collapse", :type => "button"}
19
+ %span.fa.fa-bars
20
+
21
+ #main_nav_bar.collapse.navbar-collapse.justify-content-end.text-white-50
22
+ %ul.navbar-nav
23
+ - GacoCms::PageType.find_by(key: :pages).pages.each do |page|
24
+ %li.nav-item
25
+ %a.nav-link{href: page_url_for(page.key)}= page.title
26
+ %li.nav-item
27
+ .dropdown
28
+ %a.btn.dropdown-toggle{"data-bs-toggle" => "dropdown", role: "button"}= I18n.locale.to_s.upcase
29
+ %ul.dropdown-menu
30
+ - GacoCms::Config.locales.each do |locale|
31
+ %li= link_to locale.upcase, url_for(locale: locale, params: request.query_parameters.except(:locale)), class: 'dropdown-item'
32
+
33
+ #container.container.pt-3
34
+ = yield
@@ -0,0 +1,2 @@
1
+ %h1= @page.title
2
+ = raw @page.the_content
@@ -0,0 +1,59 @@
1
+ # NOTE: only doing this in development as some production environments (Heroku)
2
+ # NOTE: are sensitive to local FS writes, and besides -- it's just not proper
3
+ # NOTE: to have a dev-mode tool do its thing in production.
4
+ if Rails.env.test?
5
+ require 'annotate'
6
+ task :set_annotation_options do
7
+ # You can override any of these by setting an environment variable of the
8
+ # same name.
9
+ Annotate.set_defaults(
10
+ 'active_admin' => 'false',
11
+ 'additional_file_patterns' => [],
12
+ 'routes' => 'false',
13
+ 'models' => 'true',
14
+ 'position_in_routes' => 'before',
15
+ 'position_in_class' => 'before',
16
+ 'position_in_test' => 'before',
17
+ 'position_in_fixture' => 'before',
18
+ 'position_in_factory' => 'before',
19
+ 'position_in_serializer' => 'before',
20
+ 'show_foreign_keys' => 'true',
21
+ 'show_complete_foreign_keys' => 'false',
22
+ 'show_indexes' => 'true',
23
+ 'simple_indexes' => 'false',
24
+ 'model_dir' => 'app/models',
25
+ 'root_dir' => '',
26
+ 'include_version' => 'false',
27
+ 'require' => '',
28
+ 'exclude_tests' => 'true',
29
+ 'exclude_fixtures' => 'true',
30
+ 'exclude_factories' => 'true',
31
+ 'exclude_serializers' => 'true',
32
+ 'exclude_scaffolds' => 'true',
33
+ 'exclude_controllers' => 'true',
34
+ 'exclude_helpers' => 'true',
35
+ 'exclude_sti_subclasses' => 'false',
36
+ 'ignore_model_sub_dir' => 'false',
37
+ 'ignore_columns' => nil,
38
+ 'ignore_routes' => nil,
39
+ 'ignore_unknown_models' => 'false',
40
+ 'hide_limit_column_types' => 'integer,bigint,boolean',
41
+ 'hide_default_column_types' => 'json,jsonb,hstore',
42
+ 'skip_on_db_migrate' => 'false',
43
+ 'format_bare' => 'true',
44
+ 'format_rdoc' => 'false',
45
+ 'format_yard' => 'false',
46
+ 'format_markdown' => 'false',
47
+ 'sort' => 'false',
48
+ 'force' => 'false',
49
+ 'frozen' => 'false',
50
+ 'classified_sort' => 'true',
51
+ 'trace' => 'false',
52
+ 'wrapper_open' => nil,
53
+ 'wrapper_close' => nil,
54
+ 'with_comment' => 'true'
55
+ )
56
+ end
57
+
58
+ Annotate.load_tasks
59
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+ # desc "Explaining what the task does"
3
+ # task :gaco_cms do
4
+ # # Task goes here
5
+ # end
metadata ADDED
@@ -0,0 +1,174 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: gaco_cms
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Owen Peredo Diaz
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2023-05-12 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: buddy_translatable
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 1.1.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 1.1.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: rails
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '5.0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '5.0'
41
+ description: A lightweight Ruby on Rails cms suitable for any Rails application
42
+ email:
43
+ - owenperedo@gmail.com
44
+ executables: []
45
+ extensions: []
46
+ extra_rdoc_files: []
47
+ files:
48
+ - README.md
49
+ - Rakefile
50
+ - app/assets/builds/gaco_cms.css
51
+ - app/assets/builds/gaco_cms.js
52
+ - app/assets/builds/gaco_cms.js.map
53
+ - app/assets/builds/gaco_cms_front.css
54
+ - app/assets/builds/gaco_cms_front.js
55
+ - app/assets/builds/gaco_cms_front.js.map
56
+ - app/assets/javascripts/gaco_cms.js
57
+ - app/assets/javascripts/gaco_cms/base.js
58
+ - app/assets/javascripts/gaco_cms/controllers/confirm_controller.ts
59
+ - app/assets/javascripts/gaco_cms/controllers/deletable_row_controller.ts
60
+ - app/assets/javascripts/gaco_cms/controllers/editor_controller.ts
61
+ - app/assets/javascripts/gaco_cms/controllers/file_input_controller.ts
62
+ - app/assets/javascripts/gaco_cms/controllers/modal_controller.ts
63
+ - app/assets/javascripts/gaco_cms/controllers/remote_content_controller.ts
64
+ - app/assets/javascripts/gaco_cms/controllers/repeatable_field_controller.ts
65
+ - app/assets/javascripts/gaco_cms/controllers/sortable_controller.ts
66
+ - app/assets/javascripts/gaco_cms/controllers/toggle_field_controller.ts
67
+ - app/assets/javascripts/gaco_cms/controllers/translatable_controller.ts
68
+ - app/assets/javascripts/gaco_cms/lib/progress_bar.ts
69
+ - app/assets/javascripts/gaco_cms/lib/request.ts
70
+ - app/assets/javascripts/gaco_cms/lib/turbo_request.ts
71
+ - app/assets/javascripts/gaco_cms/stimulus.ts
72
+ - app/assets/javascripts/gaco_cms_front.js
73
+ - app/assets/stylesheets/gaco_cms.css.scss
74
+ - app/assets/stylesheets/gaco_cms/bootstrap_custom.scss
75
+ - app/assets/stylesheets/gaco_cms/shared.scss
76
+ - app/assets/stylesheets/gaco_cms_front.css.scss
77
+ - app/controllers/concerns/gaco_cms/turbo_concern.rb
78
+ - app/controllers/gaco_cms/admin/base_controller.rb
79
+ - app/controllers/gaco_cms/admin/field_groups_controller.rb
80
+ - app/controllers/gaco_cms/admin/field_groups_manager_controller.rb
81
+ - app/controllers/gaco_cms/admin/field_groups_renderer_controller.rb
82
+ - app/controllers/gaco_cms/admin/fields_controller.rb
83
+ - app/controllers/gaco_cms/admin/page_types_controller.rb
84
+ - app/controllers/gaco_cms/admin/pages_controller.rb
85
+ - app/controllers/gaco_cms/admin/themes_controller.rb
86
+ - app/controllers/gaco_cms/admin_controller.rb
87
+ - app/controllers/gaco_cms/front_controller.rb
88
+ - app/helpers/gaco_cms/application_helper.rb
89
+ - app/jobs/gaco_cms/application_job.rb
90
+ - app/mailers/gaco_cms/application_mailer.rb
91
+ - app/models/concerns/gaco_cms/fields_assignable.rb
92
+ - app/models/concerns/gaco_cms/union_scope.rb
93
+ - app/models/gaco_cms/application_record.rb
94
+ - app/models/gaco_cms/draft_record.rb
95
+ - app/models/gaco_cms/field.rb
96
+ - app/models/gaco_cms/field_group.rb
97
+ - app/models/gaco_cms/field_value.rb
98
+ - app/models/gaco_cms/media_file.rb
99
+ - app/models/gaco_cms/page.rb
100
+ - app/models/gaco_cms/page_type.rb
101
+ - app/models/gaco_cms/theme.rb
102
+ - app/services/gaco_cms/application_service.rb
103
+ - app/services/gaco_cms/shortcode_parser.rb
104
+ - app/services/gaco_cms/theme_content_generator.rb
105
+ - app/views/gaco_cms/admin/base/index.html.haml
106
+ - app/views/gaco_cms/admin/field_groups_manager/_field.html.haml
107
+ - app/views/gaco_cms/admin/field_groups_manager/_group.html.haml
108
+ - app/views/gaco_cms/admin/field_groups_manager/index.html.haml
109
+ - app/views/gaco_cms/admin/field_groups_renderer/_field.html.haml
110
+ - app/views/gaco_cms/admin/field_groups_renderer/_fields_frame.html.haml
111
+ - app/views/gaco_cms/admin/field_groups_renderer/_group.html.haml
112
+ - app/views/gaco_cms/admin/field_groups_renderer/default_value/_page.html.haml
113
+ - app/views/gaco_cms/admin/field_groups_renderer/fields/_editor.html.haml
114
+ - app/views/gaco_cms/admin/field_groups_renderer/fields/_file.html.haml
115
+ - app/views/gaco_cms/admin/field_groups_renderer/fields/_page.html.haml
116
+ - app/views/gaco_cms/admin/field_groups_renderer/fields/_text_area.html.haml
117
+ - app/views/gaco_cms/admin/field_groups_renderer/fields/_text_field.html.haml
118
+ - app/views/gaco_cms/admin/field_groups_renderer/index.html.haml
119
+ - app/views/gaco_cms/admin/page_types/form.html.haml
120
+ - app/views/gaco_cms/admin/page_types/index.html.haml
121
+ - app/views/gaco_cms/admin/pages/edit.html.haml
122
+ - app/views/gaco_cms/admin/pages/index.html.haml
123
+ - app/views/gaco_cms/admin/pages/new.html.haml
124
+ - app/views/gaco_cms/admin/themes/edit.html.haml
125
+ - app/views/gaco_cms/admin/themes/index.html.haml
126
+ - app/views/gaco_cms/admin/themes/new.html.haml
127
+ - app/views/layouts/gaco_cms/_breadcrumb.html.haml
128
+ - app/views/layouts/gaco_cms/_flash_messages.html.haml
129
+ - app/views/layouts/gaco_cms/admin.haml
130
+ - config/routes.rb
131
+ - db/migrate/20230202133738_create_cms_pages.rb
132
+ - db/migrate/20230202134840_create_cms_field_groups.rb
133
+ - db/migrate/20230202135314_create_cms_fields.rb
134
+ - db/migrate/20230202135739_create_cms_field_values.rb
135
+ - db/migrate/20230202181744_create_cms_media_files.rb
136
+ - db/migrate/20230206231547_create_cms_page_types.rb
137
+ - db/migrate/20230209090008_create_cms_themes.rb
138
+ - lib/gaco_cms.rb
139
+ - lib/gaco_cms/config.rb
140
+ - lib/gaco_cms/engine.rb
141
+ - lib/gaco_cms/version.rb
142
+ - lib/generators/gaco_cms/install_generator.rb
143
+ - lib/generators/gaco_cms/install_template/gaco_cms.rb
144
+ - lib/generators/gaco_cms/install_template/themes/default/index.html.haml
145
+ - lib/generators/gaco_cms/install_template/themes/default/layouts/application.html.haml
146
+ - lib/generators/gaco_cms/install_template/themes/default/page.html.haml
147
+ - lib/tasks/auto_annotate_models.rake
148
+ - lib/tasks/gaco_cms_tasks.rake
149
+ homepage: https://github.com/owen2345/gaco_cms
150
+ licenses: []
151
+ metadata:
152
+ homepage_uri: https://github.com/owen2345/gaco_cms
153
+ source_code_uri: https://github.com/owen2345/gaco_cms
154
+ changelog_uri: https://github.com/owen2345/gaco_cms/releases
155
+ post_install_message:
156
+ rdoc_options: []
157
+ require_paths:
158
+ - lib
159
+ required_ruby_version: !ruby/object:Gem::Requirement
160
+ requirements:
161
+ - - ">="
162
+ - !ruby/object:Gem::Version
163
+ version: '0'
164
+ required_rubygems_version: !ruby/object:Gem::Requirement
165
+ requirements:
166
+ - - ">="
167
+ - !ruby/object:Gem::Version
168
+ version: '0'
169
+ requirements: []
170
+ rubygems_version: 3.1.2
171
+ signing_key:
172
+ specification_version: 4
173
+ summary: A lightweight Ruby on Rails cms suitable for any Rails application
174
+ test_files: []