rockstart 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +6 -0
- data/lib/generators/rockstart/authorization/USAGE +9 -0
- data/lib/generators/rockstart/authorization/auth0/USAGE +10 -0
- data/lib/generators/rockstart/authorization/auth0/auth0_generator.rb +49 -0
- data/lib/generators/rockstart/authorization/auth0/templates/app/controllers/auth_controller.rb.tt +47 -0
- data/lib/generators/rockstart/authorization/auth0/templates/app/controllers/concerns/session_auth.rb +23 -0
- data/lib/generators/rockstart/authorization/auth0/templates/app/models/user.rb.tt +82 -0
- data/lib/generators/rockstart/authorization/auth0/templates/app/views/auth/new.html.erb +3 -0
- data/lib/generators/rockstart/authorization/auth0/templates/app/views/auth/sign_out.html.erb +1 -0
- data/lib/generators/rockstart/authorization/auth0/templates/auth0.en.yml +5 -0
- data/lib/generators/rockstart/authorization/auth0/templates/auth0_initializer.rb +27 -0
- data/lib/generators/rockstart/authorization/auth0/templates/auth0_util.rb.tt +38 -0
- data/lib/generators/rockstart/authorization/auth0/templates/auth0_util_spec.rb +21 -0
- data/lib/generators/rockstart/authorization/auth0/templates/spec/factories/users.rb.tt +32 -0
- data/lib/generators/rockstart/authorization/auth0/templates/spec/models/user_spec.rb.tt +91 -0
- data/lib/generators/rockstart/authorization/auth0/templates/spec/requests/auth_spec.rb +94 -0
- data/lib/generators/rockstart/authorization/auth0/templates/spec/support/auth_request_helper.rb +27 -0
- data/lib/generators/rockstart/authorization/authorization_generator.rb +29 -0
- data/lib/generators/rockstart/{devise → authorization/devise}/USAGE +3 -1
- data/lib/generators/rockstart/authorization/devise/devise_generator.rb +208 -0
- data/lib/generators/rockstart/authorization/devise/templates/add_devise_to_users_migration.rb.tt +50 -0
- data/lib/generators/rockstart/{devise → authorization/devise}/templates/controllers/passwords_controller.rb +0 -0
- data/lib/generators/rockstart/{devise → authorization/devise}/templates/controllers/registrations_controller.rb +0 -0
- data/lib/generators/rockstart/{devise → authorization/devise}/templates/controllers/sessions_controller.rb +0 -0
- data/lib/generators/rockstart/{devise → authorization/devise}/templates/create_user_migration.rb.tt +0 -0
- data/lib/generators/rockstart/{devise → authorization/devise}/templates/models/user.rb +14 -2
- data/lib/generators/rockstart/{devise → authorization/devise}/templates/spec/factories/users.rb +0 -0
- data/lib/generators/rockstart/{devise → authorization/devise}/templates/spec/models/user_spec.rb +9 -21
- data/lib/generators/rockstart/{devise → authorization/devise}/templates/spec/requests/users/passwords_spec.rb +0 -0
- data/lib/generators/rockstart/{devise → authorization/devise}/templates/spec/requests/users/registrations_spec.rb +2 -11
- data/lib/generators/rockstart/{devise → authorization/devise}/templates/spec/requests/users/sessions_spec.rb +1 -38
- data/lib/generators/rockstart/{devise → authorization/devise}/templates/spec/support/devise_request_spec_helper.rb +0 -0
- data/lib/generators/rockstart/{devise → authorization/devise}/templates/translations.en.yml +0 -0
- data/lib/generators/rockstart/{pundit → authorization/pundit}/USAGE +1 -1
- data/lib/generators/rockstart/authorization/pundit/pundit_generator.rb +41 -0
- data/lib/generators/rockstart/{pundit → authorization/pundit}/templates/app/controllers/concerns/pundit_error_handling.rb +0 -0
- data/lib/generators/rockstart/{pundit → authorization/pundit}/templates/app/policies/application_policy.rb +0 -0
- data/lib/generators/rockstart/{pundit/templates/app/policies/user_policy.rb → authorization/pundit/templates/app/policies/user_policy.rb.tt} +4 -0
- data/lib/generators/rockstart/{pundit → authorization/pundit}/templates/config/locales/pundit.en.yml +0 -0
- data/lib/generators/rockstart/authorization/pundit/templates/lib/admin_constraint.rb +11 -0
- data/lib/generators/rockstart/{pundit/templates/lib/templates/pundit/policy/policy.rb → authorization/pundit/templates/scaffold/policy.rb.tt} +0 -0
- data/lib/generators/rockstart/{pundit/templates/lib/templates/rspec/policy/policy_spec.rb → authorization/pundit/templates/scaffold/policy_spec.rb.tt} +0 -0
- data/lib/generators/rockstart/{pundit/templates/spec/policies/user_policy_spec.rb → authorization/pundit/templates/spec/policies/user_policy_spec.rb.tt} +43 -5
- data/lib/generators/rockstart/{pundit → authorization/pundit}/templates/spec/support/pundit_matchers.rb +0 -0
- data/lib/generators/rockstart/deployment/USAGE +8 -0
- data/lib/generators/rockstart/deployment/deployment_generator.rb +78 -0
- data/lib/generators/rockstart/{docker → deployment/docker}/USAGE +0 -0
- data/lib/generators/rockstart/deployment/docker/docker_generator.rb +70 -0
- data/lib/generators/rockstart/{docker → deployment/docker}/templates/app/Dockerfile-app +6 -5
- data/lib/generators/rockstart/{docker → deployment/docker}/templates/docker-compose.test.yml +5 -2
- data/lib/generators/rockstart/deployment/docker/templates/docker-compose.yml +74 -0
- data/lib/generators/rockstart/{docker → deployment/docker}/templates/dockerignore +0 -0
- data/lib/generators/rockstart/deployment/docker/templates/dotenv.docker-db.tt +3 -0
- data/lib/generators/rockstart/deployment/docker/templates/dotenv.docker.tt +20 -0
- data/lib/generators/rockstart/{docker → deployment/docker}/templates/web/Dockerfile-web +0 -0
- data/lib/generators/rockstart/{docker → deployment/docker}/templates/web/nginx.conf +24 -1
- data/lib/generators/rockstart/deployment/heroku/USAGE +9 -0
- data/lib/generators/rockstart/deployment/heroku/heroku_generator.rb +50 -0
- data/lib/generators/rockstart/deployment/heroku/templates/Procfile.tt +5 -0
- data/lib/generators/rockstart/deployment/heroku/templates/app.json.tt +50 -0
- data/lib/generators/rockstart/deployment/heroku/templates/deploy-heroku.tt +42 -0
- data/lib/generators/rockstart/deployment/heroku/templates/heroku.rake.tt +25 -0
- data/lib/generators/rockstart/deployment/heroku/templates/slugignore +3 -0
- data/lib/generators/rockstart/deployment/nginx/USAGE +8 -0
- data/lib/generators/rockstart/deployment/nginx/nginx_generator.rb +20 -0
- data/lib/generators/rockstart/deployment/templates/hooks-postdeploy.tt +22 -0
- data/lib/generators/rockstart/deployment/templates/hooks-release.tt +17 -0
- data/lib/generators/rockstart/deployment/templates/rack_deflater_spec.rb +28 -0
- data/lib/generators/rockstart/deployment/templates/web.tt +3 -0
- data/lib/generators/rockstart/deployment/templates/worker.tt +3 -0
- data/lib/generators/rockstart/development/USAGE +10 -0
- data/lib/generators/rockstart/development/audited/USAGE +10 -0
- data/lib/generators/rockstart/development/audited/audited_generator.rb +35 -0
- data/lib/generators/rockstart/development/audited/templates/audit.rb.tt +35 -0
- data/lib/generators/rockstart/development/audited/templates/audit_spec.rb.tt +54 -0
- data/lib/generators/rockstart/development/audited/templates/audited_initializer.rb +5 -0
- data/lib/generators/rockstart/development/audited/templates/audited_support.rb +3 -0
- data/lib/generators/rockstart/development/audited/templates/install_audited.rb.tt +45 -0
- data/lib/generators/rockstart/development/development_generator.rb +42 -0
- data/lib/generators/rockstart/development/env/USAGE +8 -0
- data/lib/generators/rockstart/development/env/env_generator.rb +17 -0
- data/lib/generators/rockstart/development/env/templates/dotenv.development.tt +4 -0
- data/lib/generators/rockstart/development/friendly_id/USAGE +8 -0
- data/lib/generators/rockstart/development/friendly_id/friendly_id_generator.rb +15 -0
- data/lib/generators/rockstart/development/friendly_id/templates/friendly_id_initializer.rb +52 -0
- data/lib/generators/rockstart/development/generator_overrides/USAGE +8 -0
- data/lib/generators/rockstart/development/generator_overrides/generator_overrides_generator.rb +31 -0
- data/lib/generators/rockstart/development/generator_overrides/templates/resource_route_generator.rb.tt +54 -0
- data/lib/generators/rockstart/development/localhost_setup/USAGE +8 -0
- data/lib/generators/rockstart/development/localhost_setup/localhost_setup_generator.rb +34 -0
- data/lib/generators/rockstart/{docker → development/localhost_setup}/templates/localhost_domains.ext.tt +0 -0
- data/lib/generators/rockstart/{docker → development/localhost_setup}/templates/setup-localhost.tt +5 -5
- data/lib/generators/rockstart/development/readme/USAGE +8 -0
- data/lib/generators/rockstart/development/readme/readme_generator.rb +18 -0
- data/lib/generators/rockstart/development/readme/templates/README.md +74 -0
- data/lib/generators/rockstart/development/rebuild/USAGE +8 -0
- data/lib/generators/rockstart/development/rebuild/rebuild_generator.rb +21 -0
- data/lib/generators/rockstart/development/rebuild/templates/rockstart.tt +28 -0
- data/lib/generators/rockstart/{scaffold_templates → development/scaffolds}/USAGE +1 -1
- data/lib/generators/rockstart/development/scaffolds/scaffolds_generator.rb +46 -0
- data/lib/generators/rockstart/{scaffold_templates → development/scaffolds}/templates/api_controller.rb.tt +15 -7
- data/lib/generators/rockstart/{scaffold_templates → development/scaffolds}/templates/controller.rb.tt +18 -9
- data/lib/generators/rockstart/development/scaffolds/templates/factory_bot/factories.erb +8 -0
- data/lib/generators/rockstart/development/scaffolds/templates/model.rb.tt +61 -0
- data/lib/generators/rockstart/development/scaffolds/templates/rspec/api_request_spec.rb.tt +142 -0
- data/lib/generators/rockstart/development/scaffolds/templates/rspec/model_spec.rb.tt +35 -0
- data/lib/generators/rockstart/development/scaffolds/templates/rspec/request_spec.rb.tt +492 -0
- data/lib/generators/rockstart/frontend_app/USAGE +10 -0
- data/lib/generators/rockstart/frontend_app/application_urls/USAGE +8 -0
- data/lib/generators/rockstart/frontend_app/application_urls/application_urls_generator.rb +28 -0
- data/lib/generators/rockstart/{frontend_helpers → frontend_app/application_urls}/templates/application_urls.rb +0 -0
- data/lib/generators/rockstart/{frontend_helpers → frontend_app/application_urls}/templates/application_urls_helper.rb +0 -0
- data/lib/generators/rockstart/frontend_app/assets/USAGE +8 -0
- data/lib/generators/rockstart/frontend_app/assets/assets_generator.rb +11 -0
- data/lib/generators/rockstart/frontend_app/assets/templates/assets.rake +22 -0
- data/lib/generators/rockstart/frontend_app/frontend_app_generator.rb +38 -0
- data/lib/generators/rockstart/frontend_app/simple_form/USAGE +8 -0
- data/lib/generators/rockstart/frontend_app/simple_form/simple_form_generator.rb +9 -0
- data/lib/generators/rockstart/frontend_app/titles/USAGE +8 -0
- data/lib/generators/rockstart/{frontend_helpers → frontend_app/titles}/templates/titles.en.yml.tt +0 -0
- data/lib/generators/rockstart/frontend_app/titles/titles_generator.rb +22 -0
- data/lib/generators/rockstart/gemset/USAGE +8 -0
- data/lib/generators/rockstart/gemset/gemset_generator.rb +129 -0
- data/lib/generators/rockstart/mailers/USAGE +8 -0
- data/lib/generators/rockstart/mailers/mailers_generator.rb +7 -0
- data/lib/generators/rockstart/{smtp_mailer → mailers/smtp_mailer}/USAGE +0 -0
- data/lib/generators/rockstart/mailers/smtp_mailer/smtp_mailer_generator.rb +36 -0
- data/lib/generators/rockstart/{smtp_mailer/templates/config/initializers/action_mailer.rb → mailers/smtp_mailer/templates/action_mailer_initializer.rb} +0 -0
- data/lib/generators/rockstart/monitoring/USAGE +8 -0
- data/lib/generators/rockstart/{logging → monitoring/lograge}/USAGE +1 -1
- data/lib/generators/rockstart/monitoring/lograge/lograge_generator.rb +19 -0
- data/lib/generators/rockstart/monitoring/lograge/templates/lograge_initializer.rb +44 -0
- data/lib/generators/rockstart/monitoring/lograge/templates/lograge_util.rb +42 -0
- data/lib/generators/rockstart/monitoring/monitoring_generator.rb +35 -0
- data/lib/generators/rockstart/monitoring/okcomputer/USAGE +8 -0
- data/lib/generators/rockstart/monitoring/okcomputer/okcomputer_generator.rb +28 -0
- data/lib/generators/rockstart/monitoring/okcomputer/templates/okcomputer.en.yml +5 -0
- data/lib/generators/rockstart/monitoring/okcomputer/templates/okcomputer_initializer.rb.tt +34 -0
- data/lib/generators/rockstart/monitoring/okcomputer/templates/okcomputer_spec.rb +62 -0
- data/lib/generators/rockstart/monitoring/rollbar/USAGE +8 -0
- data/lib/generators/rockstart/monitoring/rollbar/rollbar_generator.rb +20 -0
- data/lib/generators/rockstart/monitoring/rollbar/templates/rollbar_initializer.rb.tt +80 -0
- data/lib/generators/rockstart/monitoring/sidekiq_ui/USAGE +8 -0
- data/lib/generators/rockstart/monitoring/sidekiq_ui/sidekiq_ui_generator.rb +38 -0
- data/lib/generators/rockstart/monitoring/sidekiq_ui/templates/sidekiq_spec.rb +32 -0
- data/lib/generators/rockstart/quality/quality_generator.rb +5 -16
- data/lib/generators/rockstart/quality/rubocop/USAGE +11 -0
- data/lib/generators/rockstart/quality/rubocop/rubocop_generator.rb +23 -0
- data/lib/generators/rockstart/quality/rubocop/templates/rubocop.rake +19 -0
- data/lib/generators/rockstart/quality/{templates → rubocop/templates}/rubocop.yml +0 -0
- data/lib/generators/rockstart/rockstart_generator.rb +13 -65
- data/lib/generators/rockstart/run/USAGE +17 -0
- data/lib/generators/rockstart/run/run_generator.rb +73 -0
- data/lib/generators/rockstart/security/brakeman/USAGE +9 -0
- data/lib/generators/rockstart/security/brakeman/brakeman_generator.rb +15 -0
- data/lib/generators/rockstart/security/{templates → brakeman/templates}/brakeman.rake +1 -1
- data/lib/generators/rockstart/security/bundler_audit/USAGE +8 -0
- data/lib/generators/rockstart/security/bundler_audit/bundler_audit_generator.rb +11 -0
- data/lib/generators/rockstart/security/bundler_audit/templates/bundler_audit.rake +14 -0
- data/lib/generators/rockstart/security/content_security/USAGE +8 -0
- data/lib/generators/rockstart/security/content_security/content_security_generator.rb +41 -0
- data/lib/generators/rockstart/security/{templates → content_security/templates}/content_security_policy_initializer.rb.tt +2 -2
- data/lib/generators/rockstart/security/{templates → content_security/templates}/content_security_spec.rb.tt +12 -13
- data/lib/generators/rockstart/security/{templates/csp_violations_controller.rb → content_security/templates/csp_violations_controller.rb.tt} +14 -6
- data/lib/generators/rockstart/security/{templates → content_security/templates}/session_store_initializer.rb.tt +1 -2
- data/lib/generators/rockstart/security/rack_attack/USAGE +8 -0
- data/lib/generators/rockstart/security/rack_attack/rack_attack_generator.rb +37 -0
- data/lib/generators/rockstart/security/{templates → rack_attack/templates}/cache_support.rb +1 -1
- data/lib/generators/rockstart/security/{templates/rack_attack.rb → rack_attack/templates/rack_attack_initializer.rb.tt} +34 -1
- data/lib/generators/rockstart/security/rack_attack/templates/rack_attack_spec.rb.tt +116 -0
- data/lib/generators/rockstart/security/security_generator.rb +20 -84
- data/lib/generators/rockstart/storage/USAGE +8 -0
- data/lib/generators/rockstart/storage/active_storage/USAGE +8 -0
- data/lib/generators/rockstart/storage/active_storage/active_storage_generator.rb +59 -0
- data/lib/generators/rockstart/storage/active_storage/templates/active_storage_initializer.rb +9 -0
- data/lib/generators/rockstart/storage/active_storage/templates/better_s3_service.rb +27 -0
- data/lib/generators/rockstart/storage/active_storage/templates/cloudcube_util.rb +30 -0
- data/lib/generators/rockstart/storage/active_storage/templates/cloudcube_util_spec.rb +73 -0
- data/lib/generators/rockstart/storage/active_storage/templates/storage.yml.tt +15 -0
- data/lib/generators/rockstart/storage/memcached/USAGE +8 -0
- data/lib/generators/rockstart/storage/memcached/memcached_generator.rb +27 -0
- data/lib/generators/rockstart/{postgres → storage/postgres}/USAGE +1 -1
- data/lib/generators/rockstart/storage/postgres/postgres_generator.rb +20 -0
- data/lib/generators/rockstart/{postgres → storage/postgres}/templates/config/database.yml.tt +6 -0
- data/lib/generators/rockstart/{postgres → storage/postgres}/templates/migration.rb.tt +0 -0
- data/lib/generators/rockstart/storage/storage_generator.rb +26 -0
- data/lib/generators/rockstart/testing/USAGE +9 -0
- data/lib/generators/rockstart/testing/env/USAGE +8 -0
- data/lib/generators/rockstart/testing/env/env_generator.rb +24 -0
- data/lib/generators/rockstart/testing/env/templates/climate_control_helpers_support.rb +14 -0
- data/lib/generators/rockstart/testing/env/templates/dotenv.test.tt +8 -0
- data/lib/generators/rockstart/{rspec → testing/rspec}/USAGE +1 -1
- data/lib/generators/rockstart/testing/rspec/rspec_generator.rb +52 -0
- data/lib/generators/rockstart/{rspec → testing/rspec}/templates/support/factory_bot.rb +0 -0
- data/lib/generators/rockstart/{rspec → testing/rspec}/templates/support/shoulda_matchers.rb +0 -0
- data/lib/generators/rockstart/{rspec → testing/rspec}/templates/support/test_helpers.rb +0 -0
- data/lib/generators/rockstart/testing/rspec/templates/support/vcr.rb +11 -0
- data/lib/generators/rockstart/testing/simplecov/USAGE +9 -0
- data/lib/generators/rockstart/testing/simplecov/simplecov_generator.rb +11 -0
- data/lib/generators/rockstart/testing/testing_generator.rb +24 -0
- data/lib/generators/rockstart/workers/USAGE +8 -0
- data/lib/generators/rockstart/workers/sidekiq/USAGE +9 -0
- data/lib/generators/rockstart/workers/sidekiq/sidekiq_generator.rb +29 -0
- data/lib/generators/rockstart/workers/sidekiq/templates/sidekiq.yml.tt +5 -0
- data/lib/generators/rockstart/workers/sidekiq/templates/sidekiq_initializer.rb +5 -0
- data/lib/generators/rockstart/workers/workers_generator.rb +18 -0
- data/lib/rockstart/base_generator.rb +4 -5
- data/lib/rockstart/env.rb +3 -1
- data/lib/rockstart/generators/class_option_helpers.rb +154 -0
- data/lib/rockstart/generators/content_security_options.rb +61 -0
- data/lib/rockstart/generators/migration_helpers.rb +30 -0
- data/lib/rockstart/generators/system_helpers.rb +14 -0
- data/lib/rockstart/generators/template_helpers.rb +27 -0
- data/lib/rockstart/version.rb +1 -1
- metadata +212 -83
- data/lib/generators/rockstart/devise/devise_generator.rb +0 -258
- data/lib/generators/rockstart/docker/docker_generator.rb +0 -86
- data/lib/generators/rockstart/docker/templates/docker-compose.yml +0 -47
- data/lib/generators/rockstart/docker/templates/dotenv.docker.tt +0 -4
- data/lib/generators/rockstart/frontend_helpers/USAGE +0 -8
- data/lib/generators/rockstart/frontend_helpers/frontend_helpers_generator.rb +0 -65
- data/lib/generators/rockstart/logging/logging_generator.rb +0 -12
- data/lib/generators/rockstart/logging/templates/rockstart/lograge_initializer.rb +0 -50
- data/lib/generators/rockstart/postgres/postgres_generator.rb +0 -32
- data/lib/generators/rockstart/pundit/pundit_generator.rb +0 -32
- data/lib/generators/rockstart/quality/templates/rubocop.rake +0 -4
- data/lib/generators/rockstart/rspec/rspec_generator.rb +0 -70
- data/lib/generators/rockstart/rspec/templates/dotenv.development +0 -1
- data/lib/generators/rockstart/rspec/templates/dotenv.test +0 -1
- data/lib/generators/rockstart/rspec/templates/rspec_templates/model/model_spec.rb +0 -13
- data/lib/generators/rockstart/scaffold_templates/scaffold_templates_generator.rb +0 -39
- data/lib/generators/rockstart/scaffold_templates/templates/rspec/scaffold/api_request_spec.rb +0 -139
- data/lib/generators/rockstart/scaffold_templates/templates/rspec/scaffold/request_spec.rb +0 -408
- data/lib/generators/rockstart/security/templates/bundler_audit.rake +0 -4
- data/lib/generators/rockstart/smtp_mailer/smtp_mailer_generator.rb +0 -30
- data/lib/generators/rockstart/tailwindcss/USAGE +0 -8
- data/lib/generators/rockstart/tailwindcss/tailwindcss_generator.rb +0 -30
- data/lib/generators/rockstart/tailwindcss/templates/application.css +0 -3
- data/lib/generators/rockstart/tailwindcss/templates/postcss.config.js +0 -32
@@ -0,0 +1,54 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Rails
|
4
|
+
# rubocop:disable Metrics/AbcSize, Metrics/MethodLength
|
5
|
+
class <%= app_const_base %>ResourceRouteGenerator < Rails::Generators::NamedBase # :nodoc:
|
6
|
+
# Properly nests namespaces passed into a generator
|
7
|
+
#
|
8
|
+
# $ bin/rails generate resource admin/users/products
|
9
|
+
#
|
10
|
+
# should give you
|
11
|
+
#
|
12
|
+
# namespace :admin do
|
13
|
+
# namespace :users do
|
14
|
+
# resources :products, concerns: :paginatable
|
15
|
+
# end
|
16
|
+
# end
|
17
|
+
def add_resource_route
|
18
|
+
return if options[:actions].present?
|
19
|
+
|
20
|
+
depth = 0
|
21
|
+
lines = []
|
22
|
+
|
23
|
+
# Create 'namespace' ladder
|
24
|
+
# namespace :foo do
|
25
|
+
# namespace :bar do
|
26
|
+
regular_class_path.each do |ns|
|
27
|
+
lines << indent("namespace :#{ns} do\n", depth * 2)
|
28
|
+
depth += 1
|
29
|
+
end
|
30
|
+
|
31
|
+
# inserts the primary resource with pagination routes
|
32
|
+
lines << indent("resources :#{file_name.pluralize}, concerns: :paginatable\n", depth * 2)
|
33
|
+
|
34
|
+
# Create `end` ladder
|
35
|
+
# end
|
36
|
+
# end
|
37
|
+
until depth.zero?
|
38
|
+
depth -= 1
|
39
|
+
lines << indent("end\n", depth * 2)
|
40
|
+
end
|
41
|
+
|
42
|
+
route lines.join
|
43
|
+
end
|
44
|
+
|
45
|
+
def add_paginatable_concern
|
46
|
+
route <<~PAGINATABLE
|
47
|
+
concern :paginatable do
|
48
|
+
get "page/:page", action: :index, on: :collection, as: ""
|
49
|
+
end
|
50
|
+
PAGINATABLE
|
51
|
+
end
|
52
|
+
end
|
53
|
+
# rubocop:enable Metrics/AbcSize, Metrics/MethodLength
|
54
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "rockstart/generators/template_helpers"
|
4
|
+
|
5
|
+
module Rockstart::Development
|
6
|
+
class LocalhostSetupGenerator < Rails::Generators::Base
|
7
|
+
include Rails::Generators::AppName
|
8
|
+
include Rockstart::Generators::TemplateHelpers
|
9
|
+
|
10
|
+
source_root File.expand_path("templates", __dir__)
|
11
|
+
|
12
|
+
def add_certificate_configuration
|
13
|
+
template "localhost_domains.ext.tt", "#{app_name}_localhost.ext"
|
14
|
+
end
|
15
|
+
|
16
|
+
def add_setup_localhost_script
|
17
|
+
script_template "setup-localhost"
|
18
|
+
end
|
19
|
+
|
20
|
+
def create_localhost_certificates
|
21
|
+
append_file ".gitignore" do
|
22
|
+
<<~GITIGNORE
|
23
|
+
|
24
|
+
# localhost certificate authority
|
25
|
+
localhostCA.*
|
26
|
+
|
27
|
+
# Generated SSL Certificates
|
28
|
+
certs/
|
29
|
+
|
30
|
+
GITIGNORE
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
File without changes
|
data/lib/generators/rockstart/{docker → development/localhost_setup}/templates/setup-localhost.tt
RENAMED
@@ -16,12 +16,12 @@ openssl x509 -outform pem -in localhostCA.pem -out localhostCA.crt
|
|
16
16
|
echo "=== Generating Domain Name Certificate ==="
|
17
17
|
|
18
18
|
openssl req -new -nodes -newkey rsa:2048 \
|
19
|
-
-keyout
|
20
|
-
-out
|
19
|
+
-keyout certs/localhost/<%= app_name %>.key \
|
20
|
+
-out certs/localhost/<%= app_name %>.csr \
|
21
21
|
-subj "/C=US/ST=YourState/L=YourCity/O=Example-Certificates/CN=<%= app_name %>.local"
|
22
22
|
|
23
23
|
openssl x509 -req -sha256 -days 1024 \
|
24
|
-
-in
|
24
|
+
-in certs/localhost/<%= app_name %>.csr \
|
25
25
|
-CA localhostCA.pem -CAkey localhostCA.key \
|
26
|
-
-CAcreateserial -extfile
|
27
|
-
-out
|
26
|
+
-CAcreateserial -extfile <%= app_name %>_localhost.ext \
|
27
|
+
-out certs/localhost/<%= app_name %>.crt
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "rockstart/generators/class_option_helpers"
|
4
|
+
|
5
|
+
module Rockstart::Development
|
6
|
+
class ReadmeGenerator < Rails::Generators::Base
|
7
|
+
include Rails::Generators::AppName
|
8
|
+
include Rockstart::Generators::ClassOptionHelpers
|
9
|
+
|
10
|
+
source_root File.expand_path("templates", __dir__)
|
11
|
+
|
12
|
+
auth0_class_option
|
13
|
+
|
14
|
+
def copy_readme
|
15
|
+
template "README.md"
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,74 @@
|
|
1
|
+
# <%= camelized %>
|
2
|
+
|
3
|
+
This README would normally document whatever steps are necessary to get the
|
4
|
+
application up and running.
|
5
|
+
|
6
|
+
Things you may want to cover:
|
7
|
+
|
8
|
+
* Ruby version
|
9
|
+
|
10
|
+
* System dependencies
|
11
|
+
|
12
|
+
## Configuration
|
13
|
+
|
14
|
+
<% if auth0? -%>
|
15
|
+
### Auth0 User Roles
|
16
|
+
|
17
|
+
In order to configure User Roles, you need to add a custom [Rule](https://auth0.com/docs/rules) into Auth0 to include the User's current permissions when generating a User.
|
18
|
+
|
19
|
+
Access the Admin panel for your Auth0 setup (in Heroku run: `heroku addons:open auth0`), and create a Rule with the following code:
|
20
|
+
|
21
|
+
```javascript
|
22
|
+
function (user, context, callback) {
|
23
|
+
var namespace = 'http://<%= app_name %>/';
|
24
|
+
var roles = (user.app_metadata && user.app_metadata.roles) || [];
|
25
|
+
context.idToken[namespace + 'roles'] = roles;
|
26
|
+
context.accessToken[namespace + 'roles'] = roles;
|
27
|
+
return callback(null, user, context);
|
28
|
+
}
|
29
|
+
```
|
30
|
+
|
31
|
+
Find a profile you wish to make an admin, and `"admin"` to a roles array inside of `app_metadata`. For example:
|
32
|
+
|
33
|
+
```javascript
|
34
|
+
{
|
35
|
+
"roles": [
|
36
|
+
"admin"
|
37
|
+
]
|
38
|
+
}
|
39
|
+
```
|
40
|
+
|
41
|
+
You should now be able to sign in, with that profile, with Admin access.
|
42
|
+
|
43
|
+
<% end -%>
|
44
|
+
* Database creation
|
45
|
+
|
46
|
+
* Database initialization
|
47
|
+
|
48
|
+
* How to run the test suite
|
49
|
+
|
50
|
+
* Services (job queues, cache servers, search engines, etc.)
|
51
|
+
|
52
|
+
## Deployment Instructions
|
53
|
+
|
54
|
+
### Heroku
|
55
|
+
|
56
|
+
<%= camelized %> has been pre-configured to deploy to Heroku; either as a Review app, or directly for Production.
|
57
|
+
|
58
|
+
For Production applications, you should already have a git remote with the name `heroku` configured for this application. If this is not found, it will be assumed the app is a review application, and a new deployment will be generated.
|
59
|
+
|
60
|
+
Deploy both Review and Production applications by running:
|
61
|
+
|
62
|
+
```
|
63
|
+
bin/deploy-heroku
|
64
|
+
```
|
65
|
+
|
66
|
+
With each deployments, Heroku will automatically run `bin/hooks-release`. Newly provisioned review apps will run `bin/hooks-postdeploy`; which will setup the database, and verify the initial installation was successful.
|
67
|
+
|
68
|
+
For new installs; all required addons will be automatically provisioned. You will have to manually add any required addons for any existing applications, as specified within the `app.json` file.
|
69
|
+
|
70
|
+
<% if auth0? -%>
|
71
|
+
While every attempt has been made to automate provisioning of apps, you will need to manually configure the User Rule and User Roles within Auth0. Not doing so will disable all Admin functionality.
|
72
|
+
|
73
|
+
<% end -%>
|
74
|
+
* ...
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "rockstart/generators/class_option_helpers"
|
4
|
+
require "rockstart/generators/content_security_options"
|
5
|
+
require "rockstart/generators/template_helpers"
|
6
|
+
|
7
|
+
module Rockstart::Development
|
8
|
+
class RebuildGenerator < Rails::Generators::Base
|
9
|
+
include Rockstart::Generators::ClassOptionHelpers
|
10
|
+
include Rockstart::Generators::ContentSecurityOptions
|
11
|
+
include Rockstart::Generators::TemplateHelpers
|
12
|
+
|
13
|
+
source_root File.expand_path("templates", __dir__)
|
14
|
+
|
15
|
+
all_class_options
|
16
|
+
|
17
|
+
def add_rocstart_script
|
18
|
+
script_template "rockstart"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
require "fileutils"
|
5
|
+
|
6
|
+
# rockstart rebuild-script script generated by rockstart
|
7
|
+
|
8
|
+
# path to your application root.
|
9
|
+
APP_ROOT = File.expand_path("..", __dir__)
|
10
|
+
|
11
|
+
def system!(*args)
|
12
|
+
system(*args) || abort("\n== Command #{args} failed ==")
|
13
|
+
end
|
14
|
+
|
15
|
+
FileUtils.chdir APP_ROOT do
|
16
|
+
puts "== Regenerating previous rockstart build =="
|
17
|
+
system! "bundle exec rails generate rockstart" \
|
18
|
+
<%-
|
19
|
+
class_options = all_class_options
|
20
|
+
flags = content_security_flags
|
21
|
+
-%>
|
22
|
+
<%- class_options.each_with_index do |class_option, index| -%>
|
23
|
+
" <%= class_option %>"<%- if (index + 1) < class_options.size || flags.any? %> \<%- end %>
|
24
|
+
<%- end -%>
|
25
|
+
<%- content_security_flags.each_with_index do |(flag, values), index| -%>
|
26
|
+
" <%= flag %> <%= values.join(" ") %>"<%- if (index + 1) < flags.size %> \<%- end %>
|
27
|
+
<%- end -%>
|
28
|
+
end
|
@@ -2,7 +2,7 @@ Description:
|
|
2
2
|
Overrides the default rails scaffold templates with pre-configured defaults
|
3
3
|
|
4
4
|
Example:
|
5
|
-
rails generate rockstart:
|
5
|
+
rails generate rockstart:development:scaffolds
|
6
6
|
|
7
7
|
This will create:
|
8
8
|
Overrides rails scaffold_controller generator templates
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "rockstart/generators/class_option_helpers"
|
4
|
+
|
5
|
+
module Rockstart::Development
|
6
|
+
class ScaffoldsGenerator < Rails::Generators::Base
|
7
|
+
include Rockstart::Generators::ClassOptionHelpers
|
8
|
+
|
9
|
+
source_root File.expand_path("templates", __dir__)
|
10
|
+
|
11
|
+
auth0_class_option
|
12
|
+
pundit_class_option
|
13
|
+
|
14
|
+
def copy_scaffold_templates
|
15
|
+
template "api_controller.rb.tt", "#{scaffold_controller_dir}/api_controller.rb.tt"
|
16
|
+
template "controller.rb.tt", "#{scaffold_controller_dir}/controller.rb.tt"
|
17
|
+
end
|
18
|
+
|
19
|
+
def copy_model_template
|
20
|
+
copy_file "model.rb.tt", "lib/templates/active_record/model/model.rb.tt"
|
21
|
+
copy_file "factory_bot/factories.erb", "lib/templates/factory_bot/model/factories.erb"
|
22
|
+
end
|
23
|
+
|
24
|
+
def copy_rspec_model_templates
|
25
|
+
copy_file "rspec/model_spec.rb.tt",
|
26
|
+
"#{rspec_templates_dir}/model/model_spec.rb"
|
27
|
+
end
|
28
|
+
|
29
|
+
def copy_rspec_scaffold_templates
|
30
|
+
template "rspec/api_request_spec.rb.tt",
|
31
|
+
"#{rspec_templates_dir}/scaffold/api_request_spec.rb"
|
32
|
+
template "rspec/request_spec.rb.tt",
|
33
|
+
"#{rspec_templates_dir}/scaffold/request_spec.rb"
|
34
|
+
end
|
35
|
+
|
36
|
+
private
|
37
|
+
|
38
|
+
def scaffold_controller_dir
|
39
|
+
@scaffold_controller_dir ||= "lib/templates/rails/scaffold_controller"
|
40
|
+
end
|
41
|
+
|
42
|
+
def rspec_templates_dir
|
43
|
+
@rspec_templates_dir ||= "lib/templates/rspec"
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -4,9 +4,12 @@ require_dependency "<%%= namespaced_path %>/application_controller"
|
|
4
4
|
<%% end -%>
|
5
5
|
<%% module_namespacing do -%>
|
6
6
|
class <%%= controller_class_name %>Controller < ApplicationController
|
7
|
-
|
7
|
+
<%%-
|
8
|
+
# Generate scaffold with name or title, and a `slug:uniq` field to enable friendly_id
|
9
|
+
using_friendly_id = attributes_names.any? { |name| %w(name title).include?(name) } &&
|
10
|
+
attributes_names.any? { |name| %w(slug).include?(name) }
|
11
|
+
-%>
|
8
12
|
before_action :authenticate_user!
|
9
|
-
<%- end -%>
|
10
13
|
before_action :assign_<%%= singular_table_name %>, only: [:show, :update, :destroy]
|
11
14
|
<%- if pundit? -%>
|
12
15
|
after_action :verify_authorized
|
@@ -73,11 +76,16 @@ class <%%= controller_class_name %>Controller < ApplicationController
|
|
73
76
|
private
|
74
77
|
# Use callbacks to share common setup or constraints between actions.
|
75
78
|
def assign_<%%= singular_table_name %>
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
79
|
+
<%%-
|
80
|
+
<%- if pundit? -%>
|
81
|
+
finder_class = "policy_scope(#{class_name})"
|
82
|
+
<%- else -%>
|
83
|
+
finder_class = class_name
|
84
|
+
<%- end -%>
|
85
|
+
# Use friendly_id for slug lookup
|
86
|
+
finder_class += ".friendly" if using_friendly_id
|
87
|
+
-%>
|
88
|
+
@<%%= singular_table_name %> = <%%= orm_class.find(finder_class, "params[:id]") %>
|
81
89
|
end
|
82
90
|
|
83
91
|
# Only allow a trusted parameter "white list" through.
|
@@ -4,13 +4,16 @@ require_dependency "<%%= namespaced_path %>/application_controller"
|
|
4
4
|
<%% end -%>
|
5
5
|
<%% module_namespacing do -%>
|
6
6
|
class <%%= controller_class_name %>Controller < ApplicationController
|
7
|
+
<%%-
|
8
|
+
# Generate scaffold with name or title, and a `slug:uniq` field to enable friendly_id
|
9
|
+
using_friendly_id = attributes_names.any? { |name| %w(name title).include?(name) } &&
|
10
|
+
attributes_names.any? { |name| %w(slug).include?(name) }
|
11
|
+
-%>
|
7
12
|
<%- if pundit? -%>
|
8
13
|
include PunditErrorHandling
|
9
14
|
|
10
15
|
<%- end -%>
|
11
|
-
<%- if devise? -%>
|
12
16
|
before_action :authenticate_user!
|
13
|
-
<%- end -%>
|
14
17
|
before_action :assign_<%%= singular_table_name %>, only: [:show, :edit, :update, :destroy]
|
15
18
|
<%- if pundit? -%>
|
16
19
|
after_action :verify_authorized
|
@@ -18,12 +21,13 @@ class <%%= controller_class_name %>Controller < ApplicationController
|
|
18
21
|
<%- end -%>
|
19
22
|
|
20
23
|
# GET <%%= route_url %>
|
24
|
+
# GET <%%= route_url %>/page/1
|
21
25
|
def index
|
22
26
|
<%- if pundit? -%>
|
23
27
|
authorize <%%= class_name %>
|
24
|
-
@<%%= plural_table_name %> = policy_scope(<%%= class_name %>)
|
28
|
+
@<%%= plural_table_name %> = policy_scope(<%%= class_name %>).page params[:page]
|
25
29
|
<%- else -%>
|
26
|
-
@<%%= plural_table_name %> = <%%= orm_class.all(class_name)
|
30
|
+
@<%%= plural_table_name %> = <%%= orm_class.all(class_name) %>.page params[:page]
|
27
31
|
<%- end -%>
|
28
32
|
end
|
29
33
|
|
@@ -103,11 +107,16 @@ class <%%= controller_class_name %>Controller < ApplicationController
|
|
103
107
|
private
|
104
108
|
# Use callbacks to share common setup or constraints between actions.
|
105
109
|
def assign_<%%= singular_table_name %>
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
110
|
+
<%%-
|
111
|
+
<%- if pundit? -%>
|
112
|
+
finder_class = "policy_scope(#{class_name})"
|
113
|
+
<%- else -%>
|
114
|
+
finder_class = class_name
|
115
|
+
<%- end -%>
|
116
|
+
# Use friendly_id for slug lookup
|
117
|
+
finder_class += ".friendly" if using_friendly_id
|
118
|
+
-%>
|
119
|
+
@<%%= singular_table_name %> = <%%= orm_class.find(finder_class, "params[:id]") %>
|
111
120
|
end
|
112
121
|
|
113
122
|
# Only allow a trusted parameter "white list" through.
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<%-
|
2
|
+
filtered_factory_definition = factory_definition.rstrip
|
3
|
+
.gsub(/\"MyString\"/, "Faker::Lorem.sentence") # Randomly generate strings
|
4
|
+
.sub(/slug[^\}]+}$/, "# slug:friendly_id") # ignore friendly_id slug
|
5
|
+
-%>
|
6
|
+
FactoryBot.define do
|
7
|
+
<%= filtered_factory_definition %>
|
8
|
+
end
|