gaco_cms 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 (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: []