rails_app_generator 0.1.26 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +2 -1
  3. data/CHANGELOG.md +23 -0
  4. data/after_templates/addons/acts_as_list/_.rb +0 -14
  5. data/after_templates/addons/mini_magick/_.rb +1 -1
  6. data/docs/last_run/app_generator_class.json +406 -0
  7. data/docs/last_run/app_generator_data.json +44 -0
  8. data/docs/last_run/rails_options_class.json +406 -0
  9. data/docs/last_run/rails_options_data.json +53 -0
  10. data/exe/rag +2 -0
  11. data/lib/rails_app_generator/{add_on.rb → addon.rb} +3 -26
  12. data/lib/rails_app_generator/addon_util.rb +21 -0
  13. data/lib/rails_app_generator/addons/acts_as_list.rb +1 -1
  14. data/lib/rails_app_generator/addons/annotate.rb +1 -1
  15. data/lib/rails_app_generator/addons/browser.rb +1 -1
  16. data/lib/rails_app_generator/addons/chartkick.rb +1 -1
  17. data/lib/rails_app_generator/addons/continuous_integration.rb +1 -1
  18. data/lib/rails_app_generator/addons/devise.rb +1 -1
  19. data/lib/rails_app_generator/addons/docker.rb +1 -1
  20. data/lib/rails_app_generator/addons/docker_compose.rb +1 -1
  21. data/lib/rails_app_generator/addons/dotenv.rb +1 -1
  22. data/lib/rails_app_generator/addons/factory_bot.rb +1 -1
  23. data/lib/rails_app_generator/addons/faker.rb +1 -1
  24. data/lib/rails_app_generator/addons/foreman.rb +1 -1
  25. data/lib/rails_app_generator/addons/generators.rb +1 -1
  26. data/lib/rails_app_generator/addons/groupdate.rb +1 -1
  27. data/lib/rails_app_generator/addons/hexapdf.rb +1 -1
  28. data/lib/rails_app_generator/addons/high_voltage.rb +1 -1
  29. data/lib/rails_app_generator/addons/honeybadger.rb +1 -1
  30. data/lib/rails_app_generator/addons/httparty.rb +1 -1
  31. data/lib/rails_app_generator/addons/inline_svg.rb +1 -1
  32. data/lib/rails_app_generator/addons/irbrc.rb +1 -1
  33. data/lib/rails_app_generator/addons/lograge.rb +1 -1
  34. data/lib/rails_app_generator/addons/mini_magick.rb +1 -1
  35. data/lib/rails_app_generator/addons/pundit.rb +1 -1
  36. data/lib/rails_app_generator/addons/rails_html_sanitizer.rb +1 -1
  37. data/lib/rails_app_generator/addons/rspec.rb +1 -1
  38. data/lib/rails_app_generator/addons/rubocop.rb +1 -1
  39. data/lib/rails_app_generator/addons/scaffold.rb +1 -1
  40. data/lib/rails_app_generator/addons/services.rb +1 -1
  41. data/lib/rails_app_generator/addons/sidekiq.rb +2 -2
  42. data/lib/rails_app_generator/addons/stimulus.rb +1 -1
  43. data/lib/rails_app_generator/addons/stimulus_components.rb +1 -1
  44. data/lib/rails_app_generator/addons/tailwind.rb +1 -1
  45. data/lib/rails_app_generator/addons/twilio_ruby.rb +13 -0
  46. data/lib/rails_app_generator/addons/views.rb +1 -1
  47. data/lib/rails_app_generator/app_generator.rb +39 -172
  48. data/lib/rails_app_generator/cli/profile.rb +3 -1
  49. data/lib/rails_app_generator/configuration/rag_configuration.rb +18 -0
  50. data/lib/rails_app_generator/configuration/rag_configuration_extension.rb +14 -0
  51. data/lib/rails_app_generator/context.rb +1 -1
  52. data/lib/rails_app_generator/dependencies.rb +2 -2
  53. data/lib/rails_app_generator/options/build_option.rb +14 -9
  54. data/lib/rails_app_generator/options/options_builder.rb +67 -44
  55. data/lib/rails_app_generator/options/rails_options.rb +6 -68
  56. data/lib/rails_app_generator/rag_initializer.rb +250 -0
  57. data/lib/rails_app_generator/util.rb +26 -0
  58. data/lib/rails_app_generator/version.rb +1 -1
  59. data/lib/rails_app_generator.rb +8 -3
  60. data/package-lock.json +2 -2
  61. data/package.json +1 -1
  62. data/profiles/addons/mini_magick.json +2 -1
  63. data/tasks/addon.thor +4 -4
  64. data/templates/thor_task/addon/addon.tt +3 -7
  65. metadata +26 -7
  66. data/lib/rails_app_generator/addons/xmen.rb +0 -17
  67. data/lib/rails_app_generator/generators/advisories_generator.rb +0 -18
  68. data/lib/rails_app_generator/generators/base.rb +0 -60
  69. data/lib/rails_app_generator/generators/foo_generator.rb +0 -17
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a5ea77384e055a075b31754caf54c6b789f30916bc54f5c0e60404c946acce4b
4
- data.tar.gz: a92a88e1257e65b9b01cde3133728deb9ac5a8b006d9664ebbe2930f3fe3101f
3
+ metadata.gz: 052b0200922794f65e09212ed6166d8e02282e26b81685dd0a6d919a01aea94f
4
+ data.tar.gz: '096d1ff29c99aa7571fab7f73bf4a8424213e4c3ae466d2511ea332b93d3d268'
5
5
  SHA512:
