rails_app_generator 0.2.7 → 0.2.10
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +22 -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 +8 -0
- data/docs/last_run/app_generator_data.json +4 -2
- data/docs/last_run/rails_options_class.json +8 -0
- data/docs/last_run/rails_options_data.json +4 -2
- data/lib/rails_app_generator/addons/administrate.rb +30 -0
- data/lib/rails_app_generator/addons/bcrypt_ruby.rb +2 -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/addon/addon.tt +1 -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 +21 -2
- 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: e595153d8d04b113b8c54db0d8571752deaa017ae6b0cdefa401999ea85d9853
|
4
|
+
data.tar.gz: 36fec67777c02fb9c6f7d9c1fe3fd2dd84e67404b52b19bfffef13e9d09e20a1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bba13cc58a961de6af36ce8f7bd4f1d42bb3457c63a9f5cec283bd1cea7fda8f1ab6d8e30eb6a216653a986aadd4b4dd0b74964c7952001523bbc624844ff4cc
|
7
|
+
data.tar.gz: ebe4c29f6d73c47de6568a2687bedd9648fc828e29befe7481517af22e7d07417ef715b4b578d9fd527d215e32b4ca94439c154b170ddb366cb7b70beb412ef1
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,25 @@
|
|
1
|
+
## [0.2.9](https://github.com/klueless-io/rails_app_generator/compare/v0.2.8...v0.2.9) (2022-08-11)
|
2
|
+
|
3
|
+
|
4
|
+
### Bug Fixes
|
5
|
+
|
6
|
+
* add redcarpet addon ([fb8acf0](https://github.com/klueless-io/rails_app_generator/commit/fb8acf09d3d1be3d4eb9b82e5fc1d9af1fea0e0c))
|
7
|
+
|
8
|
+
## [0.2.8](https://github.com/klueless-io/rails_app_generator/compare/v0.2.7...v0.2.8) (2022-08-11)
|
9
|
+
|
10
|
+
|
11
|
+
### Bug Fixes
|
12
|
+
|
13
|
+
* add bcrypt_ruby profile ([a07dfdb](https://github.com/klueless-io/rails_app_generator/commit/a07dfdb04190826edfe3a1258b00e00653326e10))
|
14
|
+
|
15
|
+
## [0.2.7](https://github.com/klueless-io/rails_app_generator/compare/v0.2.6...v0.2.7) (2022-08-11)
|
16
|
+
|
17
|
+
|
18
|
+
### Bug Fixes
|
19
|
+
|
20
|
+
* add bcrypt_ruby addon ([34eb3ca](https://github.com/klueless-io/rails_app_generator/commit/34eb3ca4236804dec52ea995addbb1e3749336d9))
|
21
|
+
* add bcrypt_ruby addon ([4622249](https://github.com/klueless-io/rails_app_generator/commit/4622249b03ab204728432d04d4743e8ba8569ec3))
|
22
|
+
|
1
23
|
## [0.2.6](https://github.com/klueless-io/rails_app_generator/compare/v0.2.5...v0.2.6) (2022-08-10)
|
2
24
|
|
3
25
|
|
@@ -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>
|
@@ -58,6 +58,7 @@
|
|
58
58
|
"add_phony_rails",
|
59
59
|
"add_public_suffix",
|
60
60
|
"add_rails_html_sanitizer",
|
61
|
+
"add_redcarpet",
|
61
62
|
"add_twilio_ruby"
|
62
63
|
],
|
63
64
|
"class_options": [
|
@@ -467,6 +468,13 @@
|
|
467
468
|
"default": false,
|
468
469
|
"required": false
|
469
470
|
},
|
471
|
+
{
|
472
|
+
"name": "add_redcarpet",
|
473
|
+
"description": "Indicates when to generate add redcarpet",
|
474
|
+
"type": "boolean",
|
475
|
+
"default": false,
|
476
|
+
"required": false
|
477
|
+
},
|
470
478
|
{
|
471
479
|
"name": "add_twilio_ruby",
|
472
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
|
}
|
@@ -58,6 +58,7 @@
|
|
58
58
|
"add_phony_rails",
|
59
59
|
"add_public_suffix",
|
60
60
|
"add_rails_html_sanitizer",
|
61
|
+
"add_redcarpet",
|
61
62
|
"add_twilio_ruby"
|
62
63
|
],
|
63
64
|
"class_options": [
|
@@ -467,6 +468,13 @@
|
|
467
468
|
"default": false,
|
468
469
|
"required": false
|
469
470
|
},
|
471
|
+
{
|
472
|
+
"name": "add_redcarpet",
|
473
|
+
"description": "",
|
474
|
+
"type": "boolean",
|
475
|
+
"default": false,
|
476
|
+
"required": false
|
477
|
+
},
|
470
478
|
{
|
471
479
|
"name": "add_twilio_ruby",
|
472
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,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RailsAppGenerator
|
4
|
+
# Custom add-ons for RailsAppGenerator
|
5
|
+
module AddOns
|
6
|
+
# Add Administrate to rails application
|
7
|
+
class Administrate < RailsAppGenerator::Addon
|
8
|
+
required_gem gem.version('administrate', '0.17.0', 'Administrate is inspired by Rails Admin and ActiveAdmin, but aims to provide a better developer/user experience.')
|
9
|
+
|
10
|
+
def apply
|
11
|
+
say 'Setting up Administrate'
|
12
|
+
# template('administrate_template.rb', 'target/administrate.rb', force: true)
|
13
|
+
# template('app/javascript/stylesheets/components.scss')
|
14
|
+
# create_file('target/administrate.rb', 'put your content here')
|
15
|
+
# directory 'app/template', 'app/target', force: true
|
16
|
+
# empty_directory 'app/target'
|
17
|
+
# inject_into_file('app/application.js', "some content")
|
18
|
+
# rails_command('tailwindcss:install')
|
19
|
+
end
|
20
|
+
|
21
|
+
def before_bundle
|
22
|
+
say 'Setting up Administrate - before bundle install'
|
23
|
+
end
|
24
|
+
|
25
|
+
def after_bundle
|
26
|
+
say 'Setting up Administrate - after bundle install'
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -7,6 +7,8 @@ module RailsAppGenerator
|
|
7
7
|
class BcryptRuby < RailsAppGenerator::Addon
|
8
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
9
|
|
10
|
+
# If you are using Rails you should probably be using
|
11
|
+
# <code>ActiveModel::SecurePassword</code> instead of using bcrypt
|
10
12
|
def apply; end
|
11
13
|
end
|
12
14
|
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
|
@@ -107,6 +107,7 @@ KConfig.configure do |config|
|
|
107
107
|
|
108
108
|
# NEW GEM ADDONS
|
109
109
|
rag.add_option :add_acts_as_list , type: :boolean, default: false
|
110
|
+
rag.add_option :add_administrate , type: :boolean, default: false
|
110
111
|
rag.add_option :add_browser , type: :boolean, default: false
|
111
112
|
rag.add_option :add_bcrypt_ruby , type: :boolean, default: false
|
112
113
|
rag.add_option :add_chartkick , type: :boolean, default: false
|
@@ -119,6 +120,7 @@ KConfig.configure do |config|
|
|
119
120
|
rag.add_option :add_phony_rails , type: :boolean, default: false
|
120
121
|
rag.add_option :add_public_suffix , type: :boolean, default: false
|
121
122
|
rag.add_option :add_rails_html_sanitizer , type: :boolean, default: false
|
123
|
+
rag.add_option :add_redcarpet , type: :boolean, default: false
|
122
124
|
rag.add_option :add_twilio_ruby , type: :boolean, default: false
|
123
125
|
end
|
124
126
|
|
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.10",
|
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.10",
|
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,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
# lib/rails_app_generator/rag_initializer.rb
|
4
|
-
# rag.add_option :add_<%= data.name_snake %>
|
4
|
+
# rag.add_option :add_<%= data.name_snake %> , type: :boolean, default: false
|
5
5
|
|
6
6
|
module RailsAppGenerator
|
7
7
|
# Custom add-ons for RailsAppGenerator
|
@@ -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,7 +1,7 @@
|
|
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.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Cruwys
|
@@ -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
|
@@ -470,6 +486,7 @@ files:
|
|
470
486
|
- lib/rails_app_generator/addon.rb
|
471
487
|
- lib/rails_app_generator/addon_util.rb
|
472
488
|
- lib/rails_app_generator/addons/acts_as_list.rb
|
489
|
+
- lib/rails_app_generator/addons/administrate.rb
|
473
490
|
- lib/rails_app_generator/addons/annotate.rb
|
474
491
|
- lib/rails_app_generator/addons/bcrypt_ruby.rb
|
475
492
|
- lib/rails_app_generator/addons/browser.rb
|
@@ -496,6 +513,7 @@ files:
|
|
496
513
|
- lib/rails_app_generator/addons/public_suffix.rb
|
497
514
|
- lib/rails_app_generator/addons/pundit.rb
|
498
515
|
- lib/rails_app_generator/addons/rails_html_sanitizer.rb
|
516
|
+
- lib/rails_app_generator/addons/redcarpet.rb
|
499
517
|
- lib/rails_app_generator/addons/rspec.rb
|
500
518
|
- lib/rails_app_generator/addons/rubocop.rb
|
501
519
|
- lib/rails_app_generator/addons/scaffold.rb
|
@@ -541,6 +559,7 @@ files:
|
|
541
559
|
- package-lock.json
|
542
560
|
- package.json
|
543
561
|
- profiles/addons/acts_as_list.json
|
562
|
+
- profiles/addons/bcrypt_ruby.json
|
544
563
|
- profiles/addons/browser.json
|
545
564
|
- profiles/addons/chartkick.json
|
546
565
|
- profiles/addons/dotenv.json
|
@@ -553,6 +572,7 @@ files:
|
|
553
572
|
- profiles/addons/phony_rails.json
|
554
573
|
- profiles/addons/public_suffix.json
|
555
574
|
- profiles/addons/rails-html-sanitizer.json
|
575
|
+
- profiles/addons/redcarpet.json
|
556
576
|
- profiles/addons/rubocop.json
|
557
577
|
- profiles/addons/twilio_ruby.json
|
558
578
|
- profiles/application/printspeak.json
|
@@ -618,7 +638,6 @@ files:
|
|
618
638
|
- templates/thor_task/profile/after_template.rb
|
619
639
|
- templates/thor_task/profile/app/controllers/home_controller.rb
|
620
640
|
- templates/thor_task/profile/app/views/home/index.html.erb.tt
|
621
|
-
- templates/thor_task/profile/app/views/layouts/_alerts.html.erb.tt
|
622
641
|
- templates/thor_task/profile/app/views/layouts/_footer.html.erb.tt
|
623
642
|
- templates/thor_task/profile/app/views/layouts/_navbar.html.erb
|
624
643
|
- templates/thor_task/profile/app/views/layouts/application.html.erb.tt
|