rails_app_generator 0.0.5 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (121) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +1 -0
  3. data/.vscode/settings.json +3 -0
  4. data/CHANGELOG.md +23 -0
  5. data/README.md +9 -0
  6. data/after_templates/README.md +3 -0
  7. data/after_templates/___base_template.rb +1 -0
  8. data/after_templates/___r7_hotwire.rb +1 -0
  9. data/after_templates/rag_bootstrap/application-yield.html.erb +5 -0
  10. data/after_templates/rag_bootstrap/application.html.erb +4 -0
  11. data/after_templates/rag_bootstrap/component-cards-fancy.css +84 -0
  12. data/after_templates/rag_bootstrap/component-cards-fancy.html +80 -0
  13. data/after_templates/rag_bootstrap/component-cards-staff.css +90 -0
  14. data/after_templates/rag_bootstrap/component-cards-staff.html +140 -0
  15. data/after_templates/rag_bootstrap/component-cards-styled.html +31 -0
  16. data/after_templates/rag_bootstrap/component-footer.html +34 -0
  17. data/after_templates/rag_bootstrap/component-hero.html +15 -0
  18. data/after_templates/rag_bootstrap/component-nav.html +36 -0
  19. data/after_templates/rag_bootstrap/custom-bootstrap-import.scss +5 -0
  20. data/after_templates/rag_bootstrap/custom-using-css.css +3 -0
  21. data/after_templates/rag_bootstrap/custom-using-scss.scss +5 -0
  22. data/after_templates/rag_bootstrap/manifest.js +3 -0
  23. data/after_templates/rag_bootstrap.rb +1 -0
  24. data/after_templates/rag_simple.rb +25 -0
  25. data/after_templates/rag_tailwind.rb +74 -0
  26. data/exe/rag +41 -0
  27. data/lib/rails_app_generator/add_on.rb +73 -0
  28. data/lib/rails_app_generator/addons/annotate.rb +15 -0
  29. data/lib/rails_app_generator/addons/continuous_integration.rb +14 -0
  30. data/lib/rails_app_generator/addons/devise.rb +50 -0
  31. data/lib/rails_app_generator/addons/docker.rb +14 -0
  32. data/lib/rails_app_generator/addons/docker_compose.rb +13 -0
  33. data/lib/rails_app_generator/addons/dotenv.rb +13 -0
  34. data/lib/rails_app_generator/addons/factory_bot.rb +19 -0
  35. data/lib/rails_app_generator/addons/foreman.rb +15 -0
  36. data/lib/rails_app_generator/addons/generators.rb +31 -0
  37. data/lib/rails_app_generator/addons/high_voltage.rb +15 -0
  38. data/lib/rails_app_generator/addons/inline_svg.rb +11 -0
  39. data/lib/rails_app_generator/addons/irbrc.rb +13 -0
  40. data/lib/rails_app_generator/addons/lograge.rb +13 -0
  41. data/lib/rails_app_generator/addons/pundit.rb +16 -0
  42. data/lib/rails_app_generator/addons/rspec.rb +17 -0
  43. data/lib/rails_app_generator/addons/rubocop.rb +13 -0
  44. data/lib/rails_app_generator/addons/scaffold.rb +15 -0
  45. data/lib/rails_app_generator/addons/services.rb +13 -0
  46. data/lib/rails_app_generator/addons/sidekiq.rb +18 -0
  47. data/lib/rails_app_generator/addons/stimulus.rb +15 -0
  48. data/lib/rails_app_generator/addons/stimulus_components.rb +33 -0
  49. data/lib/rails_app_generator/addons/tailwind.rb +22 -0
  50. data/lib/rails_app_generator/addons/views.rb +21 -0
  51. data/lib/rails_app_generator/app_builder.rb +7 -5
  52. data/lib/rails_app_generator/app_generator.rb +187 -99
  53. data/lib/rails_app_generator/context.rb +75 -0
  54. data/lib/rails_app_generator/dependencies.rb +34 -0
  55. data/lib/rails_app_generator/notes/a1.txt +1 -1
  56. data/lib/rails_app_generator/notes/a2.txt +1 -1
  57. data/lib/rails_app_generator/notes/kw01-b.txt +86 -0
  58. data/lib/rails_app_generator/notes/kw01.txt +91 -0
  59. data/lib/rails_app_generator/options/map_option_string.rb +2 -0
  60. data/lib/rails_app_generator/options/rails_options.rb +52 -32
  61. data/lib/rails_app_generator/starter.rb +17 -8
  62. data/lib/rails_app_generator/version.rb +1 -1
  63. data/lib/rails_app_generator.rb +5 -1
  64. data/package-lock.json +2 -2
  65. data/package.json +1 -1
  66. data/profiles/rag-add-some-pages.json +11 -0
  67. data/profiles/rag-bootstrap.json +12 -0
  68. data/profiles/rag-simple.json +11 -0
  69. data/profiles/rag-tailwind.json +12 -0
  70. data/templates/README.md.erb +43 -0
  71. data/templates/addons/annotate/auto_annotate_models.rake +60 -0
  72. data/templates/addons/continuous_integration/.github/workflows/build.yml.erb +49 -0
  73. data/templates/addons/devise/app/views/devise/confirmations/new.html.erb +24 -0
  74. data/templates/addons/devise/app/views/devise/passwords/edit.html.erb +34 -0
  75. data/templates/addons/devise/app/views/devise/passwords/new.html.erb +23 -0
  76. data/templates/addons/devise/app/views/devise/registrations/edit.html.erb +62 -0
  77. data/templates/addons/devise/app/views/devise/registrations/new.html.erb +45 -0
  78. data/templates/addons/devise/app/views/devise/sessions/new.html.erb +33 -0
  79. data/templates/addons/devise/app/views/devise/shared/_error_messages.html.erb +15 -0
  80. data/templates/addons/devise/app/views/devise/shared/_form_wrap.html.erb +5 -0
  81. data/templates/addons/devise/app/views/devise/shared/_links.html.erb +25 -0
  82. data/templates/addons/devise/app/views/devise/unlocks/new.html.erb +22 -0
  83. data/templates/addons/docker/.dockerignore.erb +51 -0
  84. data/templates/addons/docker/Dockerfile.erb +45 -0
  85. data/templates/addons/docker_compose/docker-compose.yml.erb +21 -0
  86. data/templates/addons/dotenv/.env.development.erb +3 -0
  87. data/templates/addons/foreman/.foreman.erb +1 -0
  88. data/templates/addons/foreman/Procfile.dev.erb +7 -0
  89. data/templates/addons/foreman/Procfile.erb +4 -0
  90. data/templates/addons/generators/lib/generators/rails/navigation/USAGE +6 -0
  91. data/templates/addons/generators/lib/generators/rails/navigation/navigation_generator.rb +16 -0
  92. data/templates/addons/generators/lib/generators/rails/scaffold_controller_generator.rb +12 -0
  93. data/templates/addons/high_voltage/config/initializers/high_voltage.rb +6 -0
  94. data/templates/addons/irbrc/.irbrc.erb +13 -0
  95. data/templates/addons/lograge/config/initializers/lograge.rb +5 -0
  96. data/templates/addons/pundit/app/controllers/authorized_controller.rb.erb +10 -0
  97. data/templates/addons/pundit/app/policies/application_policy.rb +57 -0
  98. data/templates/addons/rspec/spec/rails_helper.rb +26 -0
  99. data/templates/addons/rspec/spec/spec_helper.rb +61 -0
  100. data/templates/addons/rubocop/.rubocop.yml.erb +37 -0
  101. data/templates/addons/scaffold/lib/templates/erb/scaffold/_form.html.erb +39 -0
  102. data/templates/addons/scaffold/lib/templates/erb/scaffold/edit.html.erb +7 -0
  103. data/templates/addons/scaffold/lib/templates/erb/scaffold/index.html.erb +34 -0
  104. data/templates/addons/scaffold/lib/templates/erb/scaffold/new.html.erb +7 -0
  105. data/templates/addons/scaffold/lib/templates/erb/scaffold/show.html.erb +18 -0
  106. data/templates/addons/services/app/services/application_service.rb +15 -0
  107. data/templates/app_x/controllers/authorized_controller.rb.erb +10 -0
  108. data/templates/app_x/controllers/errors_controller.rb.erb +24 -0
  109. data/templates/app_x/javascript/images/checkmark.svg +1 -0
  110. data/templates/app_x/javascript/images/logo.svg +1 -0
  111. data/templates/app_x/javascript/stylesheets/components.scss +206 -0
  112. data/templates/app_x/views/errors/internal_error.html.erb +14 -0
  113. data/templates/app_x/views/errors/not_found.html.erb +14 -0
  114. data/templates/app_x/views/errors/unacceptable.html.erb +14 -0
  115. data/templates/app_x/views/layouts/application.html.erb.tt +30 -0
  116. data/templates/app_x/views/pages/home.html.erb.tt +20 -0
  117. data/templates/app_x/views/shared/_flashes.html.erb.tt +12 -0
  118. data/templates/app_x/views/shared/_footer.html.erb.tt +21 -0
  119. data/templates/app_x/views/shared/_navbar.html.erb.tt +55 -0
  120. data/templates/app_x/workers/application_worker.rb +5 -0
  121. metadata +207 -3
