rails_app_generator 0.2.39 → 0.2.42

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +21 -0
  3. data/after_templates/addons/factory_bot_rails/_.rb +45 -0
  4. data/after_templates/addons/factory_bot_rails/app/controllers/home_controller.rb +8 -0
  5. data/after_templates/addons/factory_bot_rails/app/services/seed_service.rb +27 -0
  6. data/after_templates/addons/factory_bot_rails/app/views/home/index.html.erb +3 -0
  7. data/after_templates/addons/factory_bot_rails/app/views/home/reseed.html.erb +6 -0
  8. data/after_templates/addons/factory_bot_rails/app/views/layouts/_footer.html.erb +0 -0
  9. data/after_templates/addons/factory_bot_rails/app/views/layouts/_navbar.html.erb +6 -0
  10. data/after_templates/addons/factory_bot_rails/app/views/layouts/application.html.erb +29 -0
  11. data/after_templates/addons/factory_bot_rails/db/seeds.rb +1 -0
  12. data/after_templates/addons/factory_bot_rails/factories.rb +27 -0
  13. data/after_templates/application/klueless/_.rb +99 -0
  14. data/after_templates/application/klueless/app/avo/dashboards/dashboard.rb +13 -0
  15. data/after_templates/application/klueless/app/avo/resources/db_schema_resource.rb +12 -0
  16. data/after_templates/application/klueless/app/avo/resources/rails_app_resource.rb +15 -0
  17. data/after_templates/application/klueless/app/avo/resources/rubocop_resource.rb +12 -0
  18. data/after_templates/application/klueless/app/avo/resources/table_count_resource.rb +12 -0
  19. data/after_templates/application/klueless/app/avo/resources/user_resource.rb +24 -0
  20. data/after_templates/application/klueless/app/controllers/home_controller.rb +12 -0
  21. data/after_templates/application/klueless/app/models/db_schema.rb +11 -0
  22. data/after_templates/application/klueless/app/models/rails_app.rb +3 -0
  23. data/after_templates/application/klueless/app/models/rubocop.rb +11 -0
  24. data/after_templates/application/klueless/app/models/table_count.rb +11 -0
  25. data/after_templates/application/klueless/app/queries/rubocop_log.psql +23 -0
  26. data/after_templates/application/klueless/app/queries/rubocop_log_query.rb +10 -0
  27. data/after_templates/application/klueless/app/queries/sql_query.rb +40 -0
  28. data/after_templates/application/klueless/app/services/seed_service.rb +7 -0
  29. data/after_templates/application/klueless/app/views/home/index.html.erb +6 -0
  30. data/after_templates/application/klueless/app/views/home/quick_signin.html.erb +3 -0
  31. data/after_templates/application/klueless/app/views/layouts/_footer.html.erb +0 -0
  32. data/after_templates/application/klueless/app/views/layouts/_navbar.html.erb +4 -0
  33. data/after_templates/application/klueless/app/views/layouts/application.html.erb +29 -0
  34. data/after_templates/application/klueless/config/initializers/avo.rb +101 -0
  35. data/after_templates/application/klueless/config/locales/en.yml +4 -0
  36. data/after_templates/application/klueless/db/seeds.rb +18 -0
  37. data/after_templates/application/printspeak/_.rb +65 -23
  38. data/after_templates/application/printspeak/db/seeds.rb +3 -3
  39. data/docs/last_run/app_generator_class.json +16 -0
  40. data/docs/last_run/app_generator_data.json +11 -9
  41. data/docs/last_run/rails_options_class.json +16 -0
  42. data/docs/last_run/rails_options_data.json +11 -10
  43. data/lib/rails_app_generator/addons/avo.rb +2 -0
  44. data/lib/rails_app_generator/addons/factory_bot_rails.rb +1 -1
  45. data/lib/rails_app_generator/addons/scenic.rb +15 -0
  46. data/lib/rails_app_generator/app_generator.rb +10 -0
  47. data/lib/rails_app_generator/gem_query.rb +3 -1
  48. data/lib/rails_app_generator/rag_initializer.rb +2 -1
  49. data/lib/rails_app_generator/version.rb +1 -1
  50. data/package-lock.json +2 -2
  51. data/package.json +1 -1
  52. data/profiles/addons/factory_bot_rails.json +14 -0
  53. data/profiles/application/klueless.json +23 -0
  54. data/profiles/application/printspeak.json +7 -1
  55. data/templates/Gemfile.erb +0 -1
  56. metadata +39 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: be981683729c562f221e7f00120145d345ea0111fbe80aa5f4cf9f2d03eaff03
