hera_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 (40) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +67 -0
  4. data/Rakefile +22 -0
  5. data/app/assets/config/hera_cms_manifest.js +1 -0
  6. data/app/assets/images/hera_cms/hera_white.png +0 -0
  7. data/app/assets/javascripts/hera_cms/application.js +1 -0
  8. data/app/assets/stylesheets/hera_cms/application.css +154 -0
  9. data/app/assets/stylesheets/hera_cms/links.css +4 -0
  10. data/app/controllers/hera_cms/application_controller.rb +5 -0
  11. data/app/controllers/hera_cms/base_controller.rb +9 -0
  12. data/app/controllers/hera_cms/dashboard_controller.rb +6 -0
  13. data/app/controllers/hera_cms/links_controller.rb +56 -0
  14. data/app/helpers/hera_cms/application_helper.rb +4 -0
  15. data/app/helpers/hera_cms/links_helper.rb +4 -0
  16. data/app/helpers/hera_cms/tag_helper.rb +121 -0
  17. data/app/jobs/hera_cms/application_job.rb +4 -0
  18. data/app/mailers/hera_cms/application_mailer.rb +6 -0
  19. data/app/models/hera_cms/application_record.rb +31 -0
  20. data/app/models/hera_cms/image.rb +7 -0
  21. data/app/models/hera_cms/link.rb +8 -0
  22. data/app/models/hera_cms/text.rb +7 -0
  23. data/app/views/hera_cms/dashboard/home.html.erb +6 -0
  24. data/app/views/hera_cms/layouts/hera_cms/application.html.erb +15 -0
  25. data/app/views/hera_cms/shared/_hera_edit.js +302 -0
  26. data/app/views/hera_cms/shared/_navbar.html.erb +13 -0
  27. data/app/views/layouts/hera_cms/application.html.erb +15 -0
  28. data/config/routes.rb +5 -0
  29. data/db/migrate/20201202150007_create_hera_cms_links.rb +13 -0
  30. data/db/migrate/20201202152559_create_hera_cms_texts.rb +12 -0
  31. data/db/migrate/20201203104012_create_hera_cms_images.rb +13 -0
  32. data/lib/generators/hera_cms/install_generator.rb +22 -0
  33. data/lib/generators/hera_cms/templates/config.rb.tt +2 -0
  34. data/lib/generators/hera_cms/templates/install.rb.tt +38 -0
  35. data/lib/hera_cms.rb +28 -0
  36. data/lib/hera_cms/engine.rb +34 -0
  37. data/lib/hera_cms/railtie.rb +4 -0
  38. data/lib/hera_cms/version.rb +3 -0
  39. data/lib/tasks/hera_cms_tasks.rake +32 -0
  40. metadata +201 -0
@@ -0,0 +1,12 @@
1
+ class CreateHeraCmsTexts < ActiveRecord::Migration[6.0]
2
+ def change
3
+ create_table :hera_cms_texts do |t|
4
+ t.string :identifier
5
+ t.string :inner_text, default: ""
6
+ t.string :classes, default: ""
7
+ t.string :style, default: ""
8
+
9
+ t.timestamps
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,13 @@
1
+ class CreateHeraCmsImages < ActiveRecord::Migration[6.0]
2
+ def change
3
+ create_table :hera_cms_images do |t|
4
+ t.string :identifier
5
+ t.string :upload
6
+ t.string :url
7
+ t.string :classes, default: ""
8
+ t.string :style, default: ""
9
+
10
+ t.timestamps
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,22 @@
1
+ require "rails/generators/active_record"
2
+
3
+ module HeraCms
4
+ module Generators
5
+ class InstallGenerator < Rails::Generators::Base
6
+ include ActiveRecord::Generators::Migration
7
+ source_root File.join(__dir__, "templates")
8
+
9
+ def copy_migration
10
+ migration_template "install.rb", "db/migrate/install_hera.rb", migration_version: migration_version
11
+ end
12
+
13
+ def copy_config
14
+ template "config.rb", "config/hera.rb"
15
+ end
16
+
17
+ def migration_version
18
+ "[#{ActiveRecord::VERSION::MAJOR}.#{ActiveRecord::VERSION::MINOR}]"
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,2 @@
1
+ # see https://github.com/horta-tech/iris_cms for more info
2
+
@@ -0,0 +1,38 @@
1
+ class <%= migration_class_name %> < ActiveRecord::Migration<%= migration_version %>
2
+ def change
3
+ create_table :hera_cms_links do |t|
4
+ t.string :identifier, default: ""
5
+ t.string :inner_text
6
+ t.string :path
7
+ t.string :classes, default: ""
8
+ t.string :style, default: ""
9
+
10
+ t.timestamps
11
+ end
12
+
13
+ create_table :hera_cms_images do |t|
14
+ t.string :identifier, default: ""
15
+ t.string :upload
16
+ t.string :url
17
+ t.string :classes, default: ""
18
+ t.string :style, default: ""
19
+
20
+ t.timestamps
21
+ end
22
+
23
+ create_table :hera_cms_texts do |t|
24
+ t.string :identifier, default: ""
25
+ t.string :classes, default: ""
26
+ t.text :inner_text
27
+ t.string :style, default: ""
28
+
29
+ t.timestamps
30
+ end
31
+
32
+ create_table :hera_cms_forms do |t|
33
+ t.string :send_to
34
+
35
+ t.timestamps
36
+ end
37
+ end
38
+ end
data/lib/hera_cms.rb ADDED
@@ -0,0 +1,28 @@
1
+ # modules
2
+ require "hera_cms/version"
3
+
4
+ # dependencies
5
+ require "active_support/dependencies"
6
+
7
+ # engine
8
+ require "hera_cms/engine"
9
+
10
+ module HeraCms
11
+ class Error < StandardError; end
12
+
13
+ # mattr_accessor :app_root
14
+
15
+ # class << self
16
+ # attr_accessor :s3_bucket
17
+ # end
18
+
19
+ # Yield self on setup for nice config blocks
20
+ def self.setup
21
+ yield self
22
+ end
23
+
24
+ def self.test
25
+ return "Successful"
26
+ end
27
+ end
28
+
@@ -0,0 +1,34 @@
1
+ module HeraCms
2
+ class Engine < ::Rails::Engine
3
+ isolate_namespace HeraCms
4
+
5
+ config.generators do |g|
6
+ g.test_framework :rspec
7
+ g.fixture_replacement :factory_bot
8
+ g.factory_bot dir: 'spec/factories'
9
+ end
10
+ # initializer "hera_cms.load_app_instance_data" do |app|
11
+ # HeraCms.setup do |config|
12
+ # config.app_root = app.root
13
+ # end
14
+ # end
15
+
16
+ initializer "hera_cms.load_helpers" do |app|
17
+ ActiveSupport.on_load(:action_view) { include HeraCms::TagHelper }
18
+ end
19
+
20
+ initializer "hera_cms.assets.precompile" do |app|
21
+ if defined?(Sprockets) && Sprockets::VERSION >= "4"
22
+ app.config.assets.precompile << "hera_cms/application.js"
23
+ app.config.assets.precompile << "hera_cms/application.css"
24
+ app.config.assets.precompile << "hera_cms/hera_white.png"
25
+ else
26
+ # use a proc instead of a string
27
+ app.config.assets.precompile << proc { |path| path =~ /\Ahera_cms\/application\.(js|css)\z/ }
28
+ app.config.assets.precompile << proc { |path| path =~ /\Ahera_cms\/.+\.(eot|svg|ttf|woff|woff2)\z/ }
29
+ app.config.assets.precompile << proc { |path| path == "hera_cms/hera_white.png" }
30
+ end
31
+ end
32
+
33
+ end
34
+ end
@@ -0,0 +1,4 @@
1
+ module HeraCms
2
+ class Railtie < ::Rails::Railtie
3
+ end
4
+ end
@@ -0,0 +1,3 @@
1
+ module HeraCms
2
+ VERSION = '0.1.0'
3
+ end
@@ -0,0 +1,32 @@
1
+ namespace :hera_cms do
2
+ desc "Populates the production database with the generated YML seed"
3
+ task populate_database: [:environment] do
4
+ @file_path = File.join(Rails.root, 'db', 'hera_cms', 'hera_database_seed.yml')
5
+
6
+ if File.exists?(@file_path)
7
+ yaml = YAML.load(File.read(@file_path))
8
+
9
+ models = [ HeraCms::Link, HeraCms::Text, HeraCms::Image ]
10
+
11
+ models.each do |model|
12
+ model_name = model.model_name.plural
13
+
14
+ if yaml.key?(model_name)
15
+ elements = yaml[model_name]
16
+ elements.each do |identifier, element_params|
17
+ element = model.find_or_initialize_by(identifier: element_params["identifier"])
18
+ element.assign_attributes(element_params.without("identifier"))
19
+ if element.valid?
20
+ puts "#{model.to_s} - #{element.identifier} -> Saved successfully." if element.changed? && element.save
21
+ else
22
+ puts "#{model.to_s} - #{element.identifier} -> Not valid. #{element.errors.full_messages}"
23
+ end
24
+ end
25
+ end
26
+ end
27
+ else
28
+ fail StandardError, "HeraCms seed file not found. Please add some HeraCms records to your development database."
29
+ end
30
+ end
31
+ end
32
+
metadata ADDED
@@ -0,0 +1,201 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: hera_cms
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Rayan Castro
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2021-02-22 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 6.0.3
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 6.0.3.4
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: 6.0.3
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 6.0.3.4
33
+ - !ruby/object:Gem::Dependency
34
+ name: yaml
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: 0.1.1
40
+ - - "~>"
41
+ - !ruby/object:Gem::Version
42
+ version: 0.1.1
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: 0.1.1
50
+ - - "~>"
51
+ - !ruby/object:Gem::Version
52
+ version: 0.1.1
53
+ - !ruby/object:Gem::Dependency
54
+ name: pg
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: 1.2.3
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: 1.2.3
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: 1.2.3
70
+ - - "~>"
71
+ - !ruby/object:Gem::Version
72
+ version: 1.2.3
73
+ - !ruby/object:Gem::Dependency
74
+ name: rspec-rails
75
+ requirement: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - ">="
78
+ - !ruby/object:Gem::Version
79
+ version: 4.0.2
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 4.0.2
83
+ type: :development
84
+ prerelease: false
85
+ version_requirements: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: 4.0.2
90
+ - - "~>"
91
+ - !ruby/object:Gem::Version
92
+ version: 4.0.2
93
+ - !ruby/object:Gem::Dependency
94
+ name: factory_bot_rails
95
+ requirement: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ version: 6.1.0
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: 6.1.0
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: 6.1.0
110
+ - - "~>"
111
+ - !ruby/object:Gem::Version
112
+ version: 6.1.0
113
+ - !ruby/object:Gem::Dependency
114
+ name: byebug
115
+ requirement: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - ">="
118
+ - !ruby/object:Gem::Version
119
+ version: 11.1.3
120
+ - - "~>"
121
+ - !ruby/object:Gem::Version
122
+ version: 11.1.3
123
+ type: :development
124
+ prerelease: false
125
+ version_requirements: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - ">="
128
+ - !ruby/object:Gem::Version
129
+ version: 11.1.3
130
+ - - "~>"
131
+ - !ruby/object:Gem::Version
132
+ version: 11.1.3
133
+ description:
134
+ email:
135
+ - rayancdc@gmail.com
136
+ executables: []
137
+ extensions: []
138
+ extra_rdoc_files: []
139
+ files:
140
+ - MIT-LICENSE
141
+ - README.md
142
+ - Rakefile
143
+ - app/assets/config/hera_cms_manifest.js
144
+ - app/assets/images/hera_cms/hera_white.png
145
+ - app/assets/javascripts/hera_cms/application.js
146
+ - app/assets/stylesheets/hera_cms/application.css
147
+ - app/assets/stylesheets/hera_cms/links.css
148
+ - app/controllers/hera_cms/application_controller.rb
149
+ - app/controllers/hera_cms/base_controller.rb
150
+ - app/controllers/hera_cms/dashboard_controller.rb
151
+ - app/controllers/hera_cms/links_controller.rb
152
+ - app/helpers/hera_cms/application_helper.rb
153
+ - app/helpers/hera_cms/links_helper.rb
154
+ - app/helpers/hera_cms/tag_helper.rb
155
+ - app/jobs/hera_cms/application_job.rb
156
+ - app/mailers/hera_cms/application_mailer.rb
157
+ - app/models/hera_cms/application_record.rb
158
+ - app/models/hera_cms/image.rb
159
+ - app/models/hera_cms/link.rb
160
+ - app/models/hera_cms/text.rb
161
+ - app/views/hera_cms/dashboard/home.html.erb
162
+ - app/views/hera_cms/layouts/hera_cms/application.html.erb
163
+ - app/views/hera_cms/shared/_hera_edit.js
164
+ - app/views/hera_cms/shared/_navbar.html.erb
165
+ - app/views/layouts/hera_cms/application.html.erb
166
+ - config/routes.rb
167
+ - db/migrate/20201202150007_create_hera_cms_links.rb
168
+ - db/migrate/20201202152559_create_hera_cms_texts.rb
169
+ - db/migrate/20201203104012_create_hera_cms_images.rb
170
+ - lib/generators/hera_cms/install_generator.rb
171
+ - lib/generators/hera_cms/templates/config.rb.tt
172
+ - lib/generators/hera_cms/templates/install.rb.tt
173
+ - lib/hera_cms.rb
174
+ - lib/hera_cms/engine.rb
175
+ - lib/hera_cms/railtie.rb
176
+ - lib/hera_cms/version.rb
177
+ - lib/tasks/hera_cms_tasks.rake
178
+ homepage: https://github.com/horta-tech/hera_cms
179
+ licenses:
180
+ - MIT
181
+ metadata: {}
182
+ post_install_message:
183
+ rdoc_options: []
184
+ require_paths:
185
+ - lib
186
+ required_ruby_version: !ruby/object:Gem::Requirement
187
+ requirements:
188
+ - - ">="
189
+ - !ruby/object:Gem::Version
190
+ version: '0'
191
+ required_rubygems_version: !ruby/object:Gem::Requirement
192
+ requirements:
193
+ - - ">="
194
+ - !ruby/object:Gem::Version
195
+ version: '0'
196
+ requirements: []
197
+ rubygems_version: 3.0.3
198
+ signing_key:
199
+ specification_version: 4
200
+ summary: Turn your rails application into a Content Managing Site (CMS)
201
+ test_files: []