6
- metadata.gz: a5e1d349250ecec2990a02f2630eaad82f78ef849f528f85fd5dcd97f3d05ab7662912729b7e53093db01b876b1260b43e9ea38ed63e23daabb48acd8ee894f7
7
- data.tar.gz: b4053c0e0ade318de4a5f5d87fcb09e950565ee377d76859db23f4efe2112b1588968e975f1c220aefab6f2f10e76f64fbe8859db6420d4580e031af3958bf29
6
+ metadata.gz: 8fea5ce9e17b041b536aa5ab41bf13e6b932b46c7aaf7bfe4c041ab3bc689a2cc42d8a1fb94a825702a12991355c8b24ed6b92295e407bea3228b02884e5cccf
7
+ data.tar.gz: 68c8653e127153e0ac8e9e6baa2df8ee3ddfb10d00f4a06be4163d1193df6c26fe409a1a81890bea2404587c98b5119b0230cdbe8b40193ac28050bb5122eb29
data/.rubocop.yml CHANGED
@@ -13,13 +13,14 @@ AllCops:
13
13
  - "a/**/*"
14
14
  - "after_templates/**/*"
15
15
  - "templates/**/*"
16
+ - "lib/rails_app_generator/rag_initializer.rb"
16
17
 
17
18
  Metrics/BlockLength:
18
19
  Exclude:
19
20
  - "**/spec/**/*"
20
21
  - "*.gemspec"
21
22
  - "lib/rails_app_generator/app_generator.rb"
22
- IgnoredMethods:
23
+ AllowedMethods:
23
24
  - configure
24
25
  - context
25
26
  - define
