rails_template_18f 0.4.0 → 0.5.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 +15 -0
- data/Gemfile +0 -2
- data/Gemfile.lock +26 -26
- data/lib/generators/rails_template18f/active_storage/active_storage_generator.rb +14 -8
- data/lib/generators/rails_template18f/circleci/circleci_generator.rb +4 -1
- data/lib/generators/rails_template18f/cloud_gov_config/cloud_gov_config_generator.rb +2 -1
- data/lib/generators/rails_template18f/i18n/i18n_generator.rb +8 -9
- data/lib/generators/rails_template18f/i18n_js/i18n_js_generator.rb +7 -8
- data/lib/generators/rails_template18f/newrelic/newrelic_generator.rb +2 -0
- data/lib/generators/rails_template18f/sidekiq/sidekiq_generator.rb +12 -1
- data/lib/generators/rails_template18f/terraform/templates/terraform/README.md.tt +1 -1
- data/lib/generators/rails_template18f/terraform/terraform_generator.rb +10 -1
- data/lib/rails_template18f/generators/base.rb +15 -0
- data/lib/rails_template18f/version.rb +1 -1
- data/rails-template-18f.gemspec +1 -0
- data/template.rb +19 -1
- data/templates/Brewfile +14 -0
- data/templates/README.md.tt +11 -12
- data/templates/app/views/application/_header.html.erb +0 -1
- data/templates/app/views/application/_usa_banner.html.erb +2 -0
- data/templates/bin/with-server +1 -2
- data/templates/env +1 -1
- metadata +18 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 9272beadb19c4c9a6aa8f3da43cfbb06d7fbf23f75d0f4ec393dde3610f06157
|
|
4
|
+
data.tar.gz: a3906d6bddb262a5bc46f5ed40e0bf64110bd396ac8e765185dcc808abe6c91a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 22926545b3fe7273d36c8fde0445d9865bab390cf2cc856c25bc33e50f1c1420944a30052a2e0ae8b730da4f17dee2c16165cc83a1e21eb1f0475afa0fd30b74
|
|
7
|
+
data.tar.gz: fe7f4f8df14d4f2eac2a5882daf368cdf68a8c9f53a54550fe8d13f1b7a18767c50334e142a2784b92964478fe0e3a3e88c5986271b30e78d8e0743690c8a09a
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
## [Unreleased]
|
|
2
2
|
|
|
3
|
+
## [0.5.1] - 2022-03-17
|
|
4
|
+
|
|
5
|
+
- fix interaction between foreman and dotenv by disabling foreman's env loading
|
|
6
|
+
|
|
7
|
+
## [0.5.0] - 2022-03-04
|
|
8
|
+
|
|
9
|
+
- use Brewfile for installing homebrew-based dependencies
|
|
10
|
+
- move test site banner to the _usa_banner.html.erb partial
|
|
11
|
+
- use dockerize within bin/with-server to wait for rails to start
|
|
12
|
+
|
|
13
|
+
## [0.4.1] - 2022-02-25
|
|
14
|
+
|
|
15
|
+
- update gem dependencies
|
|
16
|
+
- fix issues when included gem hadn't been previously installed
|
|
17
|
+
|
|
3
18
|
## [0.4.0] - 2022-02-24
|
|
4
19
|
|
|
5
20
|
- helper script to run rails app:update
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,28 +1,29 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
rails_template_18f (0.
|
|
4
|
+
rails_template_18f (0.5.1)
|
|
5
5
|
activesupport (~> 7.0.0)
|
|
6
|
+
colorize (~> 0.8)
|
|
6
7
|
railties (~> 7.0.0)
|
|
7
8
|
thor (~> 1.0)
|
|
8
9
|
|
|
9
10
|
GEM
|
|
10
11
|
remote: https://rubygems.org/
|
|
11
12
|
specs:
|
|
12
|
-
actionpack (7.0.2.
|
|
13
|
-
actionview (= 7.0.2.
|
|
14
|
-
activesupport (= 7.0.2.
|
|
13
|
+
actionpack (7.0.2.3)
|
|
14
|
+
actionview (= 7.0.2.3)
|
|
15
|
+
activesupport (= 7.0.2.3)
|
|
15
16
|
rack (~> 2.0, >= 2.2.0)
|
|
16
17
|
rack-test (>= 0.6.3)
|
|
17
18
|
rails-dom-testing (~> 2.0)
|
|
18
19
|
rails-html-sanitizer (~> 1.0, >= 1.2.0)
|
|
19
|
-
actionview (7.0.2.
|
|
20
|
-
activesupport (= 7.0.2.
|
|
20
|
+
actionview (7.0.2.3)
|
|
21
|
+
activesupport (= 7.0.2.3)
|
|
21
22
|
builder (~> 3.1)
|
|
22
23
|
erubi (~> 1.4)
|
|
23
24
|
rails-dom-testing (~> 2.0)
|
|
24
25
|
rails-html-sanitizer (~> 1.1, >= 1.2.0)
|
|
25
|
-
activesupport (7.0.2.
|
|
26
|
+
activesupport (7.0.2.3)
|
|
26
27
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
27
28
|
i18n (>= 1.6, < 2)
|
|
28
29
|
minitest (>= 5.1)
|
|
@@ -39,19 +40,19 @@ GEM
|
|
|
39
40
|
crass (1.0.6)
|
|
40
41
|
diff-lcs (1.5.0)
|
|
41
42
|
erubi (1.10.0)
|
|
42
|
-
i18n (1.
|
|
43
|
+
i18n (1.10.0)
|
|
43
44
|
concurrent-ruby (~> 1.0)
|
|
44
|
-
loofah (2.
|
|
45
|
+
loofah (2.15.0)
|
|
45
46
|
crass (~> 1.0.2)
|
|
46
47
|
nokogiri (>= 1.5.9)
|
|
47
48
|
method_source (1.0.0)
|
|
48
49
|
minitest (5.15.0)
|
|
49
|
-
nokogiri (1.13.
|
|
50
|
+
nokogiri (1.13.3-x86_64-darwin)
|
|
50
51
|
racc (~> 1.4)
|
|
51
|
-
nokogiri (1.13.
|
|
52
|
+
nokogiri (1.13.3-x86_64-linux)
|
|
52
53
|
racc (~> 1.4)
|
|
53
54
|
parallel (1.21.0)
|
|
54
|
-
parser (3.1.
|
|
55
|
+
parser (3.1.1.0)
|
|
55
56
|
ast (~> 2.4.1)
|
|
56
57
|
racc (1.6.0)
|
|
57
58
|
rack (2.2.3)
|
|
@@ -62,16 +63,16 @@ GEM
|
|
|
62
63
|
nokogiri (>= 1.6)
|
|
63
64
|
rails-html-sanitizer (1.4.2)
|
|
64
65
|
loofah (~> 2.3)
|
|
65
|
-
railties (7.0.2.
|
|
66
|
-
actionpack (= 7.0.2.
|
|
67
|
-
activesupport (= 7.0.2.
|
|
66
|
+
railties (7.0.2.3)
|
|
67
|
+
actionpack (= 7.0.2.3)
|
|
68
|
+
activesupport (= 7.0.2.3)
|
|
68
69
|
method_source
|
|
69
70
|
rake (>= 12.2)
|
|
70
71
|
thor (~> 1.0)
|
|
71
72
|
zeitwerk (~> 2.5)
|
|
72
73
|
rainbow (3.1.1)
|
|
73
74
|
rake (13.0.6)
|
|
74
|
-
regexp_parser (2.2.
|
|
75
|
+
regexp_parser (2.2.1)
|
|
75
76
|
rexml (3.2.5)
|
|
76
77
|
rspec (3.11.0)
|
|
77
78
|
rspec-core (~> 3.11.0)
|
|
@@ -85,7 +86,7 @@ GEM
|
|
|
85
86
|
rspec-mocks (3.11.0)
|
|
86
87
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
87
88
|
rspec-support (~> 3.11.0)
|
|
88
|
-
rspec-rails (5.1.
|
|
89
|
+
rspec-rails (5.1.1)
|
|
89
90
|
actionpack (>= 5.2)
|
|
90
91
|
activesupport (>= 5.2)
|
|
91
92
|
railties (>= 5.2)
|
|
@@ -94,24 +95,24 @@ GEM
|
|
|
94
95
|
rspec-mocks (~> 3.10)
|
|
95
96
|
rspec-support (~> 3.10)
|
|
96
97
|
rspec-support (3.11.0)
|
|
97
|
-
rubocop (1.
|
|
98
|
+
rubocop (1.26.0)
|
|
98
99
|
parallel (~> 1.10)
|
|
99
100
|
parser (>= 3.1.0.0)
|
|
100
101
|
rainbow (>= 2.2.2, < 4.0)
|
|
101
102
|
regexp_parser (>= 1.8, < 3.0)
|
|
102
103
|
rexml
|
|
103
|
-
rubocop-ast (>= 1.
|
|
104
|
+
rubocop-ast (>= 1.16.0, < 2.0)
|
|
104
105
|
ruby-progressbar (~> 1.7)
|
|
105
106
|
unicode-display_width (>= 1.4.0, < 3.0)
|
|
106
|
-
rubocop-ast (1.
|
|
107
|
-
parser (>= 3.
|
|
108
|
-
rubocop-performance (1.13.
|
|
107
|
+
rubocop-ast (1.16.0)
|
|
108
|
+
parser (>= 3.1.1.0)
|
|
109
|
+
rubocop-performance (1.13.3)
|
|
109
110
|
rubocop (>= 1.7.0, < 2.0)
|
|
110
111
|
rubocop-ast (>= 0.4.0)
|
|
111
112
|
ruby-progressbar (1.11.0)
|
|
112
|
-
standard (1.
|
|
113
|
-
rubocop (= 1.
|
|
114
|
-
rubocop-performance (= 1.13.
|
|
113
|
+
standard (1.8.0)
|
|
114
|
+
rubocop (= 1.26.0)
|
|
115
|
+
rubocop-performance (= 1.13.3)
|
|
115
116
|
thor (1.2.1)
|
|
116
117
|
tzinfo (2.0.4)
|
|
117
118
|
concurrent-ruby (~> 1.0)
|
|
@@ -125,7 +126,6 @@ PLATFORMS
|
|
|
125
126
|
DEPENDENCIES
|
|
126
127
|
ammeter (~> 1.1)
|
|
127
128
|
byebug
|
|
128
|
-
colorize (~> 0.8)
|
|
129
129
|
rails_template_18f!
|
|
130
130
|
rake (~> 13.0)
|
|
131
131
|
rspec (~> 3.11)
|
|
@@ -13,8 +13,8 @@ module RailsTemplate18f
|
|
|
13
13
|
DESC
|
|
14
14
|
|
|
15
15
|
def configure_active_storage
|
|
16
|
-
generate "rails_template18f:cloud_gov_config"
|
|
17
|
-
rails_command "active_storage:install"
|
|
16
|
+
generate "rails_template18f:cloud_gov_config", inline: true
|
|
17
|
+
rails_command "active_storage:install", inline: true
|
|
18
18
|
comment_lines "config/environments/production.rb", /active_storage\.service/
|
|
19
19
|
insert_into_file "config/environments/production.rb", "\n config.active_storage.service = :amazon", after: /active_storage\.service.*$/
|
|
20
20
|
environment "config.active_storage.service = :local", env: "ci"
|
|
@@ -30,15 +30,22 @@ module RailsTemplate18f
|
|
|
30
30
|
end
|
|
31
31
|
|
|
32
32
|
def install_gems
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
33
|
+
faraday_installed = gem_installed?("faraday")
|
|
34
|
+
middleware_installed = gem_installed?("faraday-multipart")
|
|
35
|
+
sdk_installed = gem_installed?("aws-sdk-s3")
|
|
36
|
+
return if faraday_installed && middleware_installed && sdk_installed
|
|
37
|
+
gem "faraday", "~> 2.2" unless faraday_installed
|
|
38
|
+
gem "faraday-multipart", "~> 1.0" unless middleware_installed
|
|
39
|
+
unless sdk_installed
|
|
40
|
+
gem_group :production do
|
|
41
|
+
gem "aws-sdk-s3", "~> 1.112"
|
|
42
|
+
end
|
|
37
43
|
end
|
|
44
|
+
bundle_install
|
|
38
45
|
end
|
|
39
46
|
|
|
40
47
|
def create_scanned_upload_model_and_job
|
|
41
|
-
generate :migration, "CreateFileUploads", "file:attachment", "record:references{polymorphic}", "scan_status:string"
|
|
48
|
+
generate :migration, "CreateFileUploads", "file:attachment", "record:references{polymorphic}", "scan_status:string", inline: true
|
|
42
49
|
migration_file = Dir.glob(File.expand_path(File.join("db", "migrate", "[0-9]*_*.rb"), destination_root)).grep(/\d+_create_file_uploads.rb$/).first
|
|
43
50
|
unless migration_file.nil?
|
|
44
51
|
gsub_file migration_file, ":scan_status", ":scan_status, null: false, default: \"uploaded\""
|
|
@@ -54,7 +61,6 @@ module RailsTemplate18f
|
|
|
54
61
|
def configure_clamav_env_var
|
|
55
62
|
append_to_file ".env", <<~EOM
|
|
56
63
|
|
|
57
|
-
|
|
58
64
|
# CLAMAV_API_URL tells FileScanJob where to send files for virus scans
|
|
59
65
|
CLAMAV_API_URL=https://localhost:9443
|
|
60
66
|
EOM
|
|
@@ -14,7 +14,10 @@ module RailsTemplate18f
|
|
|
14
14
|
DESC
|
|
15
15
|
|
|
16
16
|
def install_needed_gems
|
|
17
|
-
|
|
17
|
+
gem_name = "rspec_junit_formatter"
|
|
18
|
+
return if gem_installed? gem_name
|
|
19
|
+
gem gem_name, "~> 0.5", group: :test
|
|
20
|
+
bundle_install
|
|
18
21
|
end
|
|
19
22
|
|
|
20
23
|
def install_pipeline
|
|
@@ -13,10 +13,11 @@ module RailsTemplate18f
|
|
|
13
13
|
DESC
|
|
14
14
|
|
|
15
15
|
def install_climate_control
|
|
16
|
-
return if
|
|
16
|
+
return if gem_installed?("climate_control")
|
|
17
17
|
gem_group :test do
|
|
18
18
|
gem "climate_control", "~> 1.0"
|
|
19
19
|
end
|
|
20
|
+
bundle_install
|
|
20
21
|
end
|
|
21
22
|
|
|
22
23
|
def install_model_and_test
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require "rails/generators"
|
|
4
|
-
require "bundler"
|
|
5
4
|
|
|
6
5
|
module RailsTemplate18f
|
|
7
6
|
module Generators
|
|
@@ -16,17 +15,17 @@ module RailsTemplate18f
|
|
|
16
15
|
Always installs configuration for English
|
|
17
16
|
DESC
|
|
18
17
|
|
|
19
|
-
def
|
|
20
|
-
return if
|
|
18
|
+
def install_gem
|
|
19
|
+
return if gem_installed?("i18n-tasks")
|
|
21
20
|
gem_group :development, :test do
|
|
22
21
|
gem "i18n-tasks", "~> 0.9"
|
|
23
22
|
end
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def install_helper_tasks
|
|
26
|
+
bundle_install do
|
|
27
|
+
run "cp $(i18n-tasks gem-path)/templates/config/i18n-tasks.yml config/"
|
|
28
|
+
run "cp $(i18n-tasks gem-path)/templates/rspec/i18n_spec.rb spec/"
|
|
30
29
|
end
|
|
31
30
|
insert_into_file "config/i18n-tasks.yml", "\n#{indent("- app/assets/builds", 4)}", after: "exclude:"
|
|
32
31
|
uncomment_lines "config/i18n-tasks.yml", "ignore_missing:"
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require "rails/generators"
|
|
4
|
-
require "bundler"
|
|
5
4
|
|
|
6
5
|
module RailsTemplate18f
|
|
7
6
|
module Generators
|
|
@@ -16,15 +15,15 @@ module RailsTemplate18f
|
|
|
16
15
|
DESC
|
|
17
16
|
|
|
18
17
|
def install_gem_and_tasks
|
|
19
|
-
return if
|
|
18
|
+
return if gem_installed?("i18n-js")
|
|
20
19
|
gem "i18n-js", "~> 3.9"
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
run "yarn add i18n-js"
|
|
25
|
-
generate "i18n:js:config"
|
|
26
|
-
end
|
|
20
|
+
bundle_install do
|
|
21
|
+
run "yarn add i18n-js"
|
|
22
|
+
generate "i18n:js:config"
|
|
27
23
|
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def configure_translation_yaml
|
|
28
27
|
append_to_file "config/i18n-js.yml", <<~EOYAML
|
|
29
28
|
# remove `only` to include all translations
|
|
30
29
|
translations:
|
|
@@ -13,7 +13,18 @@ module RailsTemplate18f
|
|
|
13
13
|
DESC
|
|
14
14
|
|
|
15
15
|
def install_gem
|
|
16
|
+
return if gem_installed?("sidekiq")
|
|
16
17
|
gem "sidekiq", "~> 6.4"
|
|
18
|
+
bundle_install
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def install_redis
|
|
22
|
+
append_to_file "Brewfile", <<~EOB
|
|
23
|
+
|
|
24
|
+
# queue for sidekiq jobs
|
|
25
|
+
brew "redis"
|
|
26
|
+
EOB
|
|
27
|
+
insert_into_file "README.md", indent("* [redis]()\n"), after: /\* Install homebrew dependencies: `brew bundle`\n/
|
|
17
28
|
end
|
|
18
29
|
|
|
19
30
|
def configure_server_runner
|
|
@@ -38,7 +49,7 @@ module RailsTemplate18f
|
|
|
38
49
|
end
|
|
39
50
|
|
|
40
51
|
def configure_active_job
|
|
41
|
-
generate "rails_template18f:cloud_gov_config"
|
|
52
|
+
generate "rails_template18f:cloud_gov_config", inline: true
|
|
42
53
|
copy_file "config/initializers/redis.rb"
|
|
43
54
|
application "config.active_job.queue_adapter = :sidekiq"
|
|
44
55
|
end
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
This directory holds the terraform modules for maintaining your complete persistent infrastructure.
|
|
4
4
|
|
|
5
|
-
Prerequisite: install the `jq` JSON processor: `brew install jq`
|
|
5
|
+
Prerequisite: install the `jq` JSON processor: `brew bundle` or `brew install jq`
|
|
6
6
|
|
|
7
7
|
## Initial setup
|
|
8
8
|
|
|
@@ -19,6 +19,15 @@ module RailsTemplate18f
|
|
|
19
19
|
chmod "terraform/bootstrap/teardown_creds.sh", 0o755
|
|
20
20
|
end
|
|
21
21
|
|
|
22
|
+
def install_jq
|
|
23
|
+
append_to_file "Brewfile", <<~EOB
|
|
24
|
+
|
|
25
|
+
# used in terraform/create_space_deployer.sh
|
|
26
|
+
brew "jq"
|
|
27
|
+
EOB
|
|
28
|
+
insert_into_file "README.md", indent("* [jq](https://stedolan.github.io/jq/)\n"), after: /\* Install homebrew dependencies: `brew bundle`\n/
|
|
29
|
+
end
|
|
30
|
+
|
|
22
31
|
def ignore_files
|
|
23
32
|
unless skip_git?
|
|
24
33
|
append_to_file ".gitignore", <<~EOM
|
|
@@ -34,7 +43,7 @@ module RailsTemplate18f
|
|
|
34
43
|
end
|
|
35
44
|
|
|
36
45
|
def update_readme
|
|
37
|
-
gsub_file "README.md", /^(### Automatic linting)
|
|
46
|
+
gsub_file "README.md", /^(### Automatic linting)\s*$/, '\1 and terraform formatting'
|
|
38
47
|
gsub_file "README.md", /(ruby linting) (on every)/, '\1 and terraform formatting \2'
|
|
39
48
|
gsub_file "README.md", /^Before the first deploy only.*$/, "Follow the instructions in `terraform/README.md` to create the supporting services."
|
|
40
49
|
end
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require "bundler"
|
|
4
|
+
|
|
3
5
|
module RailsTemplate18f
|
|
4
6
|
module Generators
|
|
5
7
|
module Base
|
|
@@ -20,6 +22,19 @@ module RailsTemplate18f
|
|
|
20
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
39
|
file_path = File.expand_path(filename, destination_root)
|
|
25
40
|
if File.exist? file_path
|
data/rails-template-18f.gemspec
CHANGED
|
@@ -34,6 +34,7 @@ Gem::Specification.new do |spec|
|
|
|
34
34
|
spec.add_dependency "railties", "~> 7.0.0"
|
|
35
35
|
spec.add_dependency "activesupport", "~> 7.0.0"
|
|
36
36
|
spec.add_dependency "thor", "~> 1.0"
|
|
37
|
+
spec.add_dependency "colorize", "~> 0.8"
|
|
37
38
|
|
|
38
39
|
spec.add_development_dependency "rspec", "~> 3.11"
|
|
39
40
|
spec.add_development_dependency "ammeter", "~> 1.1"
|
data/template.rb
CHANGED
|
@@ -87,6 +87,13 @@ register_announcement("Documentation", <<~EOM)
|
|
|
87
87
|
* Review any TBD sections of the README and update where appropriate.
|
|
88
88
|
EOM
|
|
89
89
|
|
|
90
|
+
# ensure dependencies are installed
|
|
91
|
+
copy_file "Brewfile"
|
|
92
|
+
insert_into_file "bin/setup", <<EOSETUP, after: /Add necessary setup steps to this file.\n/
|
|
93
|
+
puts "== Installing homebrew dependencies =="
|
|
94
|
+
system("brew bundle --no-lock")
|
|
95
|
+
EOSETUP
|
|
96
|
+
|
|
90
97
|
# setup nvmrc
|
|
91
98
|
file ".nvmrc", @node_version
|
|
92
99
|
|
|
@@ -185,15 +192,26 @@ if ENV["RT_DEV"] == "true"
|
|
|
185
192
|
else
|
|
186
193
|
gem "rails_template_18f", group: :development
|
|
187
194
|
end
|
|
195
|
+
after_bundle do
|
|
196
|
+
gsub_file "bin/dev", /foreman start -f (.*)$/, <<~'EOM'
|
|
197
|
+
# pass /dev/null for the environment file to prevent weird interactions between foreman and dotenv
|
|
198
|
+
foreman start -e /dev/null -f \1
|
|
199
|
+
EOM
|
|
200
|
+
end
|
|
188
201
|
|
|
189
202
|
copy_file "lib/tasks/scanning.rake"
|
|
190
203
|
copy_file "env", ".env"
|
|
191
204
|
copy_file "githooks/pre-commit", ".githooks/pre-commit", mode: :preserve
|
|
192
205
|
|
|
193
206
|
unless skip_git?
|
|
194
|
-
|
|
207
|
+
after_bundle do
|
|
208
|
+
rails_command "credentials:diff --enroll"
|
|
209
|
+
end
|
|
195
210
|
append_to_file ".gitignore", <<~EOM
|
|
196
211
|
|
|
212
|
+
# Ignore Brewfile debug info
|
|
213
|
+
Brewfile.lock.json
|
|
214
|
+
|
|
197
215
|
# Ignore local dotenv overrides
|
|
198
216
|
.env*.local
|
|
199
217
|
|
data/templates/Brewfile
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Brewfile
|
|
2
|
+
# add any dependencies that must be installed from homebrew here
|
|
3
|
+
|
|
4
|
+
# cloud.gov RDS is on postgres 12
|
|
5
|
+
brew "postgresql@12", link: true
|
|
6
|
+
|
|
7
|
+
# used in bin/with-server script
|
|
8
|
+
brew "dockerize"
|
|
9
|
+
|
|
10
|
+
# helper scripts for creating new ADRs
|
|
11
|
+
brew "adr-tools"
|
|
12
|
+
|
|
13
|
+
# chromedriver for integration tests
|
|
14
|
+
cask "chromedriver"
|
data/templates/README.md.tt
CHANGED
|
@@ -12,16 +12,15 @@ guide for an introduction to the framework.
|
|
|
12
12
|
|
|
13
13
|
* Install Ruby <%= @ruby_version %>
|
|
14
14
|
* Install NodeJS <%= @node_version %>
|
|
15
|
-
* Install
|
|
16
|
-
*
|
|
17
|
-
|
|
18
|
-
*
|
|
19
|
-
|
|
15
|
+
* Install homebrew dependencies: `brew bundle`
|
|
16
|
+
* [PostgreSQL](https://www.postgresql.org/)
|
|
17
|
+
* [Dockerize](https://github.com/jwilder/dockerize)
|
|
18
|
+
* [ADR Tools](https://github.com/npryce/adr-tools)
|
|
19
|
+
* [Chromedriver](https://sites.google.com/chromium.org/driver/)
|
|
20
|
+
* Chromedriver must be allowed to run. You can either do that by:
|
|
21
|
+
* The command line: `xattr -d com.apple.quarantine $(which chromedriver)` (this is the only option if you are on Big Sur)
|
|
22
|
+
* Manually: clicking "allow" when you run the integration tests for the first time and a dialogue opens up
|
|
20
23
|
* Install Ruby dependencies: `bundle install`
|
|
21
|
-
* Install chromedriver for integration tests: `brew install --cask chromedriver`
|
|
22
|
-
* Chromedriver must be allowed to run. You can either do that by:
|
|
23
|
-
* The command line: `xattr -d com.apple.quarantine $(which chromedriver)` (this is the only option if you are on Big Sur)
|
|
24
|
-
* Manually: clicking "allow" when you run the integration tests for the first time and a dialogue opens up
|
|
25
24
|
* Install JS dependencies: `yarn install`
|
|
26
25
|
* Create database: `bundle exec rake db:create`
|
|
27
26
|
* Run migrations: `bundle exec rake db:migrate`
|
|
@@ -32,9 +31,9 @@ guide for an introduction to the framework.
|
|
|
32
31
|
|
|
33
32
|
Environment variables can be set in development using the [dotenv](https://github.com/bkeepers/dotenv) gem.
|
|
34
33
|
|
|
35
|
-
Consistent but sensitive credentials should be added to `config/credentials.yml.
|
|
34
|
+
Consistent but sensitive credentials should be added to `config/credentials.yml.enc` by using `$ rails credentials:edit`
|
|
36
35
|
|
|
37
|
-
Production credentials should be added to `config/credentials/production.yml.
|
|
36
|
+
Production credentials should be added to `config/credentials/production.yml.enc` by using `$ rails credentials:edit --environment production`
|
|
38
37
|
|
|
39
38
|
Any changes to variables in `.env` that should not be checked into git should be set
|
|
40
39
|
in `.env.local`.
|
|
@@ -145,7 +144,7 @@ Configuration that changes from staging to production, but is public, should be
|
|
|
145
144
|
Architectural Decision Records (ADR) are stored in `doc/adr`
|
|
146
145
|
To create a new ADR, first install [ADR-tools](https://github.com/npryce/adr-tools) if you don't
|
|
147
146
|
already have it installed.
|
|
148
|
-
* `brew install adr-tools`
|
|
147
|
+
* `brew bundle` or `brew install adr-tools`
|
|
149
148
|
|
|
150
149
|
Then create the ADR:
|
|
151
150
|
* `adr new Title Of Architectural Decision`
|
data/templates/bin/with-server
CHANGED
data/templates/env
CHANGED
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.5.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-
|
|
11
|
+
date: 2022-03-17 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: railties
|
|
@@ -52,6 +52,20 @@ dependencies:
|
|
|
52
52
|
- - "~>"
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
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'
|
|
55
69
|
- !ruby/object:Gem::Dependency
|
|
56
70
|
name: rspec
|
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -196,6 +210,7 @@ files:
|
|
|
196
210
|
- railsrc
|
|
197
211
|
- railsrc-hotwire
|
|
198
212
|
- template.rb
|
|
213
|
+
- templates/Brewfile
|
|
199
214
|
- templates/README.md.tt
|
|
200
215
|
- templates/app/assets/images/uswds.js
|
|
201
216
|
- templates/app/assets/stylesheets/uswds-settings.scss
|
|
@@ -249,7 +264,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
249
264
|
- !ruby/object:Gem::Version
|
|
250
265
|
version: '0'
|
|
251
266
|
requirements: []
|
|
252
|
-
rubygems_version: 3.
|
|
267
|
+
rubygems_version: 3.3.7
|
|
253
268
|
signing_key:
|
|
254
269
|
specification_version: 4
|
|
255
270
|
summary: Generators for creating an 18F-flavored Rails app
|