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.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +23 -0
  3. data/after_templates/addons/bcrypt_ruby/_.rb +37 -0
  4. data/after_templates/addons/bcrypt_ruby/app/controllers/home_controller.rb +7 -0
  5. data/after_templates/addons/bcrypt_ruby/app/models/user.rb +20 -0
  6. data/after_templates/addons/bcrypt_ruby/app/views/home/index.html.erb +9 -0
  7. data/after_templates/addons/bcrypt_ruby/app/views/layouts/_footer.html.erb +3 -0
  8. data/after_templates/addons/bcrypt_ruby/app/views/layouts/_navbar.html.erb +5 -0
  9. data/after_templates/addons/bcrypt_ruby/app/views/layouts/application.html.erb +23 -0
  10. data/after_templates/addons/bcrypt_ruby/app/views/users/_form.html.erb +27 -0
  11. data/after_templates/addons/bcrypt_ruby/app/views/users/_user.html.erb +17 -0
  12. data/after_templates/addons/bcrypt_ruby/db/seeds.rb +3 -0
  13. data/after_templates/addons/redcarpet/_.rb +22 -0
  14. data/after_templates/addons/redcarpet/app/controllers/home_controller.rb +299 -0
  15. data/after_templates/addons/redcarpet/app/views/home/index.html.erb +5 -0
  16. data/after_templates/addons/redcarpet/app/views/layouts/_footer.html.erb +3 -0
  17. data/after_templates/addons/redcarpet/app/views/layouts/_navbar.html.erb +4 -0
  18. data/after_templates/addons/redcarpet/app/views/layouts/application.html.erb +23 -0
  19. data/docs/last_run/app_generator_class.json +16 -0
  20. data/docs/last_run/app_generator_data.json +4 -2
  21. data/docs/last_run/rails_options_class.json +16 -0
  22. data/docs/last_run/rails_options_data.json +4 -2
  23. data/lib/rails_app_generator/addons/bcrypt_ruby.rb +15 -0
  24. data/lib/rails_app_generator/addons/redcarpet.rb +13 -0
  25. data/lib/rails_app_generator/rag_initializer.rb +2 -0
  26. data/lib/rails_app_generator/version.rb +1 -1
  27. data/package-lock.json +2 -2
  28. data/package.json +1 -1
  29. data/profiles/addons/bcrypt_ruby.json +12 -0
  30. data/profiles/addons/redcarpet.json +12 -0
  31. data/tasks/profile.thor +0 -1
  32. data/templates/thor_task/profile/after_template.rb +1 -0
  33. data/templates/thor_task/profile/app/controllers/home_controller.rb +0 -3
  34. data/templates/thor_task/profile/app/views/home/index.html.erb.tt +0 -8
  35. data/templates/thor_task/profile/app/views/layouts/application.html.erb.tt +0 -5
  36. metadata +22 -3
  37. 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: 741a7b8a1f24f5287e02fffadea46a97f383e52598674edaf12741d16ff3d402
4
- data.tar.gz: c22870121507421a70589f0f43e17c39b8bf309b97674aae80a425022e1490d9
3
+ metadata.gz: 245051d1035ecf7bc5f83440de6bb0ef082b38f7db0ac1017e634fc3deacb28e
4
+ data.tar.gz: 1f230bce7bbfa02e7101bd7975f830d40f6076b88738687505dac78f20b90ce2
5
5
  SHA512:
6
- metadata.gz: d778c940bc53520709050b3c34d2aae1e083a2bc450c03fbcd288b67b21fcf24fa4b50e0b0c680b848c9cb0b0c7ccd24c26f8b65e6ff36843a4aff1505d7d1f2
7
- data.tar.gz: '099224eea8b76be2fe7dcfb49aa60200a8c85b0525508372ec24818901547200fc720fcffdd37d3c7e973cd2353238b24d42e20d271fbfb7486e5aaeb3c04712'
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,7 @@
1
+ class HomeController < ApplicationController
2
+ def index
3
+ end
4
+
5
+ def some_action
6
+ end
7
+ 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,3 @@
1
+ <footer>
2
+ <hr />
3
+ </footer>
@@ -0,0 +1,5 @@
1
+ <header>
2
+ <%= link_to 'Home', root_path %> |
3
+ <%= link_to 'Users', users_path %>
4
+ <hr />
5
+ </header>
@@ -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,3 @@
1
+ david = User.create(name: 'david', password: 'password1')
2
+ james = User.create(name: 'james', password: 'password2')
3
+ sally = User.create(name: 'sally', password: 'password3')
@@ -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,5 @@
1
+ <h1>Redcarpet</h1>
2
+
3
+ <h2>A fast, safe and extensible Markdown to (X)HTML parser</h2>
4
+
5
+ <%= @html %>
@@ -0,0 +1,3 @@
1
+ <footer>
2
+ <hr />
3
+ </footer>
@@ -0,0 +1,4 @@
1
+ <header>
2
+ <%= link_to 'Home', root_path %>
3
+ <hr />
4
+ </header>
@@ -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": true,
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/phony_rails/_.rb"
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/phony_rails/_.rb",
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": true,
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
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RailsAppGenerator
4
- VERSION = '0.2.6'
4
+ VERSION = '0.2.9'
5
5
  end
data/package-lock.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "rails_app_generator",
3
- "version": "0.2.6",
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.6",
9
+ "version": "0.2.9",
10
10
  "dependencies": {
11
11
  "daisyui": "^2.20.0"
12
12
  },
data/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rails_app_generator",
3
- "version": "0.2.6",
3
+ "version": "0.2.9",
4
4
  "description": "Create new Rails Application with custom opinions",
5
5
  "scripts": {
6
6
  "release": "semantic-release"
@@ -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])
@@ -33,6 +33,7 @@ def setup_db
33
33
  # add_scaffold('product', 'name', 'price:integer')
34
34
 
35
35
  # db_migrate
36
+ # db_seed
36
37
  end
37
38
 
38
39
  # Other template command examples
@@ -1,7 +1,4 @@
1
1
  class HomeController < ApplicationController
2
2
  def index
3
3
  end
4
-
5
- def some_action
6
- end
7
4
  end
@@ -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.6
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-10 00:00:00.000000000 Z
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
@@ -1,2 +0,0 @@
1
- <% flash.each do |type, msg| %><div class="<%= type %>"><%= msg %></div><% end %>
2
- <% if flash.any? %><hr /><% end %>