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.
- checksums.yaml +4 -4
- data/.rubocop.yml +1 -0
- data/.vscode/settings.json +3 -0
- data/CHANGELOG.md +23 -0
- data/README.md +9 -0
- data/after_templates/README.md +3 -0
- data/after_templates/___base_template.rb +1 -0
- data/after_templates/___r7_hotwire.rb +1 -0
- data/after_templates/rag_bootstrap/application-yield.html.erb +5 -0
- data/after_templates/rag_bootstrap/application.html.erb +4 -0
- data/after_templates/rag_bootstrap/component-cards-fancy.css +84 -0
- data/after_templates/rag_bootstrap/component-cards-fancy.html +80 -0
- data/after_templates/rag_bootstrap/component-cards-staff.css +90 -0
- data/after_templates/rag_bootstrap/component-cards-staff.html +140 -0
- data/after_templates/rag_bootstrap/component-cards-styled.html +31 -0
- data/after_templates/rag_bootstrap/component-footer.html +34 -0
- data/after_templates/rag_bootstrap/component-hero.html +15 -0
- data/after_templates/rag_bootstrap/component-nav.html +36 -0
- data/after_templates/rag_bootstrap/custom-bootstrap-import.scss +5 -0
- data/after_templates/rag_bootstrap/custom-using-css.css +3 -0
- data/after_templates/rag_bootstrap/custom-using-scss.scss +5 -0
- data/after_templates/rag_bootstrap/manifest.js +3 -0
- data/after_templates/rag_bootstrap.rb +1 -0
- data/after_templates/rag_simple.rb +25 -0
- data/after_templates/rag_tailwind.rb +74 -0
- data/exe/rag +41 -0
- data/lib/rails_app_generator/add_on.rb +73 -0
- data/lib/rails_app_generator/addons/annotate.rb +15 -0
- data/lib/rails_app_generator/addons/continuous_integration.rb +14 -0
- data/lib/rails_app_generator/addons/devise.rb +50 -0
- data/lib/rails_app_generator/addons/docker.rb +14 -0
- data/lib/rails_app_generator/addons/docker_compose.rb +13 -0
- data/lib/rails_app_generator/addons/dotenv.rb +13 -0
- data/lib/rails_app_generator/addons/factory_bot.rb +19 -0
- data/lib/rails_app_generator/addons/foreman.rb +15 -0
- data/lib/rails_app_generator/addons/generators.rb +31 -0
- data/lib/rails_app_generator/addons/high_voltage.rb +15 -0
- data/lib/rails_app_generator/addons/inline_svg.rb +11 -0
- data/lib/rails_app_generator/addons/irbrc.rb +13 -0
- data/lib/rails_app_generator/addons/lograge.rb +13 -0
- data/lib/rails_app_generator/addons/pundit.rb +16 -0
- data/lib/rails_app_generator/addons/rspec.rb +17 -0
- data/lib/rails_app_generator/addons/rubocop.rb +13 -0
- data/lib/rails_app_generator/addons/scaffold.rb +15 -0
- data/lib/rails_app_generator/addons/services.rb +13 -0
- data/lib/rails_app_generator/addons/sidekiq.rb +18 -0
- data/lib/rails_app_generator/addons/stimulus.rb +15 -0
- data/lib/rails_app_generator/addons/stimulus_components.rb +33 -0
- data/lib/rails_app_generator/addons/tailwind.rb +22 -0
- data/lib/rails_app_generator/addons/views.rb +21 -0
- data/lib/rails_app_generator/app_builder.rb +7 -5
- data/lib/rails_app_generator/app_generator.rb +187 -99
- data/lib/rails_app_generator/context.rb +75 -0
- data/lib/rails_app_generator/dependencies.rb +34 -0
- data/lib/rails_app_generator/notes/a1.txt +1 -1
- data/lib/rails_app_generator/notes/a2.txt +1 -1
- data/lib/rails_app_generator/notes/kw01-b.txt +86 -0
- data/lib/rails_app_generator/notes/kw01.txt +91 -0
- data/lib/rails_app_generator/options/map_option_string.rb +2 -0
- data/lib/rails_app_generator/options/rails_options.rb +52 -32
- data/lib/rails_app_generator/starter.rb +17 -8
- data/lib/rails_app_generator/version.rb +1 -1
- data/lib/rails_app_generator.rb +5 -1
- data/package-lock.json +2 -2
- data/package.json +1 -1
- data/profiles/rag-add-some-pages.json +11 -0
- data/profiles/rag-bootstrap.json +12 -0
- data/profiles/rag-simple.json +11 -0
- data/profiles/rag-tailwind.json +12 -0
- data/templates/README.md.erb +43 -0
- data/templates/addons/annotate/auto_annotate_models.rake +60 -0
- data/templates/addons/continuous_integration/.github/workflows/build.yml.erb +49 -0
- data/templates/addons/devise/app/views/devise/confirmations/new.html.erb +24 -0
- data/templates/addons/devise/app/views/devise/passwords/edit.html.erb +34 -0
- data/templates/addons/devise/app/views/devise/passwords/new.html.erb +23 -0
- data/templates/addons/devise/app/views/devise/registrations/edit.html.erb +62 -0
- data/templates/addons/devise/app/views/devise/registrations/new.html.erb +45 -0
- data/templates/addons/devise/app/views/devise/sessions/new.html.erb +33 -0
- data/templates/addons/devise/app/views/devise/shared/_error_messages.html.erb +15 -0
- data/templates/addons/devise/app/views/devise/shared/_form_wrap.html.erb +5 -0
- data/templates/addons/devise/app/views/devise/shared/_links.html.erb +25 -0
- data/templates/addons/devise/app/views/devise/unlocks/new.html.erb +22 -0
- data/templates/addons/docker/.dockerignore.erb +51 -0
- data/templates/addons/docker/Dockerfile.erb +45 -0
- data/templates/addons/docker_compose/docker-compose.yml.erb +21 -0
- data/templates/addons/dotenv/.env.development.erb +3 -0
- data/templates/addons/foreman/.foreman.erb +1 -0
- data/templates/addons/foreman/Procfile.dev.erb +7 -0
- data/templates/addons/foreman/Procfile.erb +4 -0
- data/templates/addons/generators/lib/generators/rails/navigation/USAGE +6 -0
- data/templates/addons/generators/lib/generators/rails/navigation/navigation_generator.rb +16 -0
- data/templates/addons/generators/lib/generators/rails/scaffold_controller_generator.rb +12 -0
- data/templates/addons/high_voltage/config/initializers/high_voltage.rb +6 -0
- data/templates/addons/irbrc/.irbrc.erb +13 -0
- data/templates/addons/lograge/config/initializers/lograge.rb +5 -0
- data/templates/addons/pundit/app/controllers/authorized_controller.rb.erb +10 -0
- data/templates/addons/pundit/app/policies/application_policy.rb +57 -0
- data/templates/addons/rspec/spec/rails_helper.rb +26 -0
- data/templates/addons/rspec/spec/spec_helper.rb +61 -0
- data/templates/addons/rubocop/.rubocop.yml.erb +37 -0
- data/templates/addons/scaffold/lib/templates/erb/scaffold/_form.html.erb +39 -0
- data/templates/addons/scaffold/lib/templates/erb/scaffold/edit.html.erb +7 -0
- data/templates/addons/scaffold/lib/templates/erb/scaffold/index.html.erb +34 -0
- data/templates/addons/scaffold/lib/templates/erb/scaffold/new.html.erb +7 -0
- data/templates/addons/scaffold/lib/templates/erb/scaffold/show.html.erb +18 -0
- data/templates/addons/services/app/services/application_service.rb +15 -0
- data/templates/app_x/controllers/authorized_controller.rb.erb +10 -0
- data/templates/app_x/controllers/errors_controller.rb.erb +24 -0
- data/templates/app_x/javascript/images/checkmark.svg +1 -0
- data/templates/app_x/javascript/images/logo.svg +1 -0
- data/templates/app_x/javascript/stylesheets/components.scss +206 -0
- data/templates/app_x/views/errors/internal_error.html.erb +14 -0
- data/templates/app_x/views/errors/not_found.html.erb +14 -0
- data/templates/app_x/views/errors/unacceptable.html.erb +14 -0
- data/templates/app_x/views/layouts/application.html.erb.tt +30 -0
- data/templates/app_x/views/pages/home.html.erb.tt +20 -0
- data/templates/app_x/views/shared/_flashes.html.erb.tt +12 -0
- data/templates/app_x/views/shared/_footer.html.erb.tt +21 -0
- data/templates/app_x/views/shared/_navbar.html.erb.tt +55 -0
- data/templates/app_x/workers/application_worker.rb +5 -0
- 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>
|
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.
|
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-
|
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
|