rails_app_generator 0.1.28 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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": false,
74
+ "required": false
75
+ },
76
+ {
77
+ "name": "pretend",
78
+ "description": "Run but do not make any changes",
79
+ "type": "boolean",
80
+ "default": false,
81
+ "required": false
82
+ },
83
+ {
84
+ "name": "quiet",
85
+ "description": "Suppress status output",
86
+ "type": "boolean",
87
+ "default": false,
88
+ "required": false
89
+ },
90
+ {
91
+ "name": "skip",
92
+ "description": "Skip files that already exist",
93
+ "type": "boolean",
94
+ "default": false,
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": "",
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": "",
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": false,
277
+ "required": false
278
+ },
279
+ {
280
+ "name": "version",
281
+ "description": "Show Rails version number and quit",
282
+ "type": "boolean",
283
+ "default": false,
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": false,
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": "",
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": "",
324
+ "type": "string",
325
+ "default": "rspec",
326
+ "required": false
327
+ },
328
+ {
329
+ "name": "add_acts_as_list",
330
+ "description": "",
331
+ "type": "boolean",
332
+ "default": false,
333
+ "required": false
334
+ },
335
+ {
336
+ "name": "add_browser",
337
+ "description": "",
338
+ "type": "boolean",
339
+ "default": false,
340
+ "required": false
341
+ },
342
+ {
343
+ "name": "add_chartkick",
344
+ "description": "",
345
+ "type": "boolean",
346
+ "default": false,
347
+ "required": false
348
+ },
349
+ {
350
+ "name": "add_faker",
351
+ "description": "",
352
+ "type": "boolean",
353
+ "default": false,
354
+ "required": false
355
+ },
356
+ {
357
+ "name": "add_groupdate",
358
+ "description": "",
359
+ "type": "boolean",
360
+ "default": false,
361
+ "required": false
362
+ },
363
+ {
364
+ "name": "add_hexapdf",
365
+ "description": "",
366
+ "type": "boolean",
367
+ "default": false,
368
+ "required": false
369
+ },
370
+ {
371
+ "name": "add_httparty",
372
+ "description": "",
373
+ "type": "boolean",
374
+ "default": false,
375
+ "required": false
376
+ },
377
+ {
378
+ "name": "add_honeybadger",
379
+ "description": "",
380
+ "type": "boolean",
381
+ "default": false,
382
+ "required": false
383
+ },
384
+ {
385
+ "name": "add_mini_magick",
386
+ "description": "Add Mini Magick gem",
387
+ "type": "boolean",
388
+ "default": false,
389
+ "required": false
390
+ },
391
+ {
392
+ "name": "add_rails_html_sanitizer",
393
+ "description": "",
394
+ "type": "boolean",
395
+ "default": false,
396
+ "required": false
397
+ },
398
+ {
399
+ "name": "add_twilio_ruby",
400
+ "description": "",
401
+ "type": "boolean",
402
+ "default": false,
403
+ "required": false
404
+ }
405
+ ]
406
+ }
@@ -0,0 +1,53 @@
1
+ {
2
+ "options": {
3
+ "skip_namespace": false,
4
+ "skip_collision_check": false,
5
+ "force": false,
6
+ "pretend": false,
7
+ "quiet": false,
8
+ "skip": false,
9
+ "ruby": "/Users/davidcruwys/.asdf/installs/ruby/2.7.6/bin/ruby",
10
+ "template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/addons/twilio_ruby/_.rb",
11
+ "database": "sqlite3",
12
+ "skip_git": true,
13
+ "skip_keeps": false,
14
+ "skip_action_mailer": false,
15
+ "skip_action_mailbox": false,
16
+ "skip_action_text": false,
17
+ "skip_active_record": false,
18
+ "skip_active_job": false,
19
+ "skip_active_storage": false,
20
+ "skip_action_cable": false,
21
+ "skip_asset_pipeline": false,
22
+ "asset_pipeline": "sprockets",
23
+ "skip_javascript": false,
24
+ "skip_hotwire": false,
25
+ "skip_jbuilder": false,
26
+ "skip_test": true,
27
+ "skip_system_test": false,
28
+ "skip_bootsnap": false,
29
+ "dev": false,
30
+ "edge": false,
31
+ "main": false,
32
+ "rc": "",
33
+ "no_rc": false,
34
+ "help": false,
35
+ "version": false,
36
+ "api": false,
37
+ "minimal": false,
38
+ "javascript": "importmap",
39
+ "css": "",
40
+ "skip_bundle": false,
41
+ "add_acts_as_list": false,
42
+ "add_browser": false,
43
+ "add_chartkick": false,
44
+ "add_faker": false,
45
+ "add_groupdate": false,
46
+ "add_hexapdf": false,
47
+ "add_httparty": false,
48
+ "add_honeybadger": false,
49
+ "add_mini_magick": false,
50
+ "add_rails_html_sanitizer": false,
51
+ "add_twilio_ruby": true
52
+ }
53
+ }
data/exe/rag CHANGED
@@ -22,6 +22,8 @@ elsif first == 'diff'
22
22
  elsif first == 'new'
23
23
  RailsAppGenerator::AppGenerator.start(ARGV[1..], destination_root: '/Users/davidcruwys/dev/kgems/rails_app_generator/a/rag')
24
24
  else
25
+ require 'rails_app_generator/rag_initializer'
26
+
25
27
  fallback_profile_path = File.expand_path("#{Pathname.new(__FILE__).dirname}/../profiles")
26
28
  args = ['profile'] + ARGV + ["--fallback-profile-path=#{fallback_profile_path}"]
27
29
 
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RailsAppGenerator
4
+ # Custom add-ons for RailsAppGenerator
5
+ module AddOns
6
+ # Add TwilioRuby to rails application
7
+ class TwilioRuby < RailsAppGenerator::Addon
8
+ required_gem gem.version('twilio-ruby', '5.70.0', 'The official library for communicating with the Twilio REST API, building TwiML, and generating Twilio JWT Capability Tokens')
9
+
10
+ def apply; end
11
+ end
12
+ end
13
+ end