rails_app_generator 0.2.3 → 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +7 -0
  3. data/after_templates/addons/lograge/_.rb +22 -0
  4. data/after_templates/addons/lograge/app/controllers/home_controller.rb +9 -0
  5. data/after_templates/addons/lograge/app/views/home/index.html.erb +11 -0
  6. data/after_templates/addons/lograge/app/views/layouts/application.html.erb +21 -0
  7. data/after_templates/application/printspeak/_.rb +21 -27
  8. data/after_templates/application/printspeak/app/assets/stylesheets/application.bootstrap.scss +1 -1
  9. data/after_templates/application/printspeak/app/assets/stylesheets/{home → page}/_global.scss +0 -0
  10. data/after_templates/application/printspeak/app/assets/stylesheets/{home → page}/_variables.scss +0 -0
  11. data/after_templates/application/printspeak/app/assets/stylesheets/{home → page}/components/_buttons.scss +0 -0
  12. data/after_templates/application/printspeak/app/assets/stylesheets/{home → page}/components/_navbar.scss +0 -0
  13. data/after_templates/application/printspeak/app/assets/stylesheets/{home → page}/sections/_contact.scss +0 -0
  14. data/after_templates/application/printspeak/app/assets/stylesheets/{home → page}/sections/_footer.scss +0 -0
  15. data/after_templates/application/printspeak/app/assets/stylesheets/{home → page}/sections/_masthead.scss +0 -0
  16. data/after_templates/application/printspeak/app/assets/stylesheets/page/sections/_pagehead.scss +52 -0
  17. data/after_templates/application/printspeak/app/assets/stylesheets/{home → page}/sections/_portfolio.scss +0 -0
  18. data/after_templates/application/printspeak/app/assets/stylesheets/{home → page}/sections/_team.scss +0 -0
  19. data/after_templates/application/printspeak/app/assets/stylesheets/{home → page}/sections/_timeline.scss +0 -0
  20. data/after_templates/application/printspeak/app/assets/stylesheets/{home → page}/styles.scss +1 -0
  21. data/after_templates/application/printspeak/app/assets/stylesheets/{home → page}/variables/_colors.scss +0 -0
  22. data/after_templates/application/printspeak/app/assets/stylesheets/{home → page}/variables/_typography.scss +0 -0
  23. data/after_templates/application/printspeak/app/controllers/application_controller.rb +41 -0
  24. data/after_templates/application/printspeak/app/controllers/home_controller.rb +3 -3
  25. data/after_templates/application/printspeak/app/controllers/page_controller.rb +13 -0
  26. data/after_templates/application/printspeak/app/views/home/_body_end.html.erb +45 -0
  27. data/after_templates/application/printspeak/app/views/home/_navbar.html.erb +14 -0
  28. data/after_templates/application/printspeak/app/views/home/index.html.erb +234 -283
  29. data/after_templates/application/printspeak/app/views/layouts/_body_end.html.erb +0 -0
  30. data/after_templates/application/printspeak/app/views/layouts/_footer.html.erb +2 -2
  31. data/after_templates/application/printspeak/app/views/layouts/_head.html.erb +0 -0
  32. data/after_templates/application/printspeak/app/views/layouts/application.html.erb +3 -3
  33. data/after_templates/application/printspeak/app/views/page/_navbar.html.erb +9 -0
  34. data/after_templates/application/printspeak/app/views/page/benefits.html.erb +28 -0
  35. data/after_templates/application/printspeak/app/views/page/privacy.html.erb +12 -0
  36. data/after_templates/application/printspeak/app/views/page/terms.html.erb +12 -0
  37. data/docs/last_run/app_generator_class.json +8 -0
  38. data/docs/last_run/app_generator_data.json +3 -2
  39. data/docs/last_run/rails_options_class.json +8 -0
  40. data/docs/last_run/rails_options_data.json +3 -2
  41. data/lib/rails_app_generator/addons/docker.rb +1 -0
  42. data/lib/rails_app_generator/addons/generators.rb +1 -0
  43. data/lib/rails_app_generator/addons/lograge.rb +3 -1
  44. data/lib/rails_app_generator/app_generator.rb +10 -2
  45. data/lib/rails_app_generator/rag_initializer.rb +1 -1
  46. data/lib/rails_app_generator/version.rb +1 -1
  47. data/package-lock.json +2 -2
  48. data/package.json +1 -1
  49. data/profiles/addons/lograge.json +12 -0
  50. data/profiles/application/printspeak.json +2 -1
  51. data/templates/addons/lograge/config/initializers/lograge.rb +9 -1
  52. data/templates/thor_task/profile/after_template.rb +16 -5
  53. metadata +31 -21
  54. data/after_templates/application/printspeak/app/views/layouts/_alerts.html.erb +0 -2
  55. data/after_templates/application/printspeak/app/views/page/_footer.html.erb +0 -184
  56. data/after_templates/application/printspeak/app/views/page/architecture.html.erb +0 -33
  57. data/after_templates/application/printspeak/app/views/page/blog.html.erb +0 -44
  58. data/after_templates/application/printspeak/app/views/page/page_controller.rb +0 -27
  59. data/after_templates/application/printspeak/app/views/page/readme.html.erb +0 -49
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ae97bb31a180dfc073aae1492fd1da10ad392d906ce5912a8ae50840cd1b65b9
4
- data.tar.gz: fa9bbe29a263dec0e61ea7bbdbbfc361f16e3eb36d30e389364d3106c375920f
3
+ metadata.gz: dfc40090a855c5ad3416566e5d0b5d9d6548c6258b538e3c19a98fa32467da92
4
+ data.tar.gz: ec270928cdc2dc8da04b1a2c0ec8f511c3f53af359d8de49e1eb5ae7fb06d920
5
5
  SHA512:
6
- metadata.gz: 74757b083c9a9aa1fbc1a66ef3646781237f9f2b09b39beb829a66480082df4ac53f2f63fc0c24687914d1737847a9ec95221db6a60e04b4c160f4174a64c433
7
- data.tar.gz: 9ad5c9b38e11cdf2ccfb633c141412b2ee610ea0c3ea42dc52e238cc65c5363d024798ab495a61142fca05ece2a0ee56dec87f2ea3de37151daa889c3253ab91
6
+ metadata.gz: 0e50e462d5d9617d6e5e31ef9c03cdbafbc489653006a7821b6d7c1b3cad83ddd7851aac17a73f9e673c657e2ce1ccb50b97c69f30b827fcb8a718f08c0f2195
7
+ data.tar.gz: c1c52da4c520cbe826b47a20ddb6ead1b45faeaaab530c41ea1bb9eda94084fd480ba8cf20f8040d05854522e19cf7b27f3884d1b426f5082c89b2a22b257c5d
data/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ ## [0.2.3](https://github.com/klueless-io/rails_app_generator/compare/v0.2.2...v0.2.3) (2022-08-09)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * add profile - rubocop ([1c30098](https://github.com/klueless-io/rails_app_generator/commit/1c30098ea0abee370aba96f3f7db6748ebdbccd4))
7
+
1
8
  ## [0.2.2](https://github.com/klueless-io/rails_app_generator/compare/v0.2.1...v0.2.2) (2022-08-09)
2
9
 
3
10
 
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Tame Rails multi-line logging into a single line per request
4
+ #
5
+ # exe/rag addons/lograge
6
+
7
+ self.local_template_path = File.dirname(__FILE__)
8
+
9
+ gac 'base rails 7 image created'
10
+
11
+ bundle_install
12
+
13
+ add_controller('home', 'index')
14
+
15
+ route("root 'home#index'")
16
+
17
+ force_copy
18
+
19
+ directory "app/controllers"
20
+ directory "app/views/home"
21
+ directory "app/views/layouts"
22
+ template 'app/views/layouts/application.html.erb' , 'app/views/layouts/application.html.erb'
@@ -0,0 +1,9 @@
1
+ class HomeController < ApplicationController
2
+ def index
3
+ logger.debug("I'm a debug log")
4
+ logger.info("I'm an info log")
5
+ logger.warn("I'm a warn log")
6
+ logger.error("I'm an error log: error message")
7
+ logger.fatal("I'm a fatal log")
8
+ end
9
+ end
@@ -0,0 +1,11 @@
1
+ <style>
2
+ .alert { color: red; }
3
+ .notice { color: green; }
4
+ </style>
5
+
6
+ <% flash.each do |type, msg| %><div class="<%= type %>"><%= msg %></div><% end %>
7
+ <% if flash.any? %><hr /><% end %>
8
+
9
+ <h1>Lograge</h1>
10
+
11
+ <h2>Tame Rails' multi-line logging into a single line per request</h2>
@@ -0,0 +1,21 @@
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
+ <main>
18
+ <%%= yield %>
19
+ </main>
20
+ </body>
21
+ </html>
@@ -9,28 +9,36 @@ self.local_template_path = File.dirname(__FILE__)
9
9
  gac 'base rails 7 image created'
10
10
 
11
11
  add_controller('home', 'index')
12
- add_controller('page', 'blog', 'readme', 'about', 'contact', 'faq', 'terms', 'privacy')
12
+ add_controller('page', 'benefits', 'faq', 'terms', 'privacy', '--skip-routes')
13
13
 
14
14
  route("root 'home#index'")
15
+ route(<<-'RUBY')
16
+ PageController.action_methods.each do |action|
17
+ get "/#{action}", to: "page##{action}", as: "page_#{action}"
18
+ end
19
+ RUBY
15
20
 
