rails_app_generator 0.2.3 → 0.2.4

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 (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-->