rails_app_generator 0.2.6 → 0.2.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +23 -0
- data/after_templates/addons/bcrypt_ruby/_.rb +37 -0
- data/after_templates/addons/bcrypt_ruby/app/controllers/home_controller.rb +7 -0
- data/after_templates/addons/bcrypt_ruby/app/models/user.rb +20 -0
- data/after_templates/addons/bcrypt_ruby/app/views/home/index.html.erb +9 -0
- data/after_templates/addons/bcrypt_ruby/app/views/layouts/_footer.html.erb +3 -0
- data/after_templates/addons/bcrypt_ruby/app/views/layouts/_navbar.html.erb +5 -0
- data/after_templates/addons/bcrypt_ruby/app/views/layouts/application.html.erb +23 -0
- data/after_templates/addons/bcrypt_ruby/app/views/users/_form.html.erb +27 -0
- data/after_templates/addons/bcrypt_ruby/app/views/users/_user.html.erb +17 -0
- data/after_templates/addons/bcrypt_ruby/db/seeds.rb +3 -0
- data/after_templates/addons/redcarpet/_.rb +22 -0
- data/after_templates/addons/redcarpet/app/controllers/home_controller.rb +299 -0
- data/after_templates/addons/redcarpet/app/views/home/index.html.erb +5 -0
- data/after_templates/addons/redcarpet/app/views/layouts/_footer.html.erb +3 -0
- data/after_templates/addons/redcarpet/app/views/layouts/_navbar.html.erb +4 -0
- data/after_templates/addons/redcarpet/app/views/layouts/application.html.erb +23 -0
- data/docs/last_run/app_generator_class.json +16 -0
- data/docs/last_run/app_generator_data.json +4 -2
- data/docs/last_run/rails_options_class.json +16 -0
- data/docs/last_run/rails_options_data.json +4 -2
- data/lib/rails_app_generator/addons/bcrypt_ruby.rb +15 -0
- data/lib/rails_app_generator/addons/redcarpet.rb +13 -0
- data/lib/rails_app_generator/rag_initializer.rb +2 -0
- data/lib/rails_app_generator/version.rb +1 -1
- data/package-lock.json +2 -2
- data/package.json +1 -1
- data/profiles/addons/bcrypt_ruby.json +12 -0
- data/profiles/addons/redcarpet.json +12 -0
- data/tasks/profile.thor +0 -1
- data/templates/thor_task/profile/after_template.rb +1 -0
- data/templates/thor_task/profile/app/controllers/home_controller.rb +0 -3
- data/templates/thor_task/profile/app/views/home/index.html.erb.tt +0 -8
- data/templates/thor_task/profile/app/views/layouts/application.html.erb.tt +0 -5
- metadata +22 -3
- data/templates/thor_task/profile/app/views/layouts/_alerts.html.erb.tt +0 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 245051d1035ecf7bc5f83440de6bb0ef082b38f7db0ac1017e634fc3deacb28e
|
4
|
+
data.tar.gz: 1f230bce7bbfa02e7101bd7975f830d40f6076b88738687505dac78f20b90ce2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 572dbb657afd55e047ee26d18fd2f1b7c6fcdeaca522d9de2c3917d2404bf022d5cb72a0e9feb255dbb1956095ea091f3f1fddb99e9858beaec5cdc299241893
|
7
|
+
data.tar.gz: a9f58cfcb066af3285caee20ad039699eda992121b9bbe818f0c68ee51135e4cb4f1640272e0cf730d5d5c1ef7aa81d412c33f83cb851e49e7f11fe07595a98d
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,26 @@
|
|
1
|
+
## [0.2.8](https://github.com/klueless-io/rails_app_generator/compare/v0.2.7...v0.2.8) (2022-08-11)
|
2
|
+
|
3
|
+
|
4
|
+
### Bug Fixes
|
5
|
+
|
6
|
+
* add bcrypt_ruby profile ([a07dfdb](https://github.com/klueless-io/rails_app_generator/commit/a07dfdb04190826edfe3a1258b00e00653326e10))
|
7
|
+
|
8
|
+
## [0.2.7](https://github.com/klueless-io/rails_app_generator/compare/v0.2.6...v0.2.7) (2022-08-11)
|
9
|
+
|
10
|
+
|
11
|
+
### Bug Fixes
|
12
|
+
|
13
|
+
* add bcrypt_ruby addon ([34eb3ca](https://github.com/klueless-io/rails_app_generator/commit/34eb3ca4236804dec52ea995addbb1e3749336d9))
|
14
|
+
* add bcrypt_ruby addon ([4622249](https://github.com/klueless-io/rails_app_generator/commit/4622249b03ab204728432d04d4743e8ba8569ec3))
|
15
|
+
|
16
|
+
## [0.2.6](https://github.com/klueless-io/rails_app_generator/compare/v0.2.5...v0.2.6) (2022-08-10)
|
17
|
+
|
18
|
+
|
19
|
+
### Bug Fixes
|
20
|
+
|
21
|
+
* add phony_rails addon ([77aec0e](https://github.com/klueless-io/rails_app_generator/commit/77aec0e7ed2fe9093cb988ab408db1f1e50e78d3))
|
22
|
+
* add phony_rails addon ([7a45829](https://github.com/klueless-io/rails_app_generator/commit/7a45829688dfb371a4257a5e1c6bb10ebc0a56ad))
|
23
|
+
|
1
24
|
## [0.2.5](https://github.com/klueless-io/rails_app_generator/compare/v0.2.4...v0.2.5) (2022-08-10)
|
2
25
|
|
3
26
|
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# bcrypt() is a sophisticated and secure hash algorithm designed by The OpenBSD project for hashing passwords.
|
4
|
+
#
|
5
|
+
# exe/rag addons/bcrypt_ruby
|
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'
|
23
|
+
|
24
|
+
template 'db/seeds.rb' , 'db/seeds.rb'
|
25
|
+
|
26
|
+
after_bundle do
|
27
|
+
setup_db
|
28
|
+
end
|
29
|
+
|
30
|
+
def setup_db
|
31
|
+
add_scaffold('user', 'name', 'password', 'password_hash')
|
32
|
+
directory "app/models"
|
33
|
+
directory "app/views/users"
|
34
|
+
|
35
|
+
db_migrate
|
36
|
+
db_seed
|
37
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'bcrypt'
|
2
|
+
|
3
|
+
class User < ApplicationRecord
|
4
|
+
# users.password_hash in the database is a :string
|
5
|
+
include BCrypt
|
6
|
+
|
7
|
+
def password
|
8
|
+
return nil if password_hash.nil?
|
9
|
+
@password ||= Password.new(password_hash)
|
10
|
+
end
|
11
|
+
|
12
|
+
def password=(new_password)
|
13
|
+
@password = Password.create(new_password)
|
14
|
+
self.password_hash = @password
|
15
|
+
end
|
16
|
+
|
17
|
+
def match?(password)
|
18
|
+
self.password == password
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
<h1>Bcrypt ruby</h1>
|
2
|
+
|
3
|
+
<h2>bcrypt() is a sophisticated and secure hash algorithm designed by The OpenBSD project for hashing passwords.</h2>
|
4
|
+
|
5
|
+
<p>If you are using Rails you should probaly be using <code>ActiveModel::SecurePassword</code> instead of using bcrypt</p>
|
6
|
+
|
7
|
+
|
8
|
+
|
9
|
+
|
@@ -0,0 +1,23 @@
|
|
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
|
+
<%%= render 'layouts/navbar' %>
|
18
|
+
<main>
|
19
|
+
<%%= yield %>
|
20
|
+
</main>
|
21
|
+
<%%= render 'layouts/footer' %>
|
22
|
+
</body>
|
23
|
+
</html>
|
@@ -0,0 +1,27 @@
|
|
1
|
+
<%= form_with(model: user) do |form| %>
|
2
|
+
<% if user.errors.any? %>
|
3
|
+
<div style="color: red">
|
4
|
+
<h2><%= pluralize(user.errors.count, "error") %> prohibited this user from being saved:</h2>
|
5
|
+
|
6
|
+
<ul>
|
7
|
+
<% user.errors.each do |error| %>
|
8
|
+
<li><%= error.full_message %></li>
|
9
|
+
<% end %>
|
10
|
+
</ul>
|
11
|
+
</div>
|
12
|
+
<% end %>
|
13
|
+
|
14
|
+
<div>
|
15
|
+
<%= form.label :name, style: "display: block" %>
|
16
|
+
<%= form.text_field :name %>
|
17
|
+
</div>
|
18
|
+
|
19
|
+
<div>
|
20
|
+
<%= form.label :password, style: "display: block" %>
|
21
|
+
<%= form.text_field :password %>
|
22
|
+
</div>
|
23
|
+
|
24
|
+
<div>
|
25
|
+
<%= form.submit %>
|
26
|
+
</div>
|
27
|
+
<% end %>
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<div id="<%= dom_id user %>">
|
2
|
+
<p>
|
3
|
+
<strong>Name:</strong>
|
4
|
+
<%= user.name %>
|
5
|
+
</p>
|
6
|
+
|
7
|
+
<p>
|
8
|
+
<strong>Password:</strong>
|
9
|
+
<%= user.password %>
|
10
|
+
</p>
|
11
|
+
|
12
|
+
<p>match?('password1'): <%= user.match?('password1') ? '<strong>TRUE</strong>'.html_safe : false %></p>
|
13
|
+
<p>match?('password2'): <%= user.match?('password2') ? '<strong>TRUE</strong>'.html_safe : false %></p>
|
14
|
+
<p>match?('password3'): <%= user.match?('password3') ? '<strong>TRUE</strong>'.html_safe : false %></p>
|
15
|
+
<p>match?('hello'): <%= user.match?('hello') ? '<strong>TRUE</strong>'.html_safe : false %></p>
|
16
|
+
|
17
|
+
</div>
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# A fast, safe and extensible Markdown to (X)HTML parser
|
4
|
+
#
|
5
|
+
# exe/rag addons/redcarpet
|
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,299 @@
|
|
1
|
+
class HomeController < ApplicationController
|
2
|
+
def index
|
3
|
+
opts = {
|
4
|
+
tables: true,
|
5
|
+
strikethrough: true,
|
6
|
+
fenced_code_blocks: true
|
7
|
+
}
|
8
|
+
# Initializes a Markdown parser
|
9
|
+
markdown = Redcarpet::Markdown.new(Redcarpet::Render::HTML, **opts)
|
10
|
+
|
11
|
+
@html = markdown.render(markdown_example).html_safe
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def markdown_example
|
17
|
+
<<-MARKDOWN
|
18
|
+
H1s are easy in Markdown
|
19
|
+
========================
|
20
|
+
|
21
|
+
## H2
|
22
|
+
|
23
|
+
### H3
|
24
|
+
|
25
|
+
#### H4
|
26
|
+
|
27
|
+
##### H5
|
28
|
+
|
29
|
+
###### H6
|
30
|
+
|
31
|
+
Paragraphs are separated by a blank line.
|
32
|
+
|
33
|
+
2nd paragraph. *Italic*, **bold**, and `monospace`. Itemized lists
|
34
|
+
look like:
|
35
|
+
|
36
|
+
* this one
|
37
|
+
* that one
|
38
|
+
* the other one
|
39
|
+
|
40
|
+
Emphasis, aka italics, with *asterisks* or _underscores_.
|
41
|
+
|
42
|
+
Strong emphasis, aka bold, with **asterisks** or __underscores__.
|
43
|
+
|
44
|
+
Strikethrough uses two tildes. ~~Scratch this.~~
|
45
|
+
|
46
|
+
![alt text](https://github.com/adam-p/markdown-here/raw/master/src/common/images/icon48.png "Logo Title Text 1")
|
47
|
+
|
48
|
+
```
|
49
|
+
No language indicated, so no syntax highlighting.
|
50
|
+
But let's throw in a <b>tag</b>.
|
51
|
+
```
|
52
|
+
|
53
|
+
| Tables | Are | Cool |
|
54
|
+
| ------------- |:-------------:| -----:|
|
55
|
+
| col 3 is | right-aligned | $1600 |
|
56
|
+
| col 2 is | centered | $12 |
|
57
|
+
| zebra stripes | are neat | $1 |
|
58
|
+
|
59
|
+
> Blockquotes are very handy in email to emulate reply text.
|
60
|
+
> This line is part of the same quote.
|
61
|
+
|
62
|
+
Quote break.
|
63
|
+
|
64
|
+
> This is a very long line that will still be quoted properly when it wraps. Oh boy let's keep writing to make sure this is long enough to actually wrap for everyone. Oh, you can *put* **Markdown** into a blockquote.
|
65
|
+
|
66
|
+
|
67
|
+
[![IMAGE ALT TEXT HERE](http://img.youtube.com/vi/mpWFrUwAN88/0.jpg)](http://www.youtube.com/watch?v=mpWFrUwAN88)
|
68
|
+
|
69
|
+
|
70
|
+
MARKDOWN
|
71
|
+
end
|
72
|
+
|
73
|
+
def markdown_example2
|
74
|
+
<<-MARKDOWN
|
75
|
+
---
|
76
|
+
__Advertisement :)__
|
77
|
+
|
78
|
+
- __[pica](https://nodeca.github.io/pica/demo/)__ - high quality and fast image
|
79
|
+
resize in browser.
|
80
|
+
- __[babelfish](https://github.com/nodeca/babelfish/)__ - developer friendly
|
81
|
+
i18n with plurals support and easy syntax.
|
82
|
+
|
83
|
+
|
84
|
+
|
85
|
+
You will like those projects!
|
86
|
+
|
87
|
+
---
|
88
|
+
|
89
|
+
# h1 Heading 8-)
|
90
|
+
## h2 Heading
|
91
|
+
### h3 Heading
|
92
|
+
#### h4 Heading
|
93
|
+
##### h5 Heading
|
94
|
+
###### h6 Heading
|
95
|
+
|
96
|
+
|
97
|
+
## Horizontal Rules
|
98
|
+
|
99
|
+
___
|
100
|
+
|
101
|
+
---
|
102
|
+
|
103
|
+
***
|
104
|
+
|
105
|
+
|
106
|
+
## Typographic replacements
|
107
|
+
|
108
|
+
Enable typographer option to see result.
|
109
|
+
|
110
|
+
(c) (C) (r) (R) (tm) (TM) (p) (P) +-
|
111
|
+
|
112
|
+
test.. test... test..... test?..... test!....
|
113
|
+
|
114
|
+
!!!!!! ???? ,, -- ---
|
115
|
+
|
116
|
+
"Smartypants, double quotes" and 'single quotes'
|
117
|
+
|
118
|
+
|
119
|
+
## Emphasis
|
120
|
+
|
121
|
+
**This is bold text**
|
122
|
+
|
123
|
+
__This is bold text__
|
124
|
+
|
125
|
+
*This is italic text*
|
126
|
+
|
127
|
+
_This is italic text_
|
128
|
+
|
129
|
+
~~Strikethrough~~
|
130
|
+
|
131
|
+
|
132
|
+
## Blockquotes
|
133
|
+
|
134
|
+
|
135
|
+
> Blockquotes can also be nested...
|
136
|
+
>> ...by using additional greater-than signs right next to each other...
|
137
|
+
> > > ...or with spaces between arrows.
|
138
|
+
|
139
|
+
|
140
|
+
## Lists
|
141
|
+
|
142
|
+
Unordered
|
143
|
+
|
144
|
+
+ Create a list by starting a line with `+`, `-`, or `*`
|
145
|
+
+ Sub-lists are made by indenting 2 spaces:
|
146
|
+
- Marker character change forces new list start:
|
147
|
+
* Ac tristique libero volutpat at
|
148
|
+
+ Facilisis in pretium nisl aliquet
|
149
|
+
- Nulla volutpat aliquam velit
|
150
|
+
+ Very easy!
|
151
|
+
|
152
|
+
Ordered
|
153
|
+
|
154
|
+
1. Lorem ipsum dolor sit amet
|
155
|
+
2. Consectetur adipiscing elit
|
156
|
+
3. Integer molestie lorem at massa
|
157
|
+
|
158
|
+
|
159
|
+
1. You can use sequential numbers...
|
160
|
+
1. ...or keep all the numbers as `1.`
|
161
|
+
|
162
|
+
Start numbering with offset:
|
163
|
+
|
164
|
+
57. foo
|
165
|
+
1. bar
|
166
|
+
|
167
|
+
|
168
|
+
## Code
|
169
|
+
|
170
|
+
Inline `code`
|
171
|
+
|
172
|
+
Indented code
|
173
|
+
|
174
|
+
// Some comments
|
175
|
+
line 1 of code
|
176
|
+
line 2 of code
|
177
|
+
line 3 of code
|
178
|
+
|
179
|
+
|
180
|
+
## Tables
|
181
|
+
|
182
|
+
| Option | Description |
|
183
|
+
| ------ | ----------- |
|
184
|
+
| data | path to data files to supply the data that will be passed into templates. |
|
185
|
+
| engine | engine to be used for processing templates. Handlebars is the default. |
|
186
|
+
| ext | extension to be used for dest files. |
|
187
|
+
|
188
|
+
Right aligned columns
|
189
|
+
|
190
|
+
| Option | Description |
|
191
|
+
| ------:| -----------:|
|
192
|
+
| data | path to data files to supply the data that will be passed into templates. |
|
193
|
+
| engine | engine to be used for processing templates. Handlebars is the default. |
|
194
|
+
| ext | extension to be used for dest files. |
|
195
|
+
|
196
|
+
|
197
|
+
## Links
|
198
|
+
|
199
|
+
[link text](http://dev.nodeca.com)
|
200
|
+
|
201
|
+
[link with title](http://nodeca.github.io/pica/demo/ "title text!")
|
202
|
+
|
203
|
+
|
204
|
+
## Plugins
|
205
|
+
|
206
|
+
The killer feature of `markdown-it` is very effective support of
|
207
|
+
[syntax plugins](https://www.npmjs.org/browse/keyword/markdown-it-plugin).
|
208
|
+
|
209
|
+
|
210
|
+
### [Emojies](https://github.com/markdown-it/markdown-it-emoji)
|
211
|
+
|
212
|
+
> Classic markup: :wink: :crush: :cry: :tear: :laughing: :yum:
|
213
|
+
>
|
214
|
+
> Shortcuts (emoticons): :-) :-( 8-) ;)
|
215
|
+
|
216
|
+
see [how to change output](https://github.com/markdown-it/markdown-it-emoji#change-output) with twemoji.
|
217
|
+
|
218
|
+
|
219
|
+
### [Subscript](https://github.com/markdown-it/markdown-it-sub) / [Superscript](https://github.com/markdown-it/markdown-it-sup)
|
220
|
+
|
221
|
+
- 19^th^
|
222
|
+
- H~2~O
|
223
|
+
|
224
|
+
|
225
|
+
### [\<ins>](https://github.com/markdown-it/markdown-it-ins)
|
226
|
+
|
227
|
+
++Inserted text++
|
228
|
+
|
229
|
+
|
230
|
+
### [\<mark>](https://github.com/markdown-it/markdown-it-mark)
|
231
|
+
|
232
|
+
==Marked text==
|
233
|
+
|
234
|
+
|
235
|
+
### [Footnotes](https://github.com/markdown-it/markdown-it-footnote)
|
236
|
+
|
237
|
+
Footnote 1 link[^first].
|
238
|
+
|
239
|
+
Footnote 2 link[^second].
|
240
|
+
|
241
|
+
Inline footnote^[Text of inline footnote] definition.
|
242
|
+
|
243
|
+
Duplicated footnote reference[^second].
|
244
|
+
|
245
|
+
[^first]: Footnote **can have markup**
|
246
|
+
|
247
|
+
and multiple paragraphs.
|
248
|
+
|
249
|
+
[^second]: Footnote text.
|
250
|
+
|
251
|
+
|
252
|
+
### [Definition lists](https://github.com/markdown-it/markdown-it-deflist)
|
253
|
+
|
254
|
+
Term 1
|
255
|
+
|
256
|
+
: Definition 1
|
257
|
+
with lazy continuation.
|
258
|
+
|
259
|
+
Term 2 with *inline markup*
|
260
|
+
|
261
|
+
: Definition 2
|
262
|
+
|
263
|
+
{ some code, part of Definition 2 }
|
264
|
+
|
265
|
+
Third paragraph of definition 2.
|
266
|
+
|
267
|
+
_Compact style:_
|
268
|
+
|
269
|
+
Term 1
|
270
|
+
~ Definition 1
|
271
|
+
|
272
|
+
Term 2
|
273
|
+
~ Definition 2a
|
274
|
+
~ Definition 2b
|
275
|
+
|
276
|
+
|
277
|
+
### [Abbreviations](https://github.com/markdown-it/markdown-it-abbr)
|
278
|
+
|
279
|
+
This is HTML abbreviation example.
|
280
|
+
|
281
|
+
It converts "HTML", but keep intact partial entries like "xxxHTMLyyy" and so on.
|
282
|
+
|
283
|
+
*[HTML]: Hyper Text Markup Language
|
284
|
+
|
285
|
+
### [Custom containers](https://github.com/markdown-it/markdown-it-container)
|
286
|
+
|
287
|
+
::: warning
|
288
|
+
*here be dragons*
|
289
|
+
:::
|
290
|
+
|
291
|
+
## Images
|
292
|
+
|
293
|
+
![Minion](https://octodex.github.com/images/minion.png)
|
294
|
+
![Stormtroopocat](https://octodex.github.com/images/stormtroopocat.jpg "The Stormtroopocat")
|
295
|
+
|
296
|
+
Like links, Images also have a footnote style syntax
|
297
|
+
MARKDOWN
|
298
|
+
end
|
299
|
+
end
|
@@ -0,0 +1,23 @@
|
|
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
|
+
<%%= render 'layouts/navbar' %>
|
18
|
+
<main>
|
19
|
+
<%%= yield %>
|
20
|
+
</main>
|
21
|
+
<%%= render 'layouts/footer' %>
|
22
|
+
</body>
|
23
|
+
</html>
|
@@ -47,6 +47,7 @@
|
|
47
47
|
"add_lograge",
|
48
48
|
"add_acts_as_list",
|
49
49
|
"add_browser",
|
50
|
+
"add_bcrypt_ruby",
|
50
51
|
"add_chartkick",
|
51
52
|
"add_faker",
|
52
53
|
"add_groupdate",
|
@@ -57,6 +58,7 @@
|
|
57
58
|
"add_phony_rails",
|
58
59
|
"add_public_suffix",
|
59
60
|
"add_rails_html_sanitizer",
|
61
|
+
"add_redcarpet",
|
60
62
|
"add_twilio_ruby"
|
61
63
|
],
|
62
64
|
"class_options": [
|
@@ -389,6 +391,13 @@
|
|
389
391
|
"default": false,
|
390
392
|
"required": false
|
391
393
|
},
|
394
|
+
{
|
395
|
+
"name": "add_bcrypt_ruby",
|
396
|
+
"description": "Indicates when to generate add bcrypt ruby",
|
397
|
+
"type": "boolean",
|
398
|
+
"default": false,
|
399
|
+
"required": false
|
400
|
+
},
|
392
401
|
{
|
393
402
|
"name": "add_chartkick",
|
394
403
|
"description": "Indicates when to generate add chartkick",
|
@@ -459,6 +468,13 @@
|
|
459
468
|
"default": false,
|
460
469
|
"required": false
|
461
470
|
},
|
471
|
+
{
|
472
|
+
"name": "add_redcarpet",
|
473
|
+
"description": "Indicates when to generate add redcarpet",
|
474
|
+
"type": "boolean",
|
475
|
+
"default": false,
|
476
|
+
"required": false
|
477
|
+
},
|
462
478
|
{
|
463
479
|
"name": "add_twilio_ruby",
|
464
480
|
"description": "Indicates when to generate add twilio ruby",
|
@@ -37,6 +37,7 @@
|
|
37
37
|
"add_lograge": false,
|
38
38
|
"add_acts_as_list": false,
|
39
39
|
"add_browser": false,
|
40
|
+
"add_bcrypt_ruby": false,
|
40
41
|
"add_chartkick": false,
|
41
42
|
"add_faker": false,
|
42
43
|
"add_groupdate": false,
|
@@ -44,10 +45,11 @@
|
|
44
45
|
"add_httparty": false,
|
45
46
|
"add_honeybadger": false,
|
46
47
|
"add_mini_magick": false,
|
47
|
-
"add_phony_rails":
|
48
|
+
"add_phony_rails": false,
|
48
49
|
"add_public_suffix": false,
|
49
50
|
"add_rails_html_sanitizer": false,
|
51
|
+
"add_redcarpet": true,
|
50
52
|
"add_twilio_ruby": false,
|
51
|
-
"template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/addons/
|
53
|
+
"template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/addons/redcarpet/_.rb"
|
52
54
|
}
|
53
55
|
}
|
@@ -47,6 +47,7 @@
|
|
47
47
|
"add_lograge",
|
48
48
|
"add_acts_as_list",
|
49
49
|
"add_browser",
|
50
|
+
"add_bcrypt_ruby",
|
50
51
|
"add_chartkick",
|
51
52
|
"add_faker",
|
52
53
|
"add_groupdate",
|
@@ -57,6 +58,7 @@
|
|
57
58
|
"add_phony_rails",
|
58
59
|
"add_public_suffix",
|
59
60
|
"add_rails_html_sanitizer",
|
61
|
+
"add_redcarpet",
|
60
62
|
"add_twilio_ruby"
|
61
63
|
],
|
62
64
|
"class_options": [
|
@@ -389,6 +391,13 @@
|
|
389
391
|
"default": false,
|
390
392
|
"required": false
|
391
393
|
},
|
394
|
+
{
|
395
|
+
"name": "add_bcrypt_ruby",
|
396
|
+
"description": "",
|
397
|
+
"type": "boolean",
|
398
|
+
"default": false,
|
399
|
+
"required": false
|
400
|
+
},
|
392
401
|
{
|
393
402
|
"name": "add_chartkick",
|
394
403
|
"description": "",
|
@@ -459,6 +468,13 @@
|
|
459
468
|
"default": false,
|
460
469
|
"required": false
|
461
470
|
},
|
471
|
+
{
|
472
|
+
"name": "add_redcarpet",
|
473
|
+
"description": "",
|
474
|
+
"type": "boolean",
|
475
|
+
"default": false,
|
476
|
+
"required": false
|
477
|
+
},
|
462
478
|
{
|
463
479
|
"name": "add_twilio_ruby",
|
464
480
|
"description": "",
|
@@ -7,7 +7,7 @@
|
|
7
7
|
"quiet": false,
|
8
8
|
"skip": false,
|
9
9
|
"ruby": "/Users/davidcruwys/.asdf/installs/ruby/2.7.6/bin/ruby",
|
10
|
-
"template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/addons/
|
10
|
+
"template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/addons/redcarpet/_.rb",
|
11
11
|
"database": "sqlite3",
|
12
12
|
"skip_git": true,
|
13
13
|
"skip_keeps": false,
|
@@ -47,6 +47,7 @@
|
|
47
47
|
"add_lograge": false,
|
48
48
|
"add_acts_as_list": false,
|
49
49
|
"add_browser": false,
|
50
|
+
"add_bcrypt_ruby": false,
|
50
51
|
"add_chartkick": false,
|
51
52
|
"add_faker": false,
|
52
53
|
"add_groupdate": false,
|
@@ -54,9 +55,10 @@
|
|
54
55
|
"add_httparty": false,
|
55
56
|
"add_honeybadger": false,
|
56
57
|
"add_mini_magick": false,
|
57
|
-
"add_phony_rails":
|
58
|
+
"add_phony_rails": false,
|
58
59
|
"add_public_suffix": false,
|
59
60
|
"add_rails_html_sanitizer": false,
|
61
|
+
"add_redcarpet": true,
|
60
62
|
"add_twilio_ruby": false
|
61
63
|
}
|
62
64
|
}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RailsAppGenerator
|
4
|
+
# Custom add-ons for RailsAppGenerator
|
5
|
+
module AddOns
|
6
|
+
# Add BcryptRuby to rails application
|
7
|
+
class BcryptRuby < RailsAppGenerator::Addon
|
8
|
+
required_gem gem.version('bcrypt-ruby', '3.1.5', 'bcrypt() is a sophisticated and secure hash algorithm designed by The OpenBSD project for hashing passwords.')
|
9
|
+
|
10
|
+
# If you are using Rails you should probably be using
|
11
|
+
# <code>ActiveModel::SecurePassword</code> instead of using bcrypt
|
12
|
+
def apply; end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RailsAppGenerator
|
4
|
+
# Custom add-ons for RailsAppGenerator
|
5
|
+
module AddOns
|
6
|
+
# Add RedCarpet to rails application
|
7
|
+
class Redcarpet < RailsAppGenerator::Addon
|
8
|
+
required_gem gem.version('redcarpet', '3.5.1', 'A fast, safe and extensible Markdown to (X)HTML parser')
|
9
|
+
|
10
|
+
def apply; end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -108,6 +108,7 @@ KConfig.configure do |config|
|
|
108
108
|
# NEW GEM ADDONS
|
109
109
|
rag.add_option :add_acts_as_list , type: :boolean, default: false
|
110
110
|
rag.add_option :add_browser , type: :boolean, default: false
|
111
|
+
rag.add_option :add_bcrypt_ruby , type: :boolean, default: false
|
111
112
|
rag.add_option :add_chartkick , type: :boolean, default: false
|
112
113
|
rag.add_option :add_faker , type: :boolean, default: false
|
113
114
|
rag.add_option :add_groupdate , type: :boolean, default: false
|
@@ -118,6 +119,7 @@ KConfig.configure do |config|
|
|
118
119
|
rag.add_option :add_phony_rails , type: :boolean, default: false
|
119
120
|
rag.add_option :add_public_suffix , type: :boolean, default: false
|
120
121
|
rag.add_option :add_rails_html_sanitizer , type: :boolean, default: false
|
122
|
+
rag.add_option :add_redcarpet , type: :boolean, default: false
|
121
123
|
rag.add_option :add_twilio_ruby , type: :boolean, default: false
|
122
124
|
end
|
123
125
|
|
data/package-lock.json
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
{
|
2
2
|
"name": "rails_app_generator",
|
3
|
-
"version": "0.2.
|
3
|
+
"version": "0.2.9",
|
4
4
|
"lockfileVersion": 2,
|
5
5
|
"requires": true,
|
6
6
|
"packages": {
|
7
7
|
"": {
|
8
8
|
"name": "rails_app_generator",
|
9
|
-
"version": "0.2.
|
9
|
+
"version": "0.2.9",
|
10
10
|
"dependencies": {
|
11
11
|
"daisyui": "^2.20.0"
|
12
12
|
},
|
data/package.json
CHANGED
@@ -0,0 +1,12 @@
|
|
1
|
+
{
|
2
|
+
"args": {
|
3
|
+
"app_path": "bcrypt_ruby",
|
4
|
+
"destination_root": "/Users/davidcruwys/dev/kgems/rails_app_generator/a/addons"
|
5
|
+
},
|
6
|
+
"opts": {
|
7
|
+
"skip_git": true,
|
8
|
+
"skip_test": true,
|
9
|
+
"template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/addons/bcrypt_ruby/_.rb",
|
10
|
+
"add_bcrypt_ruby": true
|
11
|
+
}
|
12
|
+
}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
{
|
2
|
+
"args": {
|
3
|
+
"app_path": "redcarpet",
|
4
|
+
"destination_root": "/Users/davidcruwys/dev/kgems/rails_app_generator/a/addons"
|
5
|
+
},
|
6
|
+
"opts": {
|
7
|
+
"skip_git": true,
|
8
|
+
"skip_test": true,
|
9
|
+
"template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/addons/redcarpet/_.rb",
|
10
|
+
"add_redcarpet": true
|
11
|
+
}
|
12
|
+
}
|
data/tasks/profile.thor
CHANGED
@@ -44,7 +44,6 @@ class Profile < Thor
|
|
44
44
|
template('profile/app/controllers/home_controller.rb' , after_template_path('app/controllers/home_controller.rb') , force: options[:force])
|
45
45
|
template('profile/app/views/home/index.html.erb' , after_template_path('app/views/home/index.html.erb') , force: options[:force])
|
46
46
|
|
47
|
-
copy_file('profile/app/views/layouts/_alerts.html.erb' , after_template_path('app/views/layouts/_alerts.html.erb') , force: options[:force])
|
48
47
|
copy_file('profile/app/views/layouts/_navbar.html.erb' , after_template_path('app/views/layouts/_navbar.html.erb') , force: options[:force])
|
49
48
|
copy_file('profile/app/views/layouts/_footer.html.erb' , after_template_path('app/views/layouts/_footer.html.erb') , force: options[:force])
|
50
49
|
copy_file('profile/app/views/layouts/application.html.erb' , after_template_path('app/views/layouts/application.html.erb') , force: options[:force])
|
@@ -1,11 +1,3 @@
|
|
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
1
|
<h1><%= data.name_human %></h1>
|
10
2
|
|
11
3
|
<h2><%= data.description %></h2>
|
@@ -11,16 +11,11 @@
|
|
11
11
|
<%- else -%>
|
12
12
|
<%%= stylesheet_link_tag "application", "data-turbo-track": "reload" %>
|
13
13
|
<%- end -%>
|
14
|
-
<style>
|
15
|
-
.alert { color: red; }
|
16
|
-
.notice { color: green; }
|
17
|
-
</style>
|
18
14
|
</head>
|
19
15
|
|
20
16
|
<body>
|
21
17
|
<%%= render 'layouts/navbar' %>
|
22
18
|
<main>
|
23
|
-
<%%= render 'layouts/alerts' %>
|
24
19
|
<%%= yield %>
|
25
20
|
</main>
|
26
21
|
<%%= render 'layouts/footer' %>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rails_app_generator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.9
|
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-08-
|
11
|
+
date: 2022-08-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bootsnap
|
@@ -189,6 +189,16 @@ files:
|
|
189
189
|
- after_templates/addons/acts_as_list/app/views/todo_items/index.html.erb
|
190
190
|
- after_templates/addons/acts_as_list/config/routes.rb
|
191
191
|
- after_templates/addons/acts_as_list/db/seeds.rb
|
192
|
+
- after_templates/addons/bcrypt_ruby/_.rb
|
193
|
+
- after_templates/addons/bcrypt_ruby/app/controllers/home_controller.rb
|
194
|
+
- after_templates/addons/bcrypt_ruby/app/models/user.rb
|
195
|
+
- after_templates/addons/bcrypt_ruby/app/views/home/index.html.erb
|
196
|
+
- after_templates/addons/bcrypt_ruby/app/views/layouts/_footer.html.erb
|
197
|
+
- after_templates/addons/bcrypt_ruby/app/views/layouts/_navbar.html.erb
|
198
|
+
- after_templates/addons/bcrypt_ruby/app/views/layouts/application.html.erb
|
199
|
+
- after_templates/addons/bcrypt_ruby/app/views/users/_form.html.erb
|
200
|
+
- after_templates/addons/bcrypt_ruby/app/views/users/_user.html.erb
|
201
|
+
- after_templates/addons/bcrypt_ruby/db/seeds.rb
|
192
202
|
- after_templates/addons/browser/_.rb
|
193
203
|
- after_templates/addons/browser/app/controllers/home_controller.rb
|
194
204
|
- after_templates/addons/browser/app/views/home/index.html.erb
|
@@ -261,6 +271,12 @@ files:
|
|
261
271
|
- after_templates/addons/public_suffix/app/views/layouts/application.html.erb
|
262
272
|
- after_templates/addons/rails_html_sanitizer/_.rb
|
263
273
|
- after_templates/addons/rails_html_sanitizer/home/index.html.erb
|
274
|
+
- after_templates/addons/redcarpet/_.rb
|
275
|
+
- after_templates/addons/redcarpet/app/controllers/home_controller.rb
|
276
|
+
- after_templates/addons/redcarpet/app/views/home/index.html.erb
|
277
|
+
- after_templates/addons/redcarpet/app/views/layouts/_footer.html.erb
|
278
|
+
- after_templates/addons/redcarpet/app/views/layouts/_navbar.html.erb
|
279
|
+
- after_templates/addons/redcarpet/app/views/layouts/application.html.erb
|
264
280
|
- after_templates/addons/rubocop/_.rb
|
265
281
|
- after_templates/addons/rubocop/app/assets/images/cop-output.png
|
266
282
|
- after_templates/addons/rubocop/app/controllers/home_controller.rb
|
@@ -471,6 +487,7 @@ files:
|
|
471
487
|
- lib/rails_app_generator/addon_util.rb
|
472
488
|
- lib/rails_app_generator/addons/acts_as_list.rb
|
473
489
|
- lib/rails_app_generator/addons/annotate.rb
|
490
|
+
- lib/rails_app_generator/addons/bcrypt_ruby.rb
|
474
491
|
- lib/rails_app_generator/addons/browser.rb
|
475
492
|
- lib/rails_app_generator/addons/chartkick.rb
|
476
493
|
- lib/rails_app_generator/addons/continuous_integration.rb
|
@@ -495,6 +512,7 @@ files:
|
|
495
512
|
- lib/rails_app_generator/addons/public_suffix.rb
|
496
513
|
- lib/rails_app_generator/addons/pundit.rb
|
497
514
|
- lib/rails_app_generator/addons/rails_html_sanitizer.rb
|
515
|
+
- lib/rails_app_generator/addons/redcarpet.rb
|
498
516
|
- lib/rails_app_generator/addons/rspec.rb
|
499
517
|
- lib/rails_app_generator/addons/rubocop.rb
|
500
518
|
- lib/rails_app_generator/addons/scaffold.rb
|
@@ -540,6 +558,7 @@ files:
|
|
540
558
|
- package-lock.json
|
541
559
|
- package.json
|
542
560
|
- profiles/addons/acts_as_list.json
|
561
|
+
- profiles/addons/bcrypt_ruby.json
|
543
562
|
- profiles/addons/browser.json
|
544
563
|
- profiles/addons/chartkick.json
|
545
564
|
- profiles/addons/dotenv.json
|
@@ -552,6 +571,7 @@ files:
|
|
552
571
|
- profiles/addons/phony_rails.json
|
553
572
|
- profiles/addons/public_suffix.json
|
554
573
|
- profiles/addons/rails-html-sanitizer.json
|
574
|
+
- profiles/addons/redcarpet.json
|
555
575
|
- profiles/addons/rubocop.json
|
556
576
|
- profiles/addons/twilio_ruby.json
|
557
577
|
- profiles/application/printspeak.json
|
@@ -617,7 +637,6 @@ files:
|
|
617
637
|
- templates/thor_task/profile/after_template.rb
|
618
638
|
- templates/thor_task/profile/app/controllers/home_controller.rb
|
619
639
|
- templates/thor_task/profile/app/views/home/index.html.erb.tt
|
620
|
-
- templates/thor_task/profile/app/views/layouts/_alerts.html.erb.tt
|
621
640
|
- templates/thor_task/profile/app/views/layouts/_footer.html.erb.tt
|
622
641
|
- templates/thor_task/profile/app/views/layouts/_navbar.html.erb
|
623
642
|
- templates/thor_task/profile/app/views/layouts/application.html.erb.tt
|