16
- force_copy
17
-
18
- copy_file 'app/controllers/home_controller.rb' , 'app/controllers/home_controller.rb'
19
- copy_file 'app/views/home/index.html.erb' , 'app/views/home/index.html.erb'
20
-
21
- copy_file 'app/views/layouts/_alerts.html.erb' , 'app/views/layouts/_alerts.html.erb'
22
- copy_file 'app/views/layouts/_navbar.html.erb' , 'app/views/layouts/_navbar.html.erb'
23
- copy_file 'app/views/layouts/_footer.html.erb' , 'app/views/layouts/_footer.html.erb'
24
- template 'app/views/layouts/application.html.erb' , 'app/views/layouts/application.html.erb'
21
+ after_bundle do
22
+ customizations
23
+ setup_db
24
+ rubocop
25
+ end
25
26
 
26
- template 'db/seeds.rb' , 'db/seeds.rb'
27
+ def customizations
28
+ force_copy
27
29
 
28
- after_bundle do
29
30
  directory "app/assets/images"
30
31
  directory "app/assets/stylesheets"
32
+
33
+ directory "app/controllers"
34
+
35
+ directory "app/views/home"
31
36
  directory "app/views/page"
32
37
 
33
- setup_db
38
+ directory "app/views/layouts"
39
+ template 'app/views/layouts/application.html.erb' , 'app/views/layouts/application.html.erb'
40
+
41
+ template 'db/seeds.rb' , 'db/seeds.rb'
34
42
  end
35
43
 
36
44
  def setup_db
@@ -39,17 +47,3 @@ def setup_db
39
47
 
40
48
  db_migrate
41
49
  end
42
-
43
- # Other template command examples
44
- # css_install('tailwind')
45
- # rails_command('db:migrate')
46
- # bundle_add('hotwire-rails')
47
- # rails_command('hotwire:install')
48
- # run('bin/importmap pin sortablejs')
49
- # run('npm install daisyui')
50
- # create_file 'app/assets/stylesheets/custom-bootstrap-import.scss' , read_template('custom-bootstrap-import.scss')
51
- # append_to_file 'app/assets/config/manifest.js' , read_template('manifest.js')
52
- # insert_into_file 'app/views/layouts/application.html.erb', read_template('application.html.erb'),
53
- # before: %( <%= javascript_include_tag "application", "data-turbo-track": "reload", defer: true %>)
54
- # gsub_file 'app/views/layouts/application.html.erb', %(container mx-auto mt-28 px-5 flex), 'container mx-auto px-5'
55
- # template 'home.css', 'app/assets/stylesheets/home.css'
@@ -1,3 +1,3 @@
1
1
  @import 'bootstrap/scss/bootstrap';
2
2
  @import 'bootstrap-icons/font/bootstrap-icons';
3
- @import 'home/styles.scss'
3
+ @import 'page/styles.scss'
@@ -0,0 +1,52 @@
1
+ //
2
+ // pagehead section styling
3
+ //
4
+
5
+ header.pagehead {
6
+ padding-top: 6rem;
7
+ padding-bottom: 2rem;
8
+ text-align: center;
9
+ color: $white;
10
+ background-image: url("header-bg.jpg");
11
+ background-repeat: no-repeat;
12
+ background-attachment: scroll;
13
+ background-position: center center;
14
+ background-size: cover;
15
+
16
+ .pagehead-subheading {
17
+ font-size: 1.5rem;
18
+ font-style: italic;
19
+ line-height: 1.5rem;
20
+ margin-bottom: 25px;
21
+ font-family: $subheadings-font-family;
22
+ }
23
+
24
+ .pagehead-heading {
25
+ font-size: 3.25rem;
26
+ font-weight: 700;
27
+ line-height: 3.25rem;
28
+ margin-bottom: 2rem;
29
+ font-family: $headings-font-family;
30
+ }
31
+ }
32
+
33
+ @include media-breakpoint-up(md) {
34
+ header.pagehead {
35
+ padding-top: 6rem;
36
+ padding-bottom: 2rem;
37
+
38
+ .pagehead-subheading {
39
+ font-size: 2.25rem;
40
+ font-style: italic;
41
+ line-height: 2.25rem;
42
+ margin-bottom: 2rem;
43
+ }
44
+
45
+ .pagehead-heading {
46
+ font-size: 4.5rem;
47
+ font-weight: 700;
48
+ line-height: 4.5rem;
49
+ margin-bottom: 4rem;
50
+ }
51
+ }
52
+ }
@@ -17,6 +17,7 @@
17
17
 
18
18
  // Sections
19
19
  @import "./sections/masthead.scss";
20
+ @import "./sections/pagehead.scss";
20
21
  @import "./sections/portfolio.scss";
21
22
  @import "./sections/timeline.scss";
22
23
  @import "./sections/team.scss";
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ class ApplicationController < ActionController::Base
4
+
5
+ # Don't expose any of these methods as action_methods
6
+ protected
7
+
8
+ def navbar_partial(partial = nil)
9
+ @partial_navbar = partial if partial
10
+ return @partial_navbar if defined? @partial_navbar
11
+
12
+ @partial_navbar = 'layouts/navbar'
13
+ end
14
+ helper_method :navbar_partial
15
+
16
+ def footer_partial(partial = nil)
17
+ @partial_footer = partial if partial
18
+ return @partial_footer if defined? @partial_footer
19
+
20
+ @partial_footer = 'layouts/footer'
21
+ end
22
+ helper_method :footer_partial
23
+
24
+ # Useful for scripts that go just before </head>
25
+ def head_partial(partial = nil)
26
+ @partial_head = partial if partial
27
+ return @partial_head if defined? @partial_head
28
+
29
+ @partial_head = 'layouts/head'
30
+ end
31
+ helper_method :head_partial
32
+
33
+ # Useful for scripts that go just before </body>
34
+ def body_end_partial(partial = nil)
35
+ @partial_body_end = partial if partial
36
+ return @partial_body_end if defined? @partial_body_end
37
+
38
+ @partial_body_end = 'layouts/body_end'
39
+ end
40
+ helper_method :body_end_partial
41
+ end
@@ -1,7 +1,7 @@
1
1
  class HomeController < ApplicationController
2
- def index
3
- end
2
+ before_action { navbar_partial('navbar') }
3
+ before_action { body_end_partial('body_end') }
4
4
 
5
- def some_action
5
+ def index
6
6
  end
7
7
  end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ class PageController < ApplicationController
4
+ before_action { navbar_partial('navbar') }
5
+
6
+ def benefits; end
7
+
8
+ def faq; end
9
+
10
+ def terms; end
11
+
12
+ def privacy; end
13
+ end
@@ -0,0 +1,45 @@
1
+ <script>
2
+ window.addEventListener('DOMContentLoaded', event => {
3
+ // Navbar shrink function
4
+ var navbarShrink = function () {
5
+ const navbarCollapsible = document.body.querySelector('#mainNav');
6
+ if (!navbarCollapsible) {
7
+ return;
8
+ }
9
+ if (window.scrollY === 0) {
10
+ navbarCollapsible.classList.remove('navbar-shrink')
11
+ } else {
12
+ navbarCollapsible.classList.add('navbar-shrink')
13
+ }
14
+ };
15
+
16
+ // Shrink the navbar
17
+ navbarShrink();
18
+
19
+ // Shrink the navbar when page is scrolled
20
+ document.addEventListener('scroll', navbarShrink);
21
+
22
+ // Activate Bootstrap scrollspy on the main nav element
23
+ const mainNav = document.body.querySelector('#mainNav');
24
+ if (mainNav) {
25
+ new bootstrap.ScrollSpy(document.body, {
26
+ target: '#mainNav',
27
+ offset: 74,
28
+ });
29
+ };
30
+
31
+ // Collapse responsive navbar when toggler is visible
32
+ const navbarToggler = document.body.querySelector('.navbar-toggler');
33
+ const responsiveNavItems = [].slice.call(
34
+ document.querySelectorAll('#navbarResponsive .nav-link')
35
+ );
36
+ responsiveNavItems.map(function (responsiveNavItem) {
37
+ responsiveNavItem.addEventListener('click', () => {
38
+ if (window.getComputedStyle(navbarToggler).display !== 'none') {
39
+ navbarToggler.click();
40
+ }
41
+ });
42
+ });
43
+
44
+ });
45
+ </script>
@@ -0,0 +1,14 @@
1
+ <nav class="navbar navbar-expand-lg navbar-dark fixed-top" id="mainNav">
2
+ <div class="container"><a class="navbar-brand" href="#page-top"><%= image_tag "printspeak-logo.svg", alt: "..." %></a><button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">Menu<i class="fas fa-bars ms-1"></i></button>
3
+ <div class="collapse navbar-collapse" id="navbarResponsive">
4
+ <ul class="navbar-nav text-uppercase ms-auto py-4 py-lg-0">
5
+ <li class="nav-item"><%= link_to 'Home', root_path, class: "nav-link" %></li>
6
+ <li class="nav-item"><a class="nav-link" href="#services">Services</a></li>
7
+ <li class="nav-item"><a class="nav-link" href="#portfolio">Portfolio</a></li>
8
+ <li class="nav-item"><a class="nav-link" href="#about">About</a></li>
9
+ <li class="nav-item"><a class="nav-link" href="#team">Team</a></li>
10
+ <li class="nav-item"><a class="nav-link" href="#contact">Contact</a></li>
11
+ </ul>
12
+ </div>
13
+ </div>
14
+ </nav><!-- Masthead-->