rails_template_18f 0.2.0 → 0.4.1
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.
- 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
|