rails_app_generator 0.1.26 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
+ }