data/CHANGELOG.md CHANGED
@@ -1,3 +1,26 @@
1
+ ## [0.1.28](https://github.com/klueless-io/rails_app_generator/compare/v0.1.27...v0.1.28) (2022-08-06)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * refactor Addon ([0c9add2](https://github.com/klueless-io/rails_app_generator/commit/0c9add25a438130cd643466aa9a6af2cb9c50b03))
7
+ * rename registered_option to class_option ([a12d802](https://github.com/klueless-io/rails_app_generator/commit/a12d80211038f0bef88f2a051026368e3dadbf6e))
8
+
9
+ ## [0.1.27](https://github.com/klueless-io/rails_app_generator/compare/v0.1.26...v0.1.27) (2022-08-06)
10
+
11
+
12
+ ### Bug Fixes
13
+
14
+ * add addon_util and specs ([55e96be](https://github.com/klueless-io/rails_app_generator/commit/55e96bef66e05f33c7c1c1347fd04ff70166d352))
15
+
16
+ ## [0.1.26](https://github.com/klueless-io/rails_app_generator/compare/v0.1.25...v0.1.26) (2022-08-06)
17
+
18
+
19
+ ### Bug Fixes
20
+
21
+ * profile mini_magick ([f44b932](https://github.com/klueless-io/rails_app_generator/commit/f44b932df8fa7d817e2064d74af49476f82710d3))
22
+ * profile mini_magick ([6935964](https://github.com/klueless-io/rails_app_generator/commit/69359640e7791691052aac1496b43aa1a5fd99c0))
23
+
1
24
  ## [0.1.25](https://github.com/klueless-io/rails_app_generator/compare/v0.1.24...v0.1.25) (2022-08-06)
2
25
 
3
26
 
@@ -46,17 +46,3 @@ def setup_db
46
46
  db_migrate
47
47
  rails_command('db:seed')
48
48
  end
49
-
50
- # Other template command examples
51
- # css_install('tailwind')
52
- # rails_command('db:migrate')
53
- # bundle_add('hotwire-rails')
54
- # rails_command('hotwire:install')
55
- # run('bin/importmap pin sortablejs')
56
- # run('npm install daisyui')
57
- # create_file 'app/assets/stylesheets/custom-bootstrap-import.scss' , read_template('custom-bootstrap-import.scss')
58
- # append_to_file 'app/assets/config/manifest.js' , read_template('manifest.js')
59
- # insert_into_file 'app/views/layouts/application.html.erb', read_template('application.html.erb'),
60
- # before: %( <%= javascript_include_tag "application", "data-turbo-track": "reload", defer: true %>)
61
- # gsub_file 'app/views/layouts/application.html.erb', %(container mx-auto mt-28 px-5 flex), 'container mx-auto px-5'
62
- # template 'home.css', 'app/assets/stylesheets/home.css'
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # require 'pry'
3
+ require 'pry'
4
4
 
5
5
  # Manipulate images with minimal use of memory via ImageMagick / GraphicsMagick
6
6
  #
@@ -0,0 +1,406 @@
1
+ {
2
+ "class_option_keys": [
3
+ "skip_namespace",
4
+ "skip_collision_check",
5
+ "force",
6
+ "pretend",
7
+ "quiet",
8
+ "skip",
9
+ "ruby",
10
+ "template",
11
+ "database",
12
+ "skip_git",
13
+ "skip_keeps",
14
+ "skip_action_mailer",
15
+ "skip_action_mailbox",
16
+ "skip_action_text",
17
+ "skip_active_record",
18
+ "skip_active_job",
19
+ "skip_active_storage",
20
+ "skip_action_cable",
21
+ "skip_asset_pipeline",
22
+ "asset_pipeline",
23
+ "skip_javascript",
24
+ "skip_hotwire",
25
+ "skip_jbuilder",
26
+ "skip_test",
27
+ "skip_system_test",
28
+ "skip_bootsnap",
29
+ "dev",
30
+ "edge",
31
+ "main",
32
+ "rc",
33
+ "no_rc",
34
+ "help",
35
+ "version",
36
+ "api",
37
+ "minimal",
38
+ "javascript",
39
+ "css",
40
+ "skip_bundle",
41
+ "test",
42
+ "add_acts_as_list",
43
+ "add_browser",
44
+ "add_chartkick",
45
+ "add_faker",
46
+ "add_groupdate",
47
+ "add_hexapdf",
48
+ "add_httparty",
49
+ "add_honeybadger",
50
+ "add_mini_magick",
51
+ "add_rails_html_sanitizer",
52
+ "add_twilio_ruby"
53
+ ],
54
+ "class_options": [
55
+ {
56
+ "name": "skip_namespace",
57
+ "description": "Skip namespace (affects only isolated engines)",
58
+ "type": "boolean",
59
+ "default": false,
60
+ "required": false
61
+ },
62
+ {
63
+ "name": "skip_collision_check",
64
+ "description": "Skip collision check",
65
+ "type": "boolean",
66
+ "default": false,
67
+ "required": false
68
+ },
69
+ {
70
+ "name": "force",
71
+ "description": "Overwrite files that already exist",
72
+ "type": "boolean",
73
+ "default": null,
74
+ "required": false
75
+ },
76
+ {
77
+ "name": "pretend",
78
+ "description": "Run but do not make any changes",
79
+ "type": "boolean",
80
+ "default": null,
81
+ "required": false
82
+ },
83
+ {
84
+ "name": "quiet",
85
+ "description": "Suppress status output",
86
+ "type": "boolean",
87
+ "default": null,
88
+ "required": false
89
+ },
90
+ {
91
+ "name": "skip",
92
+ "description": "Skip files that already exist",
93
+ "type": "boolean",
94
+ "default": null,
95
+ "required": false
96
+ },
97
+ {
98
+ "name": "ruby",
99
+ "description": "Path to the Ruby binary of your choice",
100
+ "type": "string",
101
+ "default": "/Users/davidcruwys/.asdf/installs/ruby/2.7.6/bin/ruby",
102
+ "required": false
103
+ },
104
+ {
105
+ "name": "template",
106
+ "description": "Path to some application template (can be a filesystem path or URL)",
107
+ "type": "string",
108
+ "default": null,
109
+ "required": false
110
+ },
111
+ {
112
+ "name": "database",
113
+ "description": "Preconfigure for selected database (options: mysql/postgresql/sqlite3/oracle/sqlserver/jdbcmysql/jdbcsqlite3/jdbcpostgresql/jdbc)",
114
+ "type": "string",
115
+ "default": "sqlite3",
116
+ "required": false
117
+ },
118
+ {
119
+ "name": "skip_git",
120
+ "description": "Skip .gitignore file",
121
+ "type": "boolean",
122
+ "default": false,
123
+ "required": false
124
+ },
125
+ {
126
+ "name": "skip_keeps",
127
+ "description": "Skip source control .keep files",
128
+ "type": "boolean",
129
+ "default": false,
130
+ "required": false
131
+ },
132
+ {
133
+ "name": "skip_action_mailer",
134
+ "description": "Skip Action Mailer files",
135
+ "type": "boolean",
136
+ "default": false,
137
+ "required": false
138
+ },
139
+ {
140
+ "name": "skip_action_mailbox",
141
+ "description": "Skip Action Mailbox gem",
142
+ "type": "boolean",
143
+ "default": false,
144
+ "required": false
145
+ },
146
+ {
147
+ "name": "skip_action_text",
148
+ "description": "Skip Action Text gem",
149
+ "type": "boolean",
150
+ "default": false,
151
+ "required": false
152
+ },
153
+ {
154
+ "name": "skip_active_record",
155
+ "description": "Skip Active Record files",
156
+ "type": "boolean",
157
+ "default": false,
158
+ "required": false
159
+ },
160
+ {
161
+ "name": "skip_active_job",
162
+ "description": "Skip Active Job",
163
+ "type": "boolean",
164
+ "default": false,
165
+ "required": false
166
+ },
167
+ {
168
+ "name": "skip_active_storage",
169
+ "description": "Skip Active Storage files",
170
+ "type": "boolean",
171
+ "default": false,
172
+ "required": false
173
+ },
174
+ {
175
+ "name": "skip_action_cable",
176
+ "description": "Skip Action Cable files",
177
+ "type": "boolean",
178
+ "default": false,
179
+ "required": false
180
+ },
181
+ {
182
+ "name": "skip_asset_pipeline",
183
+ "description": "Indicates when to generate skip asset pipeline",
184
+ "type": "boolean",
185
+ "default": false,
186
+ "required": false
187
+ },
188
+ {
189
+ "name": "asset_pipeline",
190
+ "description": "Choose your asset pipeline [options: sprockets (default), propshaft]",
191
+ "type": "string",
192
+ "default": "sprockets",
193
+ "required": false
194
+ },
195
+ {
196
+ "name": "skip_javascript",
197
+ "description": "Skip JavaScript files",
198
+ "type": "boolean",
199
+ "default": false,
200
+ "required": false
201
+ },
202
+ {
203
+ "name": "skip_hotwire",
204
+ "description": "Skip Hotwire integration",
205
+ "type": "boolean",
206
+ "default": false,
207
+ "required": false
208
+ },
209
+ {
210
+ "name": "skip_jbuilder",
211
+ "description": "Skip jbuilder gem",
212
+ "type": "boolean",
213
+ "default": false,
214
+ "required": false
215
+ },
216
+ {
217
+ "name": "skip_test",
218
+ "description": "Skip test files",
219
+ "type": "boolean",
220
+ "default": false,
221
+ "required": false
222
+ },
223
+ {
224
+ "name": "skip_system_test",
225
+ "description": "Skip system test files",
226
+ "type": "boolean",
227
+ "default": false,
228
+ "required": false
229
+ },
230
+ {
231
+ "name": "skip_bootsnap",
232
+ "description": "Skip bootsnap gem",
233
+ "type": "boolean",
234
+ "default": false,
235
+ "required": false
236
+ },
237
+ {
238
+ "name": "dev",
239
+ "description": "Set up the application with Gemfile pointing to your Rails checkout",
240
+ "type": "boolean",
241
+ "default": false,
242
+ "required": false
243
+ },
244
+ {
245
+ "name": "edge",
246
+ "description": "Set up the application with Gemfile pointing to Rails repository",
247
+ "type": "boolean",
248
+ "default": false,
249
+ "required": false
250
+ },
251
+ {
252
+ "name": "main",
253
+ "description": "Set up the application with Gemfile pointing to Rails repository main branch",
254
+ "type": "boolean",
255
+ "default": false,
256
+ "required": false
257
+ },
258
+ {
259
+ "name": "rc",
260
+ "description": "Path to file containing extra configuration options for rails command",
261
+ "type": "string",
262
+ "default": null,
263
+ "required": false
264
+ },
265
+ {
266
+ "name": "no_rc",
267
+ "description": "Skip loading of extra configuration options from .railsrc file",
268
+ "type": "boolean",
269
+ "default": false,
270
+ "required": false
271
+ },
272
+ {
273
+ "name": "help",
274
+ "description": "Show this help message and quit",
275
+ "type": "boolean",
276
+ "default": null,
277
+ "required": false
278
+ },
279
+ {
280
+ "name": "version",
281
+ "description": "Show Rails version number and quit",
282
+ "type": "boolean",
283
+ "default": null,
284
+ "required": false
285
+ },
286
+ {
287
+ "name": "api",
288
+ "description": "Preconfigure smaller stack for API only apps",
289
+ "type": "boolean",
290
+ "default": false,
291
+ "required": false
292
+ },
293
+ {
294
+ "name": "minimal",
295
+ "description": "Preconfigure a minimal rails app",
296
+ "type": "boolean",
297
+ "default": null,
298
+ "required": false
299
+ },
300
+ {
301
+ "name": "javascript",
302
+ "description": "Choose JavaScript approach [options: importmap (default), webpack, esbuild, rollup]",
303
+ "type": "string",
304
+ "default": "importmap",
305
+ "required": false
306
+ },
307
+ {
308
+ "name": "css",
309
+ "description": "Choose CSS processor [options: tailwind, bootstrap, bulma, postcss, sass... check https://github.com/rails/cssbundling-rails]",
310
+ "type": "string",
311
+ "default": null,
312
+ "required": false
313
+ },
314
+ {
315
+ "name": "skip_bundle",
316
+ "description": "Don't run bundle install",
317
+ "type": "boolean",
318
+ "default": false,
319
+ "required": false
320
+ },
321
+ {
322
+ "name": "test",
323
+ "description": "Indicates when to generate test",
324
+ "type": "string",
325
+ "default": "rspec",
326
+ "required": false
327
+ },
328
+ {
329
+ "name": "add_acts_as_list",
330
+ "description": "Indicates when to generate add acts as list",
331
+ "type": "boolean",
332
+ "default": false,
333
+ "required": false
334
+ },
335
+ {
336
+ "name": "add_browser",
337
+ "description": "Indicates when to generate add browser",
338
+ "type": "boolean",
339
+ "default": false,
340
+ "required": false
341
+ },
342
+ {
343
+ "name": "add_chartkick",
344
+ "description": "Indicates when to generate add chartkick",
345
+ "type": "boolean",
346
+ "default": false,
347
+ "required": false
348
+ },
349
+ {
350
+ "name": "add_faker",
351
+ "description": "Indicates when to generate add faker",
352
+ "type": "boolean",
353
+ "default": false,
354
+ "required": false
355
+ },
356
+ {
357
+ "name": "add_groupdate",
358
+ "description": "Indicates when to generate add groupdate",
359
+ "type": "boolean",
360
+ "default": false,
361
+ "required": false
362
+ },
363
+ {
364
+ "name": "add_hexapdf",
365
+ "description": "Indicates when to generate add hexapdf",
366
+ "type": "boolean",
367
+ "default": false,
368
+ "required": false
369
+ },
370
+ {
371
+ "name": "add_httparty",
372
+ "description": "Indicates when to generate add httparty",
373
+ "type": "boolean",
374
+ "default": false,
375
+ "required": false
376
+ },
377
+ {
378
+ "name": "add_honeybadger",
379
+ "description": "Indicates when to generate add honeybadger",
380
+ "type": "boolean",
381
+ "default": false,
382
+ "required": false
383
+ },
384
+ {
385
+ "name": "add_mini_magick",
386
+ "description": "Indicates when to generate add mini magick",
387
+ "type": "boolean",
388
+ "default": false,
389
+ "required": false
390
+ },
391
+ {
392
+ "name": "add_rails_html_sanitizer",
393
+ "description": "Indicates when to generate add rails html sanitizer",
394
+ "type": "boolean",
395
+ "default": false,
396
+ "required": false
397
+ },
398
+ {
399
+ "name": "add_twilio_ruby",
400
+ "description": "Indicates when to generate add twilio ruby",
401
+ "type": "boolean",
402
+ "default": false,
403
+ "required": false
404
+ }
405
+ ]
406
+ }
@@ -0,0 +1,44 @@
1
+ {
2
+ "options": {
3
+ "skip_namespace": false,
4
+ "skip_collision_check": false,
5
+ "ruby": "/Users/davidcruwys/.asdf/installs/ruby/2.7.6/bin/ruby",
6
+ "database": "sqlite3",
7
+ "skip_git": true,
8
+ "skip_keeps": false,
9
+ "skip_action_mailer": false,
10
+ "skip_action_mailbox": false,
11
+ "skip_action_text": false,
12
+ "skip_active_record": false,
13
+ "skip_active_job": false,
14
+ "skip_active_storage": false,
15
+ "skip_action_cable": false,
16
+ "skip_asset_pipeline": false,
17
+ "asset_pipeline": "sprockets",
18
+ "skip_javascript": false,
19
+ "skip_hotwire": false,
20
+ "skip_jbuilder": false,
21
+ "skip_test": true,
22
+ "skip_system_test": false,
23
+ "skip_bootsnap": false,
24
+ "dev": false,
25
+ "edge": false,
26
+ "main": false,
27
+ "no_rc": false,
28
+ "api": false,
29
+ "javascript": "importmap",
30
+ "skip_bundle": false,
31
+ "add_acts_as_list": false,
32
+ "add_browser": false,
33
+ "add_chartkick": false,
34
+ "add_faker": false,
35
+ "add_groupdate": false,
36
+ "add_hexapdf": false,
37
+ "add_httparty": false,
38
+ "add_honeybadger": false,
39
+ "add_mini_magick": false,
40
+ "add_rails_html_sanitizer": false,
41
+ "add_twilio_ruby": true,
42
+ "template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/addons/twilio_ruby/_.rb"
43
+ }
44
+ }