hera_cms 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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: []