rails_template_18f 0.2.0 → 0.4.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +18 -0
- data/Gemfile +0 -2
- data/Gemfile.lock +3 -2
- data/README.md +12 -15
- data/exe/rails_template_18f +60 -0
- data/lib/generators/rails_template18f/active_storage/active_storage_generator.rb +142 -0
- data/lib/generators/rails_template18f/active_storage/templates/app/jobs/file_scan_job.rb +33 -0
- data/lib/generators/rails_template18f/active_storage/templates/app/models/file_upload.rb +25 -0
- data/lib/generators/rails_template18f/active_storage/templates/doc/adr/clamav.md.tt +30 -0
- data/lib/generators/rails_template18f/active_storage/templates/spec/jobs/file_scan_job_spec.rb +35 -0
- data/lib/generators/rails_template18f/active_storage/templates/spec/models/file_upload_spec.rb +38 -0
- data/lib/generators/rails_template18f/circleci/circleci_generator.rb +4 -1
- data/lib/generators/rails_template18f/cloud_gov_config/cloud_gov_config_generator.rb +29 -0
- data/lib/generators/rails_template18f/cloud_gov_config/templates/app/models/cloud_gov_config.rb +15 -0
- data/lib/generators/rails_template18f/cloud_gov_config/templates/spec/models/cloud_gov_config_spec.rb +44 -0
- data/lib/generators/rails_template18f/i18n/i18n_generator.rb +106 -0
- data/{templates → lib/generators/rails_template18f/i18n/templates}/config/locales/en.yml.tt +3 -3
- data/{templates → lib/generators/rails_template18f/i18n/templates}/config/locales/es.yml +3 -3
- data/{templates → lib/generators/rails_template18f/i18n/templates}/config/locales/fr.yml +3 -6
- data/{templates → lib/generators/rails_template18f/i18n/templates}/config/locales/zh.yml +0 -0
- data/lib/generators/rails_template18f/i18n_js/i18n_js_generator.rb +59 -0
- data/lib/generators/rails_template18f/i18n_js/templates/lib/tasks/i18n.rake +9 -0
- data/lib/generators/rails_template18f/newrelic/newrelic_generator.rb +2 -0
- data/lib/generators/rails_template18f/sidekiq/sidekiq_generator.rb +72 -0
- data/lib/generators/rails_template18f/sidekiq/templates/config/initializers/redis.rb +14 -0
- data/lib/generators/rails_template18f/terraform/templates/terraform/production/main.tf.tt +37 -5
- data/lib/generators/rails_template18f/terraform/templates/terraform/shared/clamav/main.tf.tt +50 -0
- data/lib/generators/rails_template18f/terraform/templates/terraform/shared/clamav/providers.tf +16 -0
- data/lib/generators/rails_template18f/terraform/templates/terraform/shared/clamav/variables.tf +47 -0
- data/lib/generators/rails_template18f/terraform/templates/terraform/shared/redis/main.tf.tt +23 -0
- data/lib/generators/rails_template18f/terraform/templates/terraform/shared/redis/providers.tf +16 -0
- data/lib/generators/rails_template18f/terraform/templates/terraform/shared/redis/variables.tf +42 -0
- data/lib/generators/rails_template18f/terraform/templates/terraform/staging/main.tf.tt +37 -5
- data/lib/generators/rails_template18f/terraform/terraform_generator.rb +0 -11
- data/lib/rails_template18f/app_updater.rb +19 -0
- data/lib/rails_template18f/generators/base.rb +37 -5
- data/lib/rails_template18f/generators/cloud_gov_options.rb +0 -4
- data/lib/rails_template18f/version.rb +1 -1
- data/rails-template-18f.gemspec +2 -0
- data/template.rb +78 -96
- data/templates/config/deployment/staging.yml +1 -1
- data/templates/config/environments/ci.rb +0 -1
- data/templates/doc/compliance/apps/application.boundary.md.tt +0 -7
- metadata +59 -8
@@ -1,15 +1,13 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require "bundler"
|
4
|
+
|
3
5
|
module RailsTemplate18f
|
4
6
|
module Generators
|
5
7
|
module Base
|
6
8
|
extend ActiveSupport::Concern
|
7
9
|
include ::Rails::Generators::AppName
|
8
10
|
|
9
|
-
included do
|
10
|
-
self.source_path = RailsTemplate18f::Generators.const_source_location(name).first
|
11
|
-
end
|
12
|
-
|
13
11
|
class_methods do
|
14
12
|
attr_accessor :source_path
|
15
13
|
|
@@ -18,19 +16,53 @@ module RailsTemplate18f
|
|
18
16
|
end
|
19
17
|
end
|
20
18
|
|
19
|
+
included do
|
20
|
+
self.source_path = RailsTemplate18f::Generators.const_source_location(name).first
|
21
|
+
end
|
22
|
+
|
21
23
|
private
|
22
24
|
|
25
|
+
def bundle_install
|
26
|
+
Bundler.with_original_env do
|
27
|
+
in_root do
|
28
|
+
run "bundle install"
|
29
|
+
yield if block_given?
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def gem_installed?(gem_name)
|
35
|
+
file_content("Gemfile").match?(/gem "#{gem_name}"/)
|
36
|
+
end
|
37
|
+
|
23
38
|
def file_content(filename)
|
24
|
-
File.
|
39
|
+
file_path = File.expand_path(filename, destination_root)
|
40
|
+
if File.exist? file_path
|
41
|
+
File.read(file_path)
|
42
|
+
else
|
43
|
+
""
|
44
|
+
end
|
25
45
|
end
|
26
46
|
|
27
47
|
def ruby_version
|
28
48
|
RUBY_VERSION
|
29
49
|
end
|
30
50
|
|
51
|
+
def terraform_dir_exists?
|
52
|
+
Dir.exist? File.expand_path("terraform", destination_root)
|
53
|
+
end
|
54
|
+
|
31
55
|
def skip_git?
|
32
56
|
!Dir.exist?(File.expand_path(".git", destination_root))
|
33
57
|
end
|
58
|
+
|
59
|
+
def has_active_job?
|
60
|
+
defined?(::ActiveJob)
|
61
|
+
end
|
62
|
+
|
63
|
+
def has_active_storage?
|
64
|
+
defined?(::ActiveStorage)
|
65
|
+
end
|
34
66
|
end
|
35
67
|
end
|
36
68
|
end
|
data/rails-template-18f.gemspec
CHANGED
@@ -33,6 +33,8 @@ Gem::Specification.new do |spec|
|
|
33
33
|
# guide at: https://bundler.io/guides/creating_gem.html
|
34
34
|
spec.add_dependency "railties", "~> 7.0.0"
|
35
35
|
spec.add_dependency "activesupport", "~> 7.0.0"
|
36
|
+
spec.add_dependency "thor", "~> 1.0"
|
37
|
+
spec.add_dependency "colorize", "~> 0.8"
|
36
38
|
|
37
39
|
spec.add_development_dependency "rspec", "~> 3.11"
|
38
40
|
spec.add_development_dependency "ammeter", "~> 1.1"
|
data/template.rb
CHANGED
@@ -10,6 +10,10 @@ def skip_git?
|
|
10
10
|
!!options[:skip_git]
|
11
11
|
end
|
12
12
|
|
13
|
+
def skip_active_job?
|
14
|
+
!!options[:skip_active_job]
|
15
|
+
end
|
16
|
+
|
13
17
|
def webpack?
|
14
18
|
adjusted_javascript_option == "webpack"
|
15
19
|
end
|
@@ -48,24 +52,24 @@ unless Gem::Dependency.new("rails", "~> 7.0.0").match?("rails", Rails.gem_versio
|
|
48
52
|
end
|
49
53
|
|
50
54
|
# ask setup questions
|
51
|
-
|
55
|
+
terraform = yes?("Create terraform files for cloud.gov services? (y/n)")
|
52
56
|
@cloud_gov_organization = ask("What is your cloud.gov organization name? (Leave blank to fill in later)")
|
53
57
|
default_staging_space = "staging"
|
54
|
-
|
58
|
+
cloud_gov_staging_space = ask("What is your cloud.gov staging space name? (Default: #{default_staging_space})")
|
55
59
|
default_prod_space = "prod"
|
56
|
-
|
60
|
+
cloud_gov_production_space = ask("What is your cloud.gov production space name? (Default: #{default_prod_space})")
|
57
61
|
@cloud_gov_organization = "TKTK-cloud.gov-org-name" if @cloud_gov_organization.blank?
|
58
|
-
|
59
|
-
|
62
|
+
cloud_gov_staging_space = default_staging_space if cloud_gov_staging_space.blank?
|
63
|
+
cloud_gov_production_space = default_prod_space if cloud_gov_production_space.blank?
|
60
64
|
|
61
65
|
@github_actions = yes?("Create Github Actions? (y/n)")
|
62
66
|
@circleci_pipeline = yes?("Create CircleCI config? (y/n)")
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
67
|
+
newrelic = yes?("Create FEDRAMP New Relic config files? (y/n)")
|
68
|
+
dap = yes?("If this will be a public site, should we include Digital Analytics Program code? (y/n)")
|
69
|
+
supported_languages = []
|
70
|
+
supported_languages.push(:es) if yes?("Add Spanish to supported locales, with starter es.yml? (y/n)")
|
71
|
+
supported_languages.push(:fr) if yes?("Add French to supported locales, with starter fr.yml? (y/n)")
|
72
|
+
supported_languages.push(:zh) if yes?("Add Simplified Chinese to supported locales, with starter zh.yml? (y/n)")
|
69
73
|
|
70
74
|
running_node_version = `node --version`.gsub(/^v/, "").strip
|
71
75
|
@node_version = ask("What version of NodeJS are you using? (Default: #{running_node_version})")
|
@@ -168,24 +172,13 @@ uncomment_lines csp_initializer, "Rails.application"
|
|
168
172
|
uncomment_lines csp_initializer, /end$/
|
169
173
|
uncomment_lines csp_initializer, "content_security_policy_nonce"
|
170
174
|
|
171
|
-
|
172
|
-
after_bundle do
|
173
|
-
generate "rails_template18f:newrelic"
|
174
|
-
end
|
175
|
-
register_announcement("New Relic", <<~EOM)
|
176
|
-
A New Relic config file has been written to `config/newrelic.yml`
|
177
|
-
|
178
|
-
See instructions in README to get started sending data to New Relic
|
179
|
-
EOM
|
180
|
-
end
|
181
|
-
|
175
|
+
# install development & testing gems
|
182
176
|
gem_group :development, :test do
|
183
177
|
gem "rspec-rails", "~> 5.1"
|
184
178
|
gem "dotenv-rails", "~> 2.7"
|
185
179
|
gem "brakeman", "~> 5.2"
|
186
180
|
gem "bundler-audit", "~> 0.9"
|
187
181
|
gem "standard", "~> 1.7"
|
188
|
-
gem "i18n-tasks", "~> 0.9"
|
189
182
|
end
|
190
183
|
if ENV["RT_DEV"] == "true"
|
191
184
|
gem "rails_template_18f", group: :development, path: ENV["PWD"]
|
@@ -198,7 +191,9 @@ copy_file "env", ".env"
|
|
198
191
|
copy_file "githooks/pre-commit", ".githooks/pre-commit", mode: :preserve
|
199
192
|
|
200
193
|
unless skip_git?
|
201
|
-
|
194
|
+
after_bundle do
|
195
|
+
rails_command "credentials:diff --enroll"
|
196
|
+
end
|
202
197
|
append_to_file ".gitignore", <<~EOM
|
203
198
|
|
204
199
|
# Ignore local dotenv overrides
|
@@ -213,27 +208,7 @@ unless skip_git?
|
|
213
208
|
EOM
|
214
209
|
end
|
215
210
|
|
216
|
-
#
|
217
|
-
@supported_languages.each do |language|
|
218
|
-
template "config/locales/#{language}.yml", force: true
|
219
|
-
end
|
220
|
-
application "config.i18n.available_locales = #{@supported_languages}"
|
221
|
-
application "config.i18n.fallbacks = [:en]"
|
222
|
-
after_bundle do
|
223
|
-
# Recommended by i18n-tasks
|
224
|
-
run "cp $(i18n-tasks gem-path)/templates/config/i18n-tasks.yml config/"
|
225
|
-
end
|
226
|
-
insert_into_file "app/helpers/application_helper.rb", <<'EOH', before: /^end$/
|
227
|
-
def format_active_locale(locale_string)
|
228
|
-
link_classes = "usa-nav__link"
|
229
|
-
if locale_string.to_sym == I18n.locale
|
230
|
-
link_classes = "#{link_classes} usa-current"
|
231
|
-
end
|
232
|
-
link_to t("shared.languages.#{locale_string}"), root_path(locale: locale_string), class: link_classes
|
233
|
-
end
|
234
|
-
EOH
|
235
|
-
|
236
|
-
# setup USWDS
|
211
|
+
# setup USWDS and asset pipeline
|
237
212
|
copy_file "browserslistrc", ".browserslistrc" if webpack?
|
238
213
|
uncomment_lines "Gemfile", "sassc-rails" # use sassc-rails for asset minification in prod
|
239
214
|
after_bundle do
|
@@ -285,7 +260,7 @@ after_bundle do
|
|
285
260
|
@import "uswds-settings.scss";
|
286
261
|
@import "../../../node_modules/uswds/dist/scss/uswds.scss";
|
287
262
|
EOCSS
|
288
|
-
gsub_file "app/views/layouts/application.html.erb", "<html>",
|
263
|
+
gsub_file "app/views/layouts/application.html.erb", "<html>", '<html lang="<%= I18n.locale %>">'
|
289
264
|
gsub_file "app/views/layouts/application.html.erb", /^\s+<%= yield %>/, <<-EOHTML
|
290
265
|
<%= render "application/usa_banner" %>
|
291
266
|
<%= render "application/header" %>
|
@@ -300,32 +275,14 @@ end
|
|
300
275
|
directory "app/views/application"
|
301
276
|
|
302
277
|
after_bundle do
|
278
|
+
# install and configure RSpec
|
303
279
|
generate "rspec:install"
|
304
280
|
gsub_file "spec/spec_helper.rb", /^=(begin|end)$/, ""
|
305
281
|
|
306
|
-
# Setup the PagesController
|
282
|
+
# Setup the PagesController and home (root) route
|
307
283
|
generate :controller, "pages", "home", "--skip-routes", "--no-helper", "--no-assets"
|
284
|
+
route "root 'pages#home'"
|
308
285
|
|
309
|
-
if @supported_languages.count > 1
|
310
|
-
locale_switching = <<~EOM
|
311
|
-
around_action :switch_locale
|
312
|
-
|
313
|
-
def switch_locale(&action)
|
314
|
-
locale = params[:locale] || I18n.default_locale
|
315
|
-
I18n.with_locale(locale, &action)
|
316
|
-
end
|
317
|
-
EOM
|
318
|
-
insert_into_file "app/controllers/application_controller.rb", locale_switching, before: /^end/
|
319
|
-
|
320
|
-
route <<-'EOM'
|
321
|
-
scope "(:locale)", locale: /#{I18n.available_locales.join('|')}/ do
|
322
|
-
# Your application routes here
|
323
|
-
root 'pages#home'
|
324
|
-
end
|
325
|
-
EOM
|
326
|
-
else
|
327
|
-
route "root 'pages#home'"
|
328
|
-
end
|
329
286
|
gsub_file "spec/requests/pages_spec.rb", "/pages/home", "/"
|
330
287
|
gsub_file "spec/views/pages/home.html.erb_spec.rb", " pending \"add some examples to (or delete) \#{__FILE__}\"", <<-EOM
|
331
288
|
it "displays the gov banner" do
|
@@ -334,26 +291,46 @@ after_bundle do
|
|
334
291
|
end
|
335
292
|
EOM
|
336
293
|
|
337
|
-
|
338
|
-
|
339
|
-
|
294
|
+
# Setup translations
|
295
|
+
generate "rails_template18f:i18n", "--languages=#{supported_languages.join(",")}", "--force"
|
296
|
+
end
|
297
|
+
|
298
|
+
# install ADRs and compliance documentation
|
299
|
+
directory "doc"
|
300
|
+
register_announcement("Documentation", <<~EOM)
|
301
|
+
* Include a short description of your application in doc/compliance/apps/application.boundary.md
|
302
|
+
* Remember to keep your Logical Data Model up to date in doc/compliance/apps/data.logical.md
|
303
|
+
EOM
|
304
|
+
|
305
|
+
if newrelic
|
306
|
+
after_bundle do
|
307
|
+
generate "rails_template18f:newrelic"
|
340
308
|
end
|
309
|
+
register_announcement("New Relic", <<~EOM)
|
310
|
+
A New Relic config file has been written to `config/newrelic.yml`
|
311
|
+
|
312
|
+
See instructions in README to get started sending data to New Relic
|
313
|
+
EOM
|
314
|
+
end
|
315
|
+
|
316
|
+
if dap
|
317
|
+
after_bundle do
|
318
|
+
generate "rails_template18f:dap"
|
319
|
+
end
|
320
|
+
register_announcement("Digital Analytics Program", "Update the DAP agency code in app/views/layouts/application.html.erb")
|
341
321
|
end
|
342
322
|
|
343
323
|
# infrastructure & deploy
|
344
324
|
template "manifest.yml"
|
345
325
|
copy_file "lib/tasks/cf.rake"
|
346
326
|
directory "config/deployment"
|
347
|
-
after_bundle do
|
348
|
-
run "cp .gitignore .cfignore" unless skip_git?
|
349
|
-
end
|
350
327
|
|
351
|
-
if
|
328
|
+
if terraform
|
352
329
|
after_bundle do
|
353
330
|
generator_arguments = [
|
354
331
|
"--cg-org=#{@cloud_gov_organization}",
|
355
|
-
"--cg-staging=#{
|
356
|
-
"--cg-prod=#{
|
332
|
+
"--cg-staging=#{cloud_gov_staging_space}",
|
333
|
+
"--cg-prod=#{cloud_gov_production_space}"
|
357
334
|
]
|
358
335
|
generate "rails_template18f:terraform", *generator_arguments
|
359
336
|
end
|
@@ -368,13 +345,25 @@ if @terraform
|
|
368
345
|
register_announcement("Terraform", "Run the bootstrap script and update the appropriate CI/CD environment variables defined in the Deployment section of the README")
|
369
346
|
end
|
370
347
|
|
348
|
+
if !skip_active_job?
|
349
|
+
after_bundle do
|
350
|
+
generate "rails_template18f:sidekiq"
|
351
|
+
end
|
352
|
+
end
|
353
|
+
|
354
|
+
if !skip_active_storage?
|
355
|
+
after_bundle do
|
356
|
+
generate "rails_template18f:active_storage"
|
357
|
+
end
|
358
|
+
end
|
359
|
+
|
371
360
|
if @github_actions
|
372
361
|
after_bundle do
|
373
362
|
generator_arguments = [
|
374
|
-
(
|
363
|
+
(terraform ? "--terraform" : "--no-terraform"),
|
375
364
|
"--cg-org=#{@cloud_gov_organization}",
|
376
|
-
"--cg-staging=#{
|
377
|
-
"--cg-prod=#{
|
365
|
+
"--cg-staging=#{cloud_gov_staging_space}",
|
366
|
+
"--cg-prod=#{cloud_gov_production_space}"
|
378
367
|
]
|
379
368
|
generate "rails_template18f:github_actions", *generator_arguments
|
380
369
|
end
|
@@ -391,10 +380,10 @@ end
|
|
391
380
|
if @circleci_pipeline
|
392
381
|
after_bundle do
|
393
382
|
generator_arguments = [
|
394
|
-
(
|
383
|
+
(terraform ? "--terraform" : "--no-terraform"),
|
395
384
|
"--cg-org=#{@cloud_gov_organization}",
|
396
|
-
"--cg-staging=#{
|
397
|
-
"--cg-prod=#{
|
385
|
+
"--cg-staging=#{cloud_gov_staging_space}",
|
386
|
+
"--cg-prod=#{cloud_gov_production_space}"
|
398
387
|
]
|
399
388
|
generate "rails_template18f:circleci", *generator_arguments
|
400
389
|
end
|
@@ -403,19 +392,6 @@ if @circleci_pipeline
|
|
403
392
|
EOM
|
404
393
|
end
|
405
394
|
|
406
|
-
directory "doc"
|
407
|
-
register_announcement("Documentation", <<~EOM)
|
408
|
-
* Include a short description of your application in doc/compliance/apps/application.boundary.md
|
409
|
-
* Remember to keep your Logical Data Model up to date in doc/compliance/apps/data.logical.md
|
410
|
-
EOM
|
411
|
-
|
412
|
-
if @dap
|
413
|
-
after_bundle do
|
414
|
-
generate "rails_template18f:dap"
|
415
|
-
end
|
416
|
-
register_announcement("Digital Analytics Program", "Update the DAP agency code in app/views/layouts/application.html.erb")
|
417
|
-
end
|
418
|
-
|
419
395
|
# setup production credentials file
|
420
396
|
require "rails/generators"
|
421
397
|
require "rails/generators/rails/encryption_key_file/encryption_key_file_generator"
|
@@ -444,6 +420,11 @@ EOM
|
|
444
420
|
|
445
421
|
# ensure this is the very last step
|
446
422
|
after_bundle do
|
423
|
+
if run_db_setup
|
424
|
+
rails_command "db:create"
|
425
|
+
rails_command "db:migrate"
|
426
|
+
end
|
427
|
+
|
447
428
|
# x86_64-linux is required to install gems on any linux system such as cloud.gov or CI pipelines
|
448
429
|
run "bundle lock --add-platform x86_64-linux"
|
449
430
|
|
@@ -453,10 +434,11 @@ after_bundle do
|
|
453
434
|
run "bundle exec standardrb --fix"
|
454
435
|
|
455
436
|
unless skip_git?
|
437
|
+
run "cp .gitignore .cfignore"
|
456
438
|
git add: "."
|
457
439
|
git commit: "-a -m 'Initial commit'"
|
458
440
|
end
|
459
441
|
|
460
|
-
# Post-install
|
442
|
+
# Post-install announcements
|
461
443
|
print_announcements
|
462
444
|
end
|
@@ -30,15 +30,11 @@ Boundary(aws, "AWS GovCloud") {
|
|
30
30
|
System_Boundary(inventory, "Application") {
|
31
31
|
Container(app, "<&layers> <%= app_name.titleize %>", "Ruby <%= @ruby_version %>, Rails <%= Rails.version %>", "TKTK Application Description")
|
32
32
|
ContainerDb(app_db, "Application DB", "AWS RDS (PostgreSQL)", "Primary data storage")
|
33
|
-
<% if !skip_active_storage? %>
|
34
|
-
ContainerDb(app_s3, "File Storage", "AWS S3", "User-uploaded file storage")
|
35
|
-
<% end %>
|
36
33
|
}
|
37
34
|
}
|
38
35
|
}
|
39
36
|
}
|
40
37
|
|
41
|
-
|
42
38
|
Boundary(gsa_saas, "GSA-authorized SaaS") {
|
43
39
|
}
|
44
40
|
|
@@ -49,9 +45,6 @@ Rel(browser, aws_alb, "request info, submit requests", "https GET/POST (443)")
|
|
49
45
|
Rel(aws_alb, cloudgov_router, "proxies requests", "https GET/POST (443)")
|
50
46
|
Rel(cloudgov_router, app, "proxies requests", "https GET/POST (443)")
|
51
47
|
Rel(app, app_db, "reads/writes primary data", "psql (5432)")
|
52
|
-
<% if !skip_active_storage? %>
|
53
|
-
Rel(app, app_s3, "reads/writes file data", "https (443)")
|
54
|
-
<% end %>
|
55
48
|
@enduml
|
56
49
|
```
|
57
50
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rails_template_18f
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Ahearn
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-02-
|
11
|
+
date: 2022-02-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: railties
|
@@ -38,6 +38,34 @@ dependencies:
|
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 7.0.0
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: thor
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '1.0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: colorize
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0.8'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0.8'
|
41
69
|
- !ruby/object:Gem::Dependency
|
42
70
|
name: rspec
|
43
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -83,7 +111,8 @@ dependencies:
|
|
83
111
|
description:
|
84
112
|
email:
|
85
113
|
- ryan.ahearn@gsa.gov
|
86
|
-
executables:
|
114
|
+
executables:
|
115
|
+
- rails_template_18f
|
87
116
|
extensions: []
|
88
117
|
extra_rdoc_files: []
|
89
118
|
files:
|
@@ -98,11 +127,21 @@ files:
|
|
98
127
|
- Rakefile
|
99
128
|
- bin/console
|
100
129
|
- bin/setup
|
130
|
+
- exe/rails_template_18f
|
131
|
+
- lib/generators/rails_template18f/active_storage/active_storage_generator.rb
|
132
|
+
- lib/generators/rails_template18f/active_storage/templates/app/jobs/file_scan_job.rb
|
133
|
+
- lib/generators/rails_template18f/active_storage/templates/app/models/file_upload.rb
|
134
|
+
- lib/generators/rails_template18f/active_storage/templates/doc/adr/clamav.md.tt
|
135
|
+
- lib/generators/rails_template18f/active_storage/templates/spec/jobs/file_scan_job_spec.rb
|
136
|
+
- lib/generators/rails_template18f/active_storage/templates/spec/models/file_upload_spec.rb
|
101
137
|
- lib/generators/rails_template18f/circleci/circleci_generator.rb
|
102
138
|
- lib/generators/rails_template18f/circleci/templates/Dockerfile.tt
|
103
139
|
- lib/generators/rails_template18f/circleci/templates/bin/ci-server-start
|
104
140
|
- lib/generators/rails_template18f/circleci/templates/circleci/config.yml.tt
|
105
141
|
- lib/generators/rails_template18f/circleci/templates/docker-compose.ci.yml
|
142
|
+
- lib/generators/rails_template18f/cloud_gov_config/cloud_gov_config_generator.rb
|
143
|
+
- lib/generators/rails_template18f/cloud_gov_config/templates/app/models/cloud_gov_config.rb
|
144
|
+
- lib/generators/rails_template18f/cloud_gov_config/templates/spec/models/cloud_gov_config_spec.rb
|
106
145
|
- lib/generators/rails_template18f/dap/dap_generator.rb
|
107
146
|
- lib/generators/rails_template18f/github_actions/github_actions_generator.rb
|
108
147
|
- lib/generators/rails_template18f/github_actions/templates/github/actions/run-server/action.yml
|
@@ -118,8 +157,17 @@ files:
|
|
118
157
|
- lib/generators/rails_template18f/github_actions/templates/github/workflows/rspec.yml.tt
|
119
158
|
- lib/generators/rails_template18f/github_actions/templates/github/workflows/terraform-production.yml
|
120
159
|
- lib/generators/rails_template18f/github_actions/templates/github/workflows/terraform-staging.yml
|
160
|
+
- lib/generators/rails_template18f/i18n/i18n_generator.rb
|
161
|
+
- lib/generators/rails_template18f/i18n/templates/config/locales/en.yml.tt
|
162
|
+
- lib/generators/rails_template18f/i18n/templates/config/locales/es.yml
|
163
|
+
- lib/generators/rails_template18f/i18n/templates/config/locales/fr.yml
|
164
|
+
- lib/generators/rails_template18f/i18n/templates/config/locales/zh.yml
|
165
|
+
- lib/generators/rails_template18f/i18n_js/i18n_js_generator.rb
|
166
|
+
- lib/generators/rails_template18f/i18n_js/templates/lib/tasks/i18n.rake
|
121
167
|
- lib/generators/rails_template18f/newrelic/newrelic_generator.rb
|
122
168
|
- lib/generators/rails_template18f/newrelic/templates/config/newrelic.yml.tt
|
169
|
+
- lib/generators/rails_template18f/sidekiq/sidekiq_generator.rb
|
170
|
+
- lib/generators/rails_template18f/sidekiq/templates/config/initializers/redis.rb
|
123
171
|
- lib/generators/rails_template18f/terraform/templates/terraform/README.md.tt
|
124
172
|
- lib/generators/rails_template18f/terraform/templates/terraform/bootstrap/import.sh
|
125
173
|
- lib/generators/rails_template18f/terraform/templates/terraform/bootstrap/main.tf.tt
|
@@ -132,12 +180,18 @@ files:
|
|
132
180
|
- lib/generators/rails_template18f/terraform/templates/terraform/production/main.tf.tt
|
133
181
|
- lib/generators/rails_template18f/terraform/templates/terraform/production/providers.tf.tt
|
134
182
|
- lib/generators/rails_template18f/terraform/templates/terraform/production/variables.tf
|
183
|
+
- lib/generators/rails_template18f/terraform/templates/terraform/shared/clamav/main.tf.tt
|
184
|
+
- lib/generators/rails_template18f/terraform/templates/terraform/shared/clamav/providers.tf
|
185
|
+
- lib/generators/rails_template18f/terraform/templates/terraform/shared/clamav/variables.tf
|
135
186
|
- lib/generators/rails_template18f/terraform/templates/terraform/shared/database/main.tf.tt
|
136
187
|
- lib/generators/rails_template18f/terraform/templates/terraform/shared/database/providers.tf
|
137
188
|
- lib/generators/rails_template18f/terraform/templates/terraform/shared/database/variables.tf
|
138
189
|
- lib/generators/rails_template18f/terraform/templates/terraform/shared/domain/main.tf.tt
|
139
190
|
- lib/generators/rails_template18f/terraform/templates/terraform/shared/domain/providers.tf
|
140
191
|
- lib/generators/rails_template18f/terraform/templates/terraform/shared/domain/variables.tf
|
192
|
+
- lib/generators/rails_template18f/terraform/templates/terraform/shared/redis/main.tf.tt
|
193
|
+
- lib/generators/rails_template18f/terraform/templates/terraform/shared/redis/providers.tf
|
194
|
+
- lib/generators/rails_template18f/terraform/templates/terraform/shared/redis/variables.tf
|
141
195
|
- lib/generators/rails_template18f/terraform/templates/terraform/shared/s3/main.tf
|
142
196
|
- lib/generators/rails_template18f/terraform/templates/terraform/shared/s3/providers.tf
|
143
197
|
- lib/generators/rails_template18f/terraform/templates/terraform/shared/s3/variables.tf
|
@@ -145,6 +199,7 @@ files:
|
|
145
199
|
- lib/generators/rails_template18f/terraform/templates/terraform/staging/providers.tf.tt
|
146
200
|
- lib/generators/rails_template18f/terraform/templates/terraform/staging/variables.tf
|
147
201
|
- lib/generators/rails_template18f/terraform/terraform_generator.rb
|
202
|
+
- lib/rails_template18f/app_updater.rb
|
148
203
|
- lib/rails_template18f/generators.rb
|
149
204
|
- lib/rails_template18f/generators/base.rb
|
150
205
|
- lib/rails_template18f/generators/cloud_gov_options.rb
|
@@ -170,10 +225,6 @@ files:
|
|
170
225
|
- templates/config/deployment/staging.yml
|
171
226
|
- templates/config/environments/ci.rb
|
172
227
|
- templates/config/environments/staging.rb
|
173
|
-
- templates/config/locales/en.yml.tt
|
174
|
-
- templates/config/locales/es.yml
|
175
|
-
- templates/config/locales/fr.yml
|
176
|
-
- templates/config/locales/zh.yml
|
177
228
|
- templates/doc/adr/0001-record-architecture-decisions.md.tt
|
178
229
|
- templates/doc/adr/0002-initial-architecture-decisions.md.tt
|
179
230
|
- templates/doc/adr/0003-security-scans.md.tt
|
@@ -212,7 +263,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
212
263
|
- !ruby/object:Gem::Version
|
213
264
|
version: '0'
|
214
265
|
requirements: []
|
215
|
-
rubygems_version: 3.
|
266
|
+
rubygems_version: 3.3.7
|
216
267
|
signing_key:
|
217
268
|
specification_version: 4
|
218
269
|
summary: Generators for creating an 18F-flavored Rails app
|