4
- data.tar.gz: 4a1a65620ae0fcecd12f0c27cd88fe0cb51da1c57843fc7afced0508cf31dfb1
3
+ metadata.gz: fac35f7d43a4a0aa30d5ad4804f03210e65531405e2bb4aa816adceb57a6fce0
4
+ data.tar.gz: c5bd9713bca39f89e04cb76811a8e4a6d5d6479af06cd9a10b813040f5761404
5
5
  SHA512:
6
- metadata.gz: d1fe4dfc123fb768fde98d6e40ed82e51955f3612751afa0241a05868d31d7fe7e209036bac26f42573cd7b7ef2f099415ab4e6e8177cd00322c59746f11e486
7
- data.tar.gz: f79cefc7816b714aac7717d35b7a6d64ccc3302d5b90c31e7747e4e0897bd0c1a2820f87017ca86de4221ca9c593735e34eb8d52bd55a85906e08fcef5652fb9
6
+ metadata.gz: c05f482952728e4d790dc1e8f0ce58acaeae23d104df1a4b2dd05d42378e5aed84995397d2092e2144d2acb5528b091179b79045beab7e68f7245cbf9b0c4aee
7
+ data.tar.gz: b229e0da5f6b7d8b1062c09fab5cab949cea7b5de883279311b3199a4c16bd3d1aa84010b41d6b27db0dd672f6707c0d095f839547c49d2eb4f4432282c56425
data/CHANGELOG.md CHANGED
@@ -1,3 +1,24 @@
1
+ ## [0.2.41](https://github.com/klueless-io/rails_app_generator/compare/v0.2.40...v0.2.41) (2022-08-30)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * update klueless profile ([e426b82](https://github.com/klueless-io/rails_app_generator/commit/e426b820b15e8e49d2cc6c6ec2ccfd4ed8ea1158))
7
+
8
+ ## [0.2.40](https://github.com/klueless-io/rails_app_generator/compare/v0.2.39...v0.2.40) (2022-08-23)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * add factory_bot_rails profile ([8a6a7ef](https://github.com/klueless-io/rails_app_generator/commit/8a6a7ef6c4b1b26003930776724cedaeb5232f84))
14
+
15
+ ## [0.2.39](https://github.com/klueless-io/rails_app_generator/compare/v0.2.38...v0.2.39) (2022-08-23)
16
+
17
+
18
+ ### Bug Fixes
19
+
20
+ * add friendly_id profile, add factory_bot_rails addon ([75d51ce](https://github.com/klueless-io/rails_app_generator/commit/75d51ceb63a5a560977073b2a6199545c5c8d17f))
21
+
1
22
  ## [0.2.38](https://github.com/klueless-io/rails_app_generator/compare/v0.2.37...v0.2.38) (2022-08-22)
2
23
 
3
24
 
@@ -0,0 +1,45 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Provides Rails integration for factory_bot
4
+ #
5
+ # exe/rag addons/factory_bot_rails
6
+
7
+ self.local_template_path = File.dirname(__FILE__)
8
+
9
+ gac 'base rails 7 image created'
10
+
11
+ prepare_environment
12
+
13
+ after_bundle do
14
+ scaffolds
15
+ setup_customizations
16
+ setup_db
17
+ end
18
+
19
+ def scaffolds
20
+ add_scaffold('post', 'title', 'body:text', 'is_featured:boolean')
21
+ add_scaffold('person', 'first_name', 'last_name', 'email', 'password', 'address:text')
22
+ add_scaffold('project', 'name', 'status', 'budget:decimal', 'country', 'progress:integer')
23
+ end
24
+
25
+ def setup_customizations
26
+ route("root 'home#index'")
27
+
28
+ force_copy
29
+
30
+ add_controller('home', 'index', 'reseed')
31
+
32
+ directory "app/controllers"
33
+ directory "app/models"
34
+ directory "app/services"
35
+ directory "app/views"
36
+ template 'app/views/layouts/application.html.erb' , 'app/views/layouts/application.html.erb'
37
+ copy_file 'factories.rb', 'factories.rb'
38
+ end
39
+
40
+ def setup_db
41
+ template 'db/seeds.rb' , 'db/seeds.rb'
42
+
43
+ db_migrate
44
+ db_seed
45
+ end
@@ -0,0 +1,8 @@
1
+ class HomeController < ApplicationController
2
+ def index
3
+ end
4
+
5
+ def reseed
6
+ SeedService.seed
7
+ end
8
+ end
@@ -0,0 +1,27 @@
1
+ class SeedService
2
+ class << self
3
+ def seed
4
+ service = SeedService.new
5
+ service.call
6
+ end
7
+ end
8
+
9
+ def call
10
+ reset
11
+ create
12
+ end
13
+
14
+ private
15
+
16
+ def reset
17
+ Person.delete_all
18
+ Post.delete_all
19
+ Project.delete_all
20
+ end
21
+
22
+ def create
23
+ FactoryBot.create_list(:post, rand(10..20))
24
+ FactoryBot.create_list(:person, rand(10..20))
25
+ FactoryBot.create_list(:project, rand(10..20))
26
+ end
27
+ end
@@ -0,0 +1,3 @@
1
+ <h1>Factory bot rails</h1>
2
+
3
+ <p></p>
@@ -0,0 +1,6 @@
1
+ <h1>Re-Seed</h1>
2
+ <p>Database has been re-seeded</p>
3
+
4
+ <p>Posts: <%= Post.count %></p>
5
+ <p>People: <%= Person.count %></p>
6
+ <p>Projects: <%= Project.count %></p>
@@ -0,0 +1,6 @@
1
+ <%= link_to 'Home', root_path %>
2
+ | <%= link_to 'Re-Seed', home_reseed_path %>
3
+ | <%= link_to 'Posts', posts_path %>
4
+ | <%= link_to 'People', people_path %>
5
+ | <%= link_to 'Projects', projects_path %>
6
+ <hr />
@@ -0,0 +1,29 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title><%= camelized %></title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <%%= csrf_meta_tags %>
7
+ <%%= csp_meta_tag %>
8
+
9
+ <%- if options[:skip_hotwire] || options[:skip_javascript] -%>
10
+ <%%= stylesheet_link_tag "application" %>
11
+ <%- else -%>
12
+ <%%= stylesheet_link_tag "application", "data-turbo-track": "reload" %>
13
+ <%- end -%>
14
+ </head>
15
+
16
+ <body>
17
+ <header>
18
+ <%%= render 'layouts/navbar' %>
19
+ <hr />
20
+ </header>
21
+ <main>
22
+ <%%= yield %>
23
+ </main>
24
+ <footer>
25
+ <%%= render 'layouts/footer' %>
26
+ </footer>
27
+ </body>
28
+ </html>
29
+
@@ -0,0 +1 @@
1
+ SeedService.seed
@@ -0,0 +1,27 @@
1
+ FactoryBot.define do
2
+ # add_scaffold('post', 'title', 'body:text', 'is_featured:boolean')
3
+ # add_scaffold('person', 'first_name', 'last_name', 'email', 'password', 'is_featured:boolean', 'address:text')
4
+ # add_scaffold('project', 'status', 'budget:decimal', 'country', 'progress:integer')
5
+
6
+ factory :person do
7
+ first_name { Faker::Name.first_name }
8
+ last_name { Faker::Name.last_name }
9
+ email { Faker::Internet.email }
10
+ password { Faker::Internet.password }
11
+ address { Faker::Address.full_address }
12
+ end
13
+
14
+ factory :post do
15
+ title { Faker::Quote.famous_last_words }
16
+ body { Faker::Lorem.paragraphs(number: rand(4...10)).join("\n") }
17
+ is_featured { [true, false].sample }
18
+ end
19
+
20
+ factory :project do
21
+ name { Faker::App.name }
22
+ status { [:closed, :rejected, :failed, :loading, :running, :waiting, :done, :finalized, :archived, :finished].sample }
23
+ budget { Faker::Number.decimal(l_digits: 4) }
24
+ country { Faker::Address.country_code }
25
+ progress { Faker::Number.between(from: 0, to: 100) }
26
+ end
27
+ end
@@ -0,0 +1,99 @@
1
+ # frozen_string_literal: true
2
+
3
+ # No Code as a Service Rails Application Builder
4
+ #
5
+ # exe/rag application/klueless
6
+
7
+ self.local_template_path = File.dirname(__FILE__)
8
+
9
+ gac 'base rails 7 image created'
10
+
11
+ prepare_environment
12
+
13
+ after_bundle do
14
+ force_copy
15
+ create_db
16
+ scaffolds
17
+ setup_customizations
18
+ migrate_db
19
+ setup_avo
20
+
21
+ swap1 = ' resources :users'
22
+ swap2 = " devise_for :users, controllers: { sessions: 'users/sessions', registrations: 'users/registrations' }"
23
+
24
+ swap_lines('config/routes.rb', swap1, swap2)
25
+ end
26
+
27
+ def scaffolds
28
+ add_scaffold_controller('users', 'name', 'email')
29
+
30
+ add_scaffold('rails_app', 'name', 'user:references') # name of the rails_app
31
+
32
+ # no of records in each table per region
33
+ add_scaffold('table_count', 'data:jsonb', 'rails_app:references')
34
+ # add_scaffold('table_count_table', 'name', 'region', 'count:integer', 'table_count:references')
35
+
36
+ # rubocop logs
37
+ add_scaffold('rubocop', 'data:jsonb', 'rails_app:references') # import_date is known as created_at
38
+
39
+ # database schema
40
+ add_scaffold('db_schema', 'data:jsonb', 'rails_app:references')
41
+ # add_scaffold('db_schema_table', 'name', 'primary_key', 'primary_key_type', 'db_schema:references')
42
+
43
+ # add_scaffold('db_schema_column', 'name', 'type', 'precision:integer', 'scale:integer', 'default', 'array:boolean', 'null:boolean', 'limit:integer', 'db_schema_table:references')
44
+ # add_scaffold('db_schema_foreign_key', 'left', 'right', 'name', 'on_update', 'on_delete', 'column', 'db_schema_table:references')
45
+ # add_scaffold('db_schema_index', 'name', 'fields', 'using', 'order:jsonb', 'where', 'unique', 'db_schema_table:references')
46
+ # add_scaffold('db_schema_view', 'name', 'materialized:boolean', 'sql_definition', 'db_schema_table:references')
47
+ end
48
+
49
+ def setup_customizations
50
+ route("root 'home#index'")
51
+
52
+ force_copy
53
+
54
+ add_controller('home', 'index', 'quick_signin', 'reseed')
55
+
56
+ directory "app/controllers"
57
+ directory "app/models"
58
+ directory "app/views"
59
+ template 'app/views/layouts/application.html.erb', 'app/views/layouts/application.html.erb'
60
+ directory "app/queries"
61
+ end
62
+
63
+ def setup_avo
64
+ # generate('avo:install')
65
+
66
+ generate('avo:resource RailsApp')
67
+ generate('avo:resource TableCount')
68
+ generate('avo:resource Rubocop')
69
+ generate('avo:resource DbSchema')
70
+ generate('avo:resource User')
71
+ # generate('avo:dashboard Dashboard')
72
+
73
+ directory "app/avo"
74
+ directory "config/initializers"
75
+ directory "config/locales"
76
+
77
+ # # add devise support
78
+ # gsub_file 'config/initializers/avo.rb', %(# config.current_user_method = {}), 'config.current_user_method = :current_user'
79
+ end
80
+
81
+ def create_db
82
+ gsub_file('config/database.yml', ' encoding: unicode', db_development_settings)
83
+ db(drop: true, create: true)
84
+ end
85
+
86
+ def migrate_db
87
+ template 'db/seeds.rb' , 'db/seeds.rb'
88
+
89
+ db(migrate: true, seed: true)
90
+ end
91
+
92
+ def db_development_settings
93
+ <<-'RUBY'
94
+ encoding: unicode
95
+ host: <%= ENV['DATABASE_HOST'] %>
96
+ username: <%= ENV['DATABASE_USERNAME'] %>
97
+ password: <%= ENV['DATABASE_PASSWORD'] %>
98
+ RUBY
99
+ end
@@ -0,0 +1,13 @@
1
+ class Dashboard < Avo::Dashboards::BaseDashboard
2
+ self.id = "dashboard"
3
+ self.name = "Dashboard"
4
+
5
+ # self.description = "Tiny dashboard description"
6
+ # self.grid_cols = 3
7
+ # self.visible = -> do
8
+ # true
9
+ # end
10
+
11
+ # cards go here
12
+ # card UsersCount
13
+ end
@@ -0,0 +1,12 @@
1
+ class DbSchemaResource < Avo::BaseResource
2
+ self.title = :display_name
3
+ self.includes = []
4
+
5
+ # self.search_query = ->(params:) do
6
+ # scope.ransack(id_eq: params[:q], m: "or").result(distinct: false)
7
+ # end
8
+
9
+ field :id, as: :id
10
+ # field :data, as: :textarea, only_on: [:edit]
11
+ # field :user_name, as: :text
12
+ end
@@ -0,0 +1,15 @@
1
+ class RailsAppResource < Avo::BaseResource
2
+ self.title = :display_name
3
+ self.includes = []
4
+
5
+ # self.search_query = ->(params:) do
6
+ # scope.ransack(id_eq: params[:q], m: "or").result(distinct: false)
7
+ # end
8
+
9
+ field :id, as: :id
10
+ field :name, as: :text
11
+
12
+ field :db_schema, as: :has_one
13
+ field :table_count, as: :has_one
14
+ field :rubocop, as: :has_one
15
+ end
@@ -0,0 +1,12 @@
1
+ class RubocopResource < Avo::BaseResource
2
+ self.title = :display_name
3
+ self.includes = []
4
+
5
+ # self.search_query = ->(params:) do
6
+ # scope.ransack(id_eq: params[:q], m: "or").result(distinct: false)
7
+ # end
8
+
9
+ field :id, as: :id
10
+ # field :data, as: :textarea, only_on: [:edit]
11
+ # field :user_name, as: :text
12
+ end
@@ -0,0 +1,12 @@
1
+ class TableCountResource < Avo::BaseResource
2
+ self.title = :display_name
3
+ self.includes = []
4
+
5
+ # self.search_query = ->(params:) do
6
+ # scope.ransack(id_eq: params[:q], m: "or").result(distinct: false)
7
+ # end
8
+
9
+ field :id, as: :id
10
+ # field :data, as: :textarea, only_on: [:edit]
11
+ # field :user_name, as: :text
12
+ end
@@ -0,0 +1,24 @@
1
+ # tutorial (user resource): https://youtu.be/WgNK-oINFww?t=599
2
+ class UserResource < Avo::BaseResource
3
+ # https://docs.avohq.io/2.0/resources.html#devise-password-optional
4
+ # you need to fill in the password when creating a new user,
5
+ # but when editing a user you can leave the password field empty
6
+ self.devise_password_optional = true
7
+
8
+ # tutorial (better search experience): https://youtu.be/WgNK-oINFww?t=649
9
+ self.title = :email
10
+ self.includes = []
11
+
12
+ self.search_query = ->(params:) do
13
+ scope
14
+ .ransack(id_eq: params[:q], name_cont: params[:q], email_cont: params[:q], m: "or")
15
+ .result(distinct: false)
16
+ end
17
+
18
+ field :id, as: :id
19
+ field :email, as: :gravatar, link_to_resource: true, as_avatar: true
20
+ field :name, as: :text
21
+ field :email, as: :text, as_description: true
22
+ field :password, as: :text
23
+ field :posts, as: :has_many
24
+ end
@@ -0,0 +1,12 @@
1
+ class HomeController < ApplicationController
2
+ def index
3
+ end
4
+
5
+ def quick_signin
6
+ sign_in(:user, User.first)
7
+ end
8
+
9
+ def reseed
10
+ SeedService.seed
11
+ end
12
+ end
@@ -0,0 +1,11 @@
1
+ class DbSchema < ApplicationRecord
2
+ belongs_to :rails_app
3
+
4
+ # def user_name
5
+ # rails_app.user.name
6
+ # end
7
+
8
+ def display_name
9
+ "DB Schema for #{rails_app.name} - #{created_at.strftime("%d/%m/%Y")}"
10
+ end
11
+ end
@@ -0,0 +1,3 @@
1
+ class RailsApp < ApplicationRecord
2
+ belongs_to :user
3
+ end
@@ -0,0 +1,11 @@
1
+ class Rubocop < ApplicationRecord
2
+ belongs_to :rails_app
3
+
4
+ # def user_name
5
+ # rails_app.user.name
6
+ # end
7
+
8
+ def display_name
9
+ "RuboCop for #{rails_app.name} - #{created_at.strftime("%d/%m/%Y")}"
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ class TableCount < ApplicationRecord
2
+ belongs_to :rails_app
3
+
4
+ # def user_name
5
+ # rails_app.user.name
6
+ # end
7
+
8
+ def display_name
9
+ "Table Counts for #{rails_app.name} - #{created_at.strftime("%d/%m/%Y")}"
10
+ end
11
+ end
@@ -0,0 +1,23 @@
1
+ WITH
2
+
3
+ files AS (
4
+ SELECT jsonb_array_elements(data->'files') FROM rubocops
5
+ ),
6
+ lines AS (
7
+ SELECT
8
+ jsonb_array_elements(files)->>'file' as file,
9
+ jsonb_array_elements(files)->'lines' as lines
10
+ FROM files
11
+ ),
12
+ rubocop_log AS (
13
+ SELECT
14
+ jsonb_array_elements(lines)->>'position' as position,
15
+ jsonb_array_elements(lines)->>'status' as status,
16
+ jsonb_array_elements(lines)->>'status_message' as status_message,
17
+ jsonb_array_elements(lines)->>'cop' as cop,
18
+ jsonb_array_elements(lines)->>'message' as message,
19
+ jsonb_array_elements(lines)->>'full_line' as full_line,
20
+ jsonb_array_elements(lines)->>'file_name' as file_name
21
+ FROM lines
22
+ )
23
+ select * from rubocop_log
@@ -0,0 +1,10 @@
1
+ class RubocopLogQuery < SqlQuery
2
+ sql_resource './rubocop_log.psql'
3
+ fields %i(position status status_message cop message full_line file_name)
4
+
5
+ def call
6
+ sql_query = "#{sql} LIMIT 5"
7
+
8
+ query(sql_query)
9
+ end
10
+ end
@@ -0,0 +1,40 @@
1
+ class SqlQuery
2
+ attr_reader :opts
3
+ attr_reader :sql
4
+ attr_reader :record
5
+
6
+ def initialize(**opts)
7
+ @opts = opts
8
+ @sql = self.class.sql
9
+ @record = self.class.record
10
+ end
11
+
12
+ def query(sql_query)
13
+ result = connection.execute(sql_query)
14
+ result.map { |row| record.new(**row) }
15
+ end
16
+
17
+ class << self
18
+ attr_reader :sql
19
+ attr_reader :record
20
+
21
+ def query(**opts)
22
+ new(**opts).call
23
+ end
24
+
25
+ def sql_resource(filename)
26
+ sql_file = File.expand_path(filename, File.dirname(__FILE__))
27
+ @sql = File.read(sql_file)
28
+ end
29
+
30
+ def fields(fields)
31
+ @record = Struct.new(*fields, keyword_init: true)
32
+ end
33
+ end
34
+
35
+ protected
36
+
37
+ def connection
38
+ ActiveRecord::Base.connection
39
+ end
40
+ end
@@ -0,0 +1,7 @@
1
+ class SeedService
2
+ class << self
3
+ def seed
4
+ puts 'sssssssssssssssssssssss'
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,6 @@
1
+ <h1><%= I18n.t('application_name') %></h1>
2
+
3
+ <p>The Klue is to do Less</p>
4
+
5
+ <p>No Code as a Service - Rails Application Builder</p>
6
+
@@ -0,0 +1,3 @@
1
+ <h1>Quick SignIn</h1>
2
+
3
+ <p>You are signed in as: <b><%= current_user.email %></b></p>
@@ -0,0 +1,4 @@
1
+ <%= link_to 'Home', root_path %>
2
+ <%= link_to 'Quick Sign In', home_quick_signin_path %> |
3
+ <%= link_to 'Admin', avo_path %>
4
+ <hr />
@@ -0,0 +1,29 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title><%= camelized %></title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <%%= csrf_meta_tags %>
7
+ <%%= csp_meta_tag %>
8
+
9
+ <%- if options[:skip_hotwire] || options[:skip_javascript] -%>
10
+ <%%= stylesheet_link_tag "application" %>
11
+ <%- else -%>
12
+ <%%= stylesheet_link_tag "application", "data-turbo-track": "reload" %>
13
+ <%- end -%>
14
+ </head>
15
+
16
+ <body>
17
+ <header>
18
+ <%%= render 'layouts/navbar' %>
19
+ <hr />
20
+ </header>
21
+ <main>
22
+ <%%= yield %>
23
+ </main>
24
+ <footer>
25
+ <%%= render 'layouts/footer' %>
26
+ </footer>
27
+ </body>
28
+ </html>
29
+