@@ -0,0 +1,206 @@
1
+
2
+ .btn {
3
+ @apply font-normal text-base rounded cursor-pointer border border-transparent appearance-none inline-block select-none leading-normal antialiased align-baseline;
4
+
5
+ padding: 0.35rem 0.75rem;
6
+ transition: 0.15s ease;
7
+
8
+ }
9
+
10
+ .btn-default {
11
+ @apply bg-white border border-gray-400 text-gray-700;
12
+
13
+ &:hover,
14
+ &:focus {
15
+ @apply border-gray-700;
16
+ }
17
+ }
18
+
19
+ .btn-blue {
20
+ @apply bg-blue-600 text-white;
21
+
22
+ &:hover,
23
+ &:focus {
24
+ @apply bg-blue-700;
25
+ }
26
+
27
+ &.btn-outline {
28
+ @apply bg-transparent text-blue-600 border border-blue-600;
29
+
30
+ &:hover,
31
+ &:focus {
32
+ @apply bg-blue-600 text-white;
33
+ }
34
+ }
35
+ }
36
+
37
+ .btn-group {
38
+ .btn {
39
+ @apply rounded-none;
40
+
41
+ &:first-child {
42
+ @apply rounded-tr-none rounded-br-none border-r-0 rounded-tl rounded-bl;
43
+ }
44
+
45
+ &:last-child {
46
+ @apply rounded-tl-none rounded-bl-none border-l-0 rounded-tr rounded-br;
47
+ }
48
+ }
49
+ }
50
+
51
+ %focus-style {
52
+ @apply shadow outline-none border-gray-500;
53
+
54
+ box-shadow: 0 0 0 0.2rem theme("colors.gray.200");
55
+ background-clip: padding-box;
56
+ }
57
+
58
+ .input {
59
+ @apply appearance-none block w-full text-gray-700 border border-gray-400 rounded px-3 leading-tight bg-white shadow-inner;
60
+ padding-top: .65rem;
61
+ padding-bottom: .65rem;
62
+ }
63
+
64
+ .input:focus,
65
+ .input:hover {
66
+ @extend %focus-style;
67
+ }
68
+
69
+ .label {
70
+ @apply block text-gray-700 text-sm font-bold mb-2;
71
+ }
72
+
73
+ .select {
74
+ @apply appearance-none py-3 px-4 pr-8 block w-full bg-white border border-gray-300 text-gray-700 rounded leading-tight;
75
+ -webkit-appearance: none;
76
+
77
+ }
78
+
79
+ .select:focus {
80
+ @apply outline-none border-gray-400;
81
+
82
+ box-shadow: 0 0 0 0.2rem theme("colors.gray.100");
83
+ background-clip: padding-box;
84
+ }
85
+
86
+ .caret {
87
+ @apply pointer-events-none absolute inset-y-0 right-0 flex items-center px-2 text-gray-800;
88
+ }
89
+
90
+ .input-group {
91
+ @apply mb-6;
92
+ }
93
+
94
+ .input-file {
95
+ height: auto;
96
+ z-index: 2;
97
+ cursor: pointer;
98
+
99
+ @apply inline-block opacity-0 pl-0 pr-0 py-3 px-3 overflow-hidden absolute border-none;
100
+
101
+ + label {
102
+ @extend .btn;
103
+ @extend .btn-default;
104
+
105
+ @apply cursor-pointer inline-flex items-center justify-start w-auto;
106
+
107
+ * {
108
+ pointer-events: none;
109
+ }
110
+
111
+ &:focus {
112
+ outline: 1px dotted #000;
113
+ outline: -webkit-focus-ring-color auto 5px;
114
+ }
115
+ }
116
+ }
117
+
118
+ .input-checkbox {
119
+ @apply flex items-center justify-start;
120
+
121
+ input[type="checkbox"] {
122
+ @apply hidden appearance-none;
123
+
124
+ &:checked ~ label:before {
125
+ content: "";
126
+ background-image: url('~images/checkmark.svg');
127
+ background-size: 10px 10px;
128
+ border-radius: 2px;
129
+ @apply bg-blue-500 border-transparent text-white bg-no-repeat bg-center transition ease-in-out duration-100 shadow-none;
130
+ }
131
+
132
+ &:disabled {
133
+ @apply pointer-events-none opacity-50;
134
+ }
135
+ }
136
+
137
+ label {
138
+ @apply cursor-pointer appearance-none;
139
+
140
+ &:before {
141
+ border-radius: 2px;
142
+ border: 1px solid rgb(209, 209, 209);
143
+ box-shadow: inset 0 1px 1px rgba(#ddd, .8);
144
+ content: "";
145
+ height: 16px;
146
+ margin-right: 10px;
147
+ top: -5px;
148
+ width: 16px;
149
+
150
+ @apply bg-white inline-flex items-center justify-center relative transition ease-in-out duration-200;
151
+
152
+ }
153
+
154
+ &:hover::before {
155
+ @apply bg-gray-100 border-gray-500;
156
+ }
157
+ }
158
+ }
159
+
160
+ .input-radio {
161
+ @apply flex items-center justify-start;
162
+
163
+ input[type="radio"] {
164
+ @apply hidden appearance-none;
165
+
166
+ &:checked ~ label:before {
167
+ content: "";
168
+ @apply bg-blue-500 border-transparent text-white transition ease-in-out duration-100 shadow-none;
169
+ }
170
+
171
+ &:checked ~ label:after {
172
+ @apply bg-white rounded-full;
173
+ content: "";
174
+ width: 6px;
175
+ height: 6px;
176
+ position: absolute;
177
+ top: 8px;
178
+ left: 5px;
179
+ box-shadow: 0 1px 1px rgba(#2B6CB0, .9);
180
+ }
181
+
182
+ &:disabled {
183
+ @apply pointer-events-none opacity-50;
184
+ }
185
+ }
186
+
187
+ label {
188
+ @apply cursor-pointer appearance-none relative;
189
+
190
+ &:before {
191
+ border: 1px solid rgb(209, 209, 209);
192
+ box-shadow: inset 0 1px 1px rgba(#ddd, .8);
193
+ content: "";
194
+ height: 16px;
195
+ margin-right: 4px;
196
+ top: -5px;
197
+ width: 16px;
198
+
199
+ @apply bg-white inline-flex items-center justify-center relative transition ease-in-out duration-200 rounded-full;
200
+ }
201
+
202
+ &:hover::before {
203
+ @apply bg-gray-100 border-gray-500;
204
+ }
205
+ }
206
+ }
@@ -0,0 +1,14 @@
1
+ <div class="container mx-auto px-4">
2
+ <section class="py-8 px-4 text-center">
3
+ <div class="max-w-auto mx-auto">
4
+ <div class="md:max-w-lg mx-auto flex justify-center">
5
+ <svg class="fill-current text-gray-300 h-48" viewBox="0 0 445 202" xmlns="http://www.w3.org/2000/svg">
6
+ <path d="M38.804 144.71c1.527 8.356 4.447 14.803 8.76 19.34 4.312 4.537 10.601 6.805 18.867 6.805 9.523 0 16.778-3.346 21.764-10.04 4.987-6.693 7.48-15.116 7.48-25.268 0-9.973-2.336-18.396-7.008-25.269-4.672-6.873-11.95-10.31-21.832-10.31-4.672 0-8.715.585-12.129 1.753-6.02 2.156-10.557 6.154-13.611 11.994l-34.5-1.617L20.34 4.15h107.678v32.614H48.103l-7.008 42.72c5.93-3.863 10.556-6.423 13.88-7.681 5.57-2.067 12.354-3.1 20.35-3.1 16.172 0 30.277 5.436 42.317 16.307 12.039 10.87 18.058 26.683 18.058 47.437 0 18.059-5.795 34.186-17.385 48.381-11.59 14.196-28.93 21.293-52.02 21.293-18.597 0-33.87-4.986-45.82-14.959C8.527 177.19 1.879 163.04.53 144.711h38.274zm155.789-43.528c0 22.46 1.842 39.643 5.525 51.547 3.684 11.905 11.23 17.857 22.64 17.857 11.411 0 18.89-5.952 22.44-17.857 3.548-11.904 5.323-29.086 5.323-51.547 0-23.54-1.775-40.97-5.324-52.29s-11.028-16.98-22.438-16.98c-11.41 0-18.957 5.66-22.64 16.98-3.684 11.32-5.526 28.75-5.526 52.29zM222.759.242c24.887 0 42.339 8.76 52.356 26.28 10.018 17.52 15.027 42.406 15.027 74.66s-5.01 57.095-15.027 74.525c-10.017 17.43-27.47 26.145-52.356 26.145-24.887 0-42.339-8.715-52.357-26.145-10.017-17.43-15.026-42.271-15.026-74.525 0-32.254 5.009-57.14 15.026-74.66C180.42 9.001 197.872.241 222.76.241zm125.332 100.94c0 22.46 1.842 39.643 5.525 51.547 3.684 11.905 11.23 17.857 22.64 17.857 11.411 0 18.89-5.952 22.44-17.857 3.548-11.904 5.323-29.086 5.323-51.547 0-23.54-1.775-40.97-5.324-52.29s-11.028-16.98-22.438-16.98c-11.41 0-18.957 5.66-22.64 16.98-3.684 11.32-5.526 28.75-5.526 52.29zM376.257.242c24.887 0 42.339 8.76 52.356 26.28 10.018 17.52 15.027 42.406 15.027 74.66s-5.01 57.095-15.027 74.525c-10.017 17.43-27.47 26.145-52.356 26.145-24.887 0-42.339-8.715-52.357-26.145-10.017-17.43-15.026-42.271-15.026-74.525 0-32.254 5.009-57.14 15.026-74.66C333.918 9.001 351.37.241 376.257.241z" fill-rule="nonzero"/>
7
+ </svg>
8
+ </div>
9
+ <h2 class="mt-8 uppercase text-xl lg:text-5xl font-black">Something went terribly wrong</h2>
10
+ <p class="mt-6 text-sm lg:text-base text-gray-900">If you are the application owner check the logs for more information.</p>
11
+ <a href="/" class="mt-12 btn btn-default">Back To Homepage</a>
12
+ </div>
13
+ </section>
14
+ </div>
@@ -0,0 +1,14 @@
1
+ <div class="container mx-auto px-4">
2
+ <section class="py-8 px-4 text-center">
3
+ <div class="max-w-auto mx-auto">
4
+ <div class="md:max-w-lg mx-auto flex justify-center">
5
+ <svg class="fill-current text-gray-300 h-48" viewBox="0 0 445 202" xmlns="http://www.w3.org/2000/svg">
6
+ <path d="M137.587 154.953h-22.102V197h-37.6v-42.047H.53v-33.557L72.36 2.803h43.125V124.9h22.102v30.053zM77.886 124.9V40.537L28.966 124.9h48.92zm116.707-23.718c0 22.46 1.842 39.643 5.525 51.547 3.684 11.905 11.23 17.857 22.64 17.857 11.411 0 18.89-5.952 22.44-17.857 3.548-11.904 5.323-29.086 5.323-51.547 0-23.54-1.775-40.97-5.324-52.29s-11.028-16.98-22.438-16.98c-11.41 0-18.957 5.66-22.64 16.98-3.684 11.32-5.526 28.75-5.526 52.29zM222.759.242c24.887 0 42.339 8.76 52.356 26.28 10.018 17.52 15.027 42.406 15.027 74.66s-5.01 57.095-15.027 74.525c-10.017 17.43-27.47 26.145-52.356 26.145-24.887 0-42.339-8.715-52.357-26.145-10.017-17.43-15.026-42.271-15.026-74.525 0-32.254 5.009-57.14 15.026-74.66C180.42 9.001 197.872.241 222.76.241zm221.824 154.711h-22.102V197h-37.6v-42.047h-77.355v-33.557l71.83-118.593h43.125V124.9h22.102v30.053zM384.882 124.9V40.537l-48.92 84.363h48.92z" fill-rule="nonzero" />
7
+ </svg>
8
+ </div>
9
+ <h2 class="mt-8 uppercase text-xl lg:text-5xl font-black">Page not found</h2>
10
+ <p class="mt-6 text-sm lg:text-base text-gray-900">The page you are looking for might have been removed had its name changed or is temporarily unavailable.</p>
11
+ <a href="/" class="mt-12 btn btn-default">Back To Homepage</a>
12
+ </div>
13
+ </section>
14
+ </div>
@@ -0,0 +1,14 @@
1
+ <div class="container mx-auto px-4">
2
+ <section class="py-8 px-4 text-center">
3
+ <div class="max-w-auto mx-auto">
4
+ <div class="md:max-w-lg mx-auto flex justify-center">
5
+ <svg class="fill-current text-gray-300 h-48" viewBox="0 0 445 202" xmlns="http://www.w3.org/2000/svg">
6
+ <path d="M137.587 154.953h-22.102V197h-37.6v-42.047H.53v-33.557L72.36 2.803h43.125V124.9h22.102v30.053zM77.886 124.9V40.537L28.966 124.9h48.92zm77.49 72.1c.36-14.016 3.37-26.818 9.03-38.408 5.48-13.028 18.417-26.818 38.812-41.373 17.7-12.668 29.154-21.742 34.365-27.223 7.996-8.535 11.994-17.879 11.994-28.031 0-8.266-2.29-15.139-6.873-20.62-4.582-5.48-11.14-8.22-19.676-8.22-11.68 0-19.63 4.357-23.853 13.072-2.426 5.032-3.863 13.028-4.313 23.989h-37.33c.63-16.622 3.639-30.053 9.03-40.295C176.804 10.394 194.997.646 221.142.646c20.664 0 37.105 5.728 49.324 17.183 12.219 11.455 18.328 26.616 18.328 45.483 0 14.465-4.313 27.313-12.938 38.543-5.66 7.458-14.958 15.768-27.896 24.932l-15.363 10.916c-9.614 6.828-16.195 11.77-19.743 14.824a43.443 43.443 0 00-8.962 10.647h85.306V197H155.376zm153.498 0c.36-14.016 3.37-26.818 9.03-38.408 5.48-13.028 18.417-26.818 38.812-41.373 17.7-12.668 29.154-21.742 34.365-27.223 7.996-8.535 11.994-17.879 11.994-28.031 0-8.266-2.29-15.139-6.873-20.62-4.582-5.48-11.14-8.22-19.676-8.22-11.68 0-19.63 4.357-23.853 13.072-2.426 5.032-3.863 13.028-4.313 23.989h-37.33c.63-16.622 3.639-30.053 9.03-40.295C330.302 10.394 348.495.646 374.64.646c20.664 0 37.105 5.728 49.324 17.183 12.219 11.455 18.328 26.616 18.328 45.483 0 14.465-4.312 27.313-12.938 38.543-5.66 7.458-14.958 15.768-27.896 24.932l-15.363 10.916c-9.614 6.828-16.195 11.77-19.743 14.824a43.443 43.443 0 00-8.962 10.647h85.306V197H308.874z" fill-rule="nonzero"/>
7
+ </svg>
8
+ </div>
9
+ <h2 class="mt-8 uppercase text-xl lg:text-5xl font-black">The change you wanted was rejected</h2>
10
+ <p class="mt-6 text-sm lg:text-base text-gray-900">Maybe you tried to change something you didn't have access to?</p>
11
+ <a href="/" class="mt-12 btn btn-default">Back To Homepage</a>
12
+ </div>
13
+ </section>
14
+ </div>
@@ -0,0 +1,30 @@
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_javascript] -%>
10
+ <%%= stylesheet_link_tag 'application' %>
11
+ <%- else -%>
12
+ <%- unless options[:skip_turbolinks] -%>
13
+ <%%= stylesheet_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
14
+ <%%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
15
+ <%- else -%>
16
+ <%%= stylesheet_pack_tag 'application' %>
17
+ <%%= javascript_pack_tag 'application' %>
18
+ <%- end -%>
19
+ <%- end -%>
20
+ </head>
21
+
22
+ <body class="flex flex-col min-h-screen">
23
+ <%%= render 'shared/navbar' %>
24
+ <%%= render 'shared/flashes' %>
25
+ <main class="flex-grow">
26
+ <%%= yield %>
27
+ </main>
28
+ <%%= render 'shared/footer' %>
29
+ </body>
30
+ </html>
@@ -0,0 +1,20 @@
1
+ <div class="py-20 bg-gray-100">
2
+ <div class="container mx-auto px-6">
3
+ <h2 class="text-6xl font-bold mb-2">
4
+ <%= camelized %>
5
+ </h2>
6
+ <h3 class="text-2xl mb-8 text-gray-800">
7
+ Created with <a class="underline" href="https://github.com/hschne/schienenzeppelin">Schienenzeppelin</a>
8
+ </h3>
9
+ <button class="btn btn-blue">
10
+ View Documentation
11
+ </button>
12
+ </div>
13
+ </div>
14
+
15
+ <section class="container mx-auto px-6 p-10 text-center">
16
+ <h2 class="text-2xl font-bold text-gray-800 mb-2">Ready to do some magic?</h2>
17
+ <p>Edit this page in <code class="bg-gray-100">app/views/pages/home.html.erb</code></p>
18
+ </section>
19
+
20
+
@@ -0,0 +1,12 @@
1
+ <%% flash.each do |type, message| %>
2
+ <%% if type == "alert" %>
3
+ <div class="bg-red-500">
4
+ <div class="container px-2 py-4 mx-auto font-sans font-medium text-center text-white"><%%= message %></div>
5
+ </div>
6
+ <%% end %>
7
+ <%% if type == "notice" %>
8
+ <div class="bg-green-500">
9
+ <div class="container px-2 py-4 mx-auto font-sans font-medium text-center text-white"><%%= message %></div>
10
+ </div>
11
+ <%% end %>
12
+ <%% end %>
@@ -0,0 +1,21 @@
1
+ <footer class="bg-gray-100">
2
+ <div class="container mx-auto px-8">
3
+
4
+ <div class="w-full flex py-6 justify-between">
5
+ <div class="flex align-middle">
6
+ © <%%= Date.current.year %> <%= app_name.capitalize %>
7
+ </div>
8
+ <div class="flex w-1/3 justify-end">
9
+ <ul class="list-reset w-full flex justify-around align-middle items-center mb-6">
10
+ <li class="mt-2 mr-2 md:mr-0">
11
+ <a href="#" class="no-underline hover:underline">About</a>
12
+ </li>
13
+ <li class="mt-2 mr-2 md:mr-0">
14
+ <a href="#" class="no-underline hover:underline">Contact</a>
15
+ </li>
16
+ </ul>
17
+ </div>
18
+ </div>
19
+ </div>
20
+ </footer>
21
+
@@ -0,0 +1,55 @@
1
+ <header class="shadow">
2
+ <nav
3
+ <%-if uses?(:stimulus_components) -%>
4
+ data-controller="dropdown"
5
+ <%- end -%>
6
+ class="container mx-auto flex flex-wrap justify-between items-center p-5">
7
+ <div>
8
+ <a
9
+ class="flex items-center mr-2"
10
+ <%- if uses?(:high_voltage) -%>
11
+ href="<%%= root_path %>"
12
+ <%- else -%>
13
+ href="/"
14
+ <%- end -%>
15
+ >
16
+ <%- if uses?(:inline_svg) -%>
17
+ <%%= inline_svg_pack_tag('media/images/logo.svg', class: "rounded mx-2", size: "3rem * 3rem") %>
18
+ <%- end -%>
19
+ <p class="font-bold text-lg"><%= app_name.capitalize %> </p>
20
+ </a>
21
+ </div>
22
+ <div class="flex md:hidden">
23
+ <button
24
+ <%- if uses?(:stimulus_components) -%>
25
+ data-action="click->dropdown#toggle click@window->dropdown#hide"
26
+ <%- end -%>
27
+ class="px-3 py-2 border border-gray-500 rounded text-grey hover:text-gray-600 hover:border-gray-600" >
28
+ <svg class="w-3 h-3 fill-current" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
29
+ <title>Menu</title>
30
+ <path d="M0 3h20v2H0V3zm0 6h20v2H0V9zm0 6h20v2H0v-2z"/>
31
+ </svg>
32
+ </button>
33
+ </div>
34
+ <div
35
+ <%-if uses?(:stimulus_components) -%>
36
+ data-dropdown-target="menu"
37
+ <%- end -%>
38
+ class="hidden md:flex-grow md:flex w-full md:w-auto text-right md:text-left text-bold mt-5 md:mt-0 border-t-2 border-gray-200 md:border-none">
39
+ <div class="justify-start flex-grow">
40
+ <!-- SZ Link Placeholder -->
41
+ </div>
42
+ <%-if uses?(:devise) -%>
43
+ <ul class="w-full flex-col md:flex md:flex-row items-center justify-end md:w-auto">
44
+ <%% if user_signed_in? %>
45
+ <li><%%= link_to "Edit account", edit_user_registration_path, class: "btn btn-default md:mr-2 my-2 md:my-0 " %></li>
46
+ <li><%%= link_to "Log out", destroy_user_session_path, method: :delete, class: "btn btn-default" %></li>
47
+ <%% else %>
48
+ <li><%%= link_to "Login", new_user_session_path, class: "btn btn-blue md:mr-2 my-2 md:my-0" %></li>
49
+ <li><%%= link_to "Sign Up", new_user_registration_path, class: "btn btn-blue" %></li>
50
+ <%% end %>
51
+ </ul>
52
+ <%- end -%>
53
+ </div>
54
+ </nav>
55
+ </header>
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ class ApplicationWorker
4
+ include Sidekiq::Worker
5
+ end
metadata CHANGED
@@ -1,15 +1,71 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_app_generator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Cruwys
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-07-19 00:00:00.000000000 Z
11
+ date: 2022-07-24 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bootsnap
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: cssbundling-rails
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: importmap-rails
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: jsbundling-rails
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
13
69
  - !ruby/object:Gem::Dependency
14
70
  name: rails
15
71
  requirement: !ruby/object:Gem::Requirement
@@ -24,10 +80,53 @@ dependencies:
24
80
  - - "~>"
25
81
  - !ruby/object:Gem::Version
26
82
  version: '7'
83
+ - !ruby/object:Gem::Dependency
84
+ name: stimulus-rails
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: tailwindcss-rails
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: turbo-rails
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
27
125
  description: " Create new Rails Application with custom opinions\n"
28
126
  email:
29
127
  - david@ideasmen.com.au
30
- executables: []
128
+ executables:
129
+ - rag
31
130
  extensions: []
32
131
  extra_rdoc_files: []
33
132
  files:
@@ -37,6 +136,7 @@ files:
37
136
  - ".releaserc.json"
38
137
  - ".rspec"
39
138
  - ".rubocop.yml"
139
+ - ".vscode/settings.json"
40
140
  - CHANGELOG.md
41
141
  - CODE_OF_CONDUCT.md
42
142
  - Gemfile
@@ -44,17 +144,66 @@ files:
44
144
  - LICENSE.txt
45
145
  - README.md
46
146
  - Rakefile
147
+ - after_templates/README.md
148
+ - after_templates/___base_template.rb
149
+ - after_templates/___r7_hotwire.rb
150
+ - after_templates/rag_bootstrap.rb
151
+ - after_templates/rag_bootstrap/application-yield.html.erb
152
+ - after_templates/rag_bootstrap/application.html.erb
153
+ - after_templates/rag_bootstrap/component-cards-fancy.css
154
+ - after_templates/rag_bootstrap/component-cards-fancy.html
155
+ - after_templates/rag_bootstrap/component-cards-staff.css
156
+ - after_templates/rag_bootstrap/component-cards-staff.html
157
+ - after_templates/rag_bootstrap/component-cards-styled.html
158
+ - after_templates/rag_bootstrap/component-footer.html
159
+ - after_templates/rag_bootstrap/component-hero.html
160
+ - after_templates/rag_bootstrap/component-nav.html
161
+ - after_templates/rag_bootstrap/custom-bootstrap-import.scss
162
+ - after_templates/rag_bootstrap/custom-using-css.css
163
+ - after_templates/rag_bootstrap/custom-using-scss.scss
164
+ - after_templates/rag_bootstrap/manifest.js
165
+ - after_templates/rag_simple.rb
166
+ - after_templates/rag_tailwind.rb
47
167
  - bin/console
48
168
  - bin/setup
169
+ - exe/rag
49
170
  - lib/rails_app_generator.rb
171
+ - lib/rails_app_generator/add_on.rb
172
+ - lib/rails_app_generator/addons/annotate.rb
173
+ - lib/rails_app_generator/addons/continuous_integration.rb
174
+ - lib/rails_app_generator/addons/devise.rb
175
+ - lib/rails_app_generator/addons/docker.rb
176
+ - lib/rails_app_generator/addons/docker_compose.rb
177
+ - lib/rails_app_generator/addons/dotenv.rb
178
+ - lib/rails_app_generator/addons/factory_bot.rb
179
+ - lib/rails_app_generator/addons/foreman.rb
180
+ - lib/rails_app_generator/addons/generators.rb
181
+ - lib/rails_app_generator/addons/high_voltage.rb
182
+ - lib/rails_app_generator/addons/inline_svg.rb
183
+ - lib/rails_app_generator/addons/irbrc.rb
184
+ - lib/rails_app_generator/addons/lograge.rb
185
+ - lib/rails_app_generator/addons/pundit.rb
186
+ - lib/rails_app_generator/addons/rspec.rb
187
+ - lib/rails_app_generator/addons/rubocop.rb
188
+ - lib/rails_app_generator/addons/scaffold.rb
189
+ - lib/rails_app_generator/addons/services.rb
190
+ - lib/rails_app_generator/addons/sidekiq.rb
191
+ - lib/rails_app_generator/addons/stimulus.rb
192
+ - lib/rails_app_generator/addons/stimulus_components.rb
193
+ - lib/rails_app_generator/addons/tailwind.rb
194
+ - lib/rails_app_generator/addons/views.rb
50
195
  - lib/rails_app_generator/app_builder.rb
51
196
  - lib/rails_app_generator/app_generator.rb
197
+ - lib/rails_app_generator/context.rb
198
+ - lib/rails_app_generator/dependencies.rb
52
199
  - lib/rails_app_generator/generators/advisories_generator.rb
53
200
  - lib/rails_app_generator/generators/base.rb
54
201
  - lib/rails_app_generator/generators/foo_generator.rb
55
202
  - lib/rails_app_generator/notes/a1.txt
56
203
  - lib/rails_app_generator/notes/a2.txt
57
204
  - lib/rails_app_generator/notes/commands-list.txt
205
+ - lib/rails_app_generator/notes/kw01-b.txt
206
+ - lib/rails_app_generator/notes/kw01.txt
58
207
  - lib/rails_app_generator/notes/methods-class.txt
59
208
  - lib/rails_app_generator/notes/methods-instance.txt
60
209
  - lib/rails_app_generator/notes/option-rules.txt
@@ -72,7 +221,62 @@ files:
72
221
  - lib/rails_app_generator/version.rb
73
222
  - package-lock.json
74
223
  - package.json
224
+ - profiles/rag-add-some-pages.json
225
+ - profiles/rag-bootstrap.json
226
+ - profiles/rag-simple.json
227
+ - profiles/rag-tailwind.json
75
228
  - sig/rails_app_generator.rbs
229
+ - templates/README.md.erb
230
+ - templates/addons/annotate/auto_annotate_models.rake
231
+ - templates/addons/continuous_integration/.github/workflows/build.yml.erb
232
+ - templates/addons/devise/app/views/devise/confirmations/new.html.erb
233
+ - templates/addons/devise/app/views/devise/passwords/edit.html.erb
234
+ - templates/addons/devise/app/views/devise/passwords/new.html.erb
235
+ - templates/addons/devise/app/views/devise/registrations/edit.html.erb
236
+ - templates/addons/devise/app/views/devise/registrations/new.html.erb
237
+ - templates/addons/devise/app/views/devise/sessions/new.html.erb
238
+ - templates/addons/devise/app/views/devise/shared/_error_messages.html.erb
239
+ - templates/addons/devise/app/views/devise/shared/_form_wrap.html.erb
240
+ - templates/addons/devise/app/views/devise/shared/_links.html.erb
241
+ - templates/addons/devise/app/views/devise/unlocks/new.html.erb
242
+ - templates/addons/docker/.dockerignore.erb
243
+ - templates/addons/docker/Dockerfile.erb
244
+ - templates/addons/docker_compose/docker-compose.yml.erb
245
+ - templates/addons/dotenv/.env.development.erb
246
+ - templates/addons/foreman/.foreman.erb
247
+ - templates/addons/foreman/Procfile.dev.erb
248
+ - templates/addons/foreman/Procfile.erb
249
+ - templates/addons/generators/lib/generators/rails/navigation/USAGE
250
+ - templates/addons/generators/lib/generators/rails/navigation/navigation_generator.rb
251
+ - templates/addons/generators/lib/generators/rails/scaffold_controller_generator.rb
252
+ - templates/addons/high_voltage/config/initializers/high_voltage.rb
253
+ - templates/addons/irbrc/.irbrc.erb
254
+ - templates/addons/lograge/config/initializers/lograge.rb
255
+ - templates/addons/pundit/app/controllers/authorized_controller.rb.erb
256
+ - templates/addons/pundit/app/policies/application_policy.rb
257
+ - templates/addons/rspec/spec/rails_helper.rb
258
+ - templates/addons/rspec/spec/spec_helper.rb
259
+ - templates/addons/rubocop/.rubocop.yml.erb
260
+ - templates/addons/scaffold/lib/templates/erb/scaffold/_form.html.erb
261
+ - templates/addons/scaffold/lib/templates/erb/scaffold/edit.html.erb
262
+ - templates/addons/scaffold/lib/templates/erb/scaffold/index.html.erb
263
+ - templates/addons/scaffold/lib/templates/erb/scaffold/new.html.erb
264
+ - templates/addons/scaffold/lib/templates/erb/scaffold/show.html.erb
265
+ - templates/addons/services/app/services/application_service.rb
266
+ - templates/app_x/controllers/authorized_controller.rb.erb
267
+ - templates/app_x/controllers/errors_controller.rb.erb
268
+ - templates/app_x/javascript/images/checkmark.svg
269
+ - templates/app_x/javascript/images/logo.svg
270
+ - templates/app_x/javascript/stylesheets/components.scss
271
+ - templates/app_x/views/errors/internal_error.html.erb
272
+ - templates/app_x/views/errors/not_found.html.erb
273
+ - templates/app_x/views/errors/unacceptable.html.erb
274
+ - templates/app_x/views/layouts/application.html.erb.tt
275
+ - templates/app_x/views/pages/home.html.erb.tt
276
+ - templates/app_x/views/shared/_flashes.html.erb.tt
277
+ - templates/app_x/views/shared/_footer.html.erb.tt
278
+ - templates/app_x/views/shared/_navbar.html.erb.tt
279
+ - templates/app_x/workers/application_worker.rb
76
280
  homepage: http://appydave.com/gems/rails_app_generator
77
281
  licenses:
78
282
  - MIT