jets 3.1.0 → 5.0.10
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/.github/FUNDING.yml +1 -0
- data/.gitignore +5 -1
- data/CHANGELOG.md +190 -1
- data/CONTRIBUTING.md +1 -1
- data/Gemfile +1 -5
- data/LICENSE.txt +1 -1
- data/README.md +28 -50
- data/Rakefile +3 -3
- data/backers.md +0 -5
- data/engines/internal/app/controllers/jets/application_controller.rb +28 -0
- data/engines/internal/app/controllers/jets/bare_controller.rb +6 -0
- data/engines/internal/app/controllers/jets/health_controller.rb +55 -0
- data/engines/internal/app/controllers/jets/info_controller.rb +45 -0
- data/{lib/jets → engines}/internal/app/controllers/jets/mailers_controller.rb +12 -14
- data/{lib/jets → engines}/internal/app/controllers/jets/mount_controller.rb +6 -10
- data/{lib/jets → engines}/internal/app/controllers/jets/public_controller.rb +6 -2
- data/engines/internal/app/controllers/jets/welcome_controller.rb +9 -0
- data/engines/internal/app/functions/jets/base_path.rb +109 -0
- data/engines/internal/app/functions/jets/base_path_mapping.rb +191 -0
- data/engines/internal/app/jobs/jets/preheat_job.rb +68 -0
- data/engines/internal/app/views/jets/info/properties.html.erb +1 -0
- data/engines/internal/app/views/jets/info/routes.html.erb +10 -0
- data/{lib/jets → engines}/internal/app/views/jets/mailers/email.html.erb +37 -17
- data/engines/internal/app/views/jets/mailers/index.html.erb +8 -0
- data/engines/internal/app/views/jets/mailers/mailer.html.erb +6 -0
- data/{lib/jets/commands/templates/skeleton/public/index.html.tt → engines/internal/app/views/jets/welcome/index.html.erb} +8 -4
- data/engines/internal/app/views/layouts/application.html.erb +51 -0
- data/engines/internal/lib/internal/actiondispatch.rb +39 -0
- data/engines/internal/lib/internal/actionmailer.rb +51 -0
- data/engines/internal/lib/internal/actionview.rb +152 -0
- data/engines/internal/lib/internal/activerecord.rb +37 -0
- data/engines/internal/lib/internal/activesupport.rb +47 -0
- data/engines/internal/lib/internal/engine.rb +13 -0
- data/engines/internal/lib/internal/i18n_engine.rb +19 -0
- data/engines/internal/lib/internal/jets_controller.rb +46 -0
- data/engines/internal/lib/internal/overrides/debug_exceptions.rb +40 -0
- data/engines/internal/lib/internal/templates/rescues/_trace.html.erb +62 -0
- data/engines/internal/lib/internal/templates/rescues/_trace.text.erb +9 -0
- data/engines/internal/lib/internal/turbines/asset_tag_helper.rb +70 -0
- data/engines/internal/lib/internal/turbines/helpers.rb +18 -0
- data/engines/internal/lib/internal/turbines/routes_helpers.rb +42 -0
- data/exe/jets +1 -10
- data/jets.gemspec +17 -13
- data/lib/jets/app_loader.rb +77 -0
- data/lib/jets/application/bootstrap.rb +100 -0
- data/lib/jets/application/configuration/defaults.rb +256 -0
- data/lib/jets/application/configuration.rb +494 -0
- data/lib/jets/application/default_middleware_stack.rb +140 -0
- data/lib/jets/application/dummy_erb_compiler.rb +18 -0
- data/lib/jets/application/finisher.rb +266 -0
- data/lib/jets/application/routes_reloader.rb +80 -0
- data/lib/jets/application.rb +515 -199
- data/lib/jets/authorizer/base.rb +1 -0
- data/lib/jets/authorizer/dsl.rb +15 -11
- data/lib/jets/authorizer/helpers/iam_helper.rb +13 -11
- data/lib/jets/autoloaders/gem.rb +70 -0
- data/lib/jets/autoloaders/inflector.rb +21 -0
- data/lib/jets/autoloaders.rb +38 -101
- data/lib/jets/aws_info.rb +2 -2
- data/lib/jets/aws_services/stack_status.rb +2 -2
- data/lib/jets/aws_services.rb +8 -0
- data/lib/jets/backtrace_cleaner.rb +27 -0
- data/lib/jets/booter.rb +30 -118
- data/lib/jets/builders/code_builder.rb +67 -125
- data/lib/jets/builders/code_size.rb +1 -0
- data/lib/jets/builders/gem_replacer.rb +6 -12
- data/lib/jets/builders/handler_generator.rb +43 -15
- data/lib/jets/builders/lambda_layer.rb +2 -7
- data/lib/jets/builders/purger.rb +1 -1
- data/lib/jets/builders/rack_packager.rb +1 -1
- data/lib/jets/builders/ruby_packager.rb +54 -10
- data/lib/jets/builders/shim_vars/app.rb +10 -6
- data/lib/jets/builders/templates/handlers/one_lambda_for_all_controllers.rb +33 -0
- data/lib/jets/builders/templates/handlers/one_lambda_per_controller.rb +20 -0
- data/lib/jets/builders/templates/{handler.rb → handlers/one_lambda_per_method.rb} +6 -0
- data/lib/jets/bundle.rb +2 -9
- data/lib/jets/cfn/base.rb +82 -0
- data/lib/jets/cfn/builder/api/base.rb +12 -0
- data/lib/jets/cfn/{builders/api_deployment_builder.rb → builder/api/deployment.rb} +11 -21
- data/lib/jets/cfn/builder/api/gateway.rb +104 -0
- data/lib/jets/cfn/builder/api/mapping.rb +54 -0
- data/lib/jets/cfn/builder/api/methods.rb +72 -0
- data/lib/jets/cfn/builder/api/paged.rb +30 -0
- data/lib/jets/cfn/builder/api/pages/base.rb +105 -0
- data/lib/jets/cfn/builder/api/pages/methods.rb +17 -0
- data/lib/jets/cfn/builder/api/pages/page.rb +19 -0
- data/lib/jets/cfn/builder/api/pages/resources.rb +21 -0
- data/lib/jets/cfn/builder/api/resources.rb +40 -0
- data/lib/jets/cfn/{builders/authorizer_builder.rb → builder/authorizer.rb} +16 -19
- data/lib/jets/cfn/builder/controller.rb +28 -0
- data/lib/jets/cfn/builder/function.rb +9 -0
- data/lib/jets/cfn/builder/interface.rb +146 -0
- data/lib/jets/cfn/builder/job.rb +10 -0
- data/lib/jets/cfn/builder/nested.rb +130 -0
- data/lib/jets/cfn/builder/one_controller.rb +53 -0
- data/lib/jets/cfn/{builders/parent_builder → builder/parent}/stagger.rb +1 -1
- data/lib/jets/cfn/builder/parent.rb +149 -0
- data/lib/jets/cfn/builder/post_process.rb +25 -0
- data/lib/jets/cfn/{builders/rule_builder.rb → builder/rule.rb} +4 -8
- data/lib/jets/cfn/{builders/shared_builder.rb → builder/shared.rb} +5 -4
- data/lib/jets/cfn/{builders → builder}/util/source.rb +1 -1
- data/lib/jets/{commands/build.rb → cfn/builder.rb} +58 -80
- data/lib/jets/cfn/deployment.rb +85 -0
- data/lib/jets/cfn/download.rb +39 -0
- data/lib/jets/cfn/params/api/base.rb +39 -0
- data/lib/jets/cfn/params/api/cors.rb +10 -0
- data/lib/jets/cfn/params/api/methods.rb +69 -0
- data/lib/jets/cfn/params/api/resources.rb +28 -0
- data/lib/jets/{resource/child_stack/common_parameters.rb → cfn/params/common.rb} +4 -4
- data/lib/jets/{resource → cfn/resource}/api_gateway/authorizer.rb +21 -21
- data/lib/jets/cfn/resource/api_gateway/base_path/function.rb +57 -0
- data/lib/jets/{resource → cfn/resource}/api_gateway/base_path/mapping.rb +13 -12
- data/lib/jets/cfn/resource/api_gateway/base_path/role.rb +70 -0
- data/lib/jets/{resource → cfn/resource}/api_gateway/deployment.rb +13 -20
- data/lib/jets/{resource → cfn/resource}/api_gateway/domain_name.rb +11 -11
- data/lib/jets/{resource → cfn/resource}/api_gateway/method/authorization.rb +1 -1
- data/lib/jets/cfn/resource/api_gateway/method.rb +92 -0
- data/lib/jets/{resource → cfn/resource}/api_gateway/resource.rb +14 -10
- data/lib/jets/cfn/resource/api_gateway/resource_id.rb +25 -0
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/change_detection.rb +1 -1
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/logical_id/message.rb +14 -4
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/logical_id.rb +4 -4
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/change/base.rb +15 -41
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/change/media_types.rb +3 -3
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/change/page.rb +6 -6
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/change/to.rb +8 -3
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/change/variable.rb +2 -2
- data/lib/jets/cfn/resource/api_gateway/rest_api/routes/change.rb +27 -0
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/collision/variable_exception.rb +1 -1
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/collision.rb +1 -1
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes.rb +1 -1
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api.rb +22 -12
- data/lib/jets/{resource → cfn/resource}/associated.rb +1 -1
- data/lib/jets/{resource → cfn/resource}/config/config_rule.rb +18 -18
- data/lib/jets/{resource → cfn/resource}/config/managed_rule.rb +5 -5
- data/lib/jets/{resource → cfn/resource}/events/rule.rb +10 -10
- data/lib/jets/{resource → cfn/resource}/iam/application_role.rb +4 -4
- data/lib/jets/cfn/resource/iam/base_role_definition.rb +56 -0
- data/lib/jets/{resource → cfn/resource}/iam/class_role.rb +5 -5
- data/lib/jets/{resource → cfn/resource}/iam/function_role.rb +6 -6
- data/lib/jets/{resource → cfn/resource}/iam/managed_policy.rb +1 -1
- data/lib/jets/cfn/resource/iam/policy.rb +31 -0
- data/lib/jets/{resource → cfn/resource}/iam/policy_document.rb +10 -9
- data/lib/jets/{resource → cfn/resource}/iot/topic_rule.rb +10 -10
- data/lib/jets/{resource → cfn/resource}/lambda/event_source_mapping.rb +9 -9
- data/lib/jets/cfn/resource/lambda/function/controller.rb +21 -0
- data/lib/jets/{resource → cfn/resource}/lambda/function/environment.rb +9 -7
- data/lib/jets/cfn/resource/lambda/function.rb +266 -0
- data/lib/jets/{resource → cfn/resource}/lambda/gem_layer.rb +2 -2
- data/lib/jets/{resource → cfn/resource}/lambda/layer_version.rb +10 -10
- data/lib/jets/cfn/resource/lambda/permission.rb +51 -0
- data/lib/jets/cfn/resource/logs/subscription_filter.rb +31 -0
- data/lib/jets/cfn/resource/nested/api/base.rb +4 -0
- data/lib/jets/cfn/resource/nested/api/deployment.rb +53 -0
- data/lib/jets/cfn/resource/nested/api/gateway.rb +15 -0
- data/lib/jets/cfn/resource/nested/api/mapping.rb +33 -0
- data/lib/jets/cfn/resource/nested/api/methods.rb +30 -0
- data/lib/jets/cfn/resource/nested/api/page.rb +8 -0
- data/lib/jets/cfn/resource/nested/api/resources.rb +22 -0
- data/lib/jets/{resource/child_stack → cfn/resource/nested}/app_class.rb +15 -48
- data/lib/jets/{resource/child_stack → cfn/resource/nested}/authorizer.rb +8 -14
- data/lib/jets/cfn/resource/nested/base.rb +38 -0
- data/lib/jets/cfn/resource/nested/one_controller.rb +48 -0
- data/lib/jets/{resource/child_stack → cfn/resource/nested}/shared.rb +10 -16
- data/lib/jets/cfn/resource/one/function.rb +66 -0
- data/lib/jets/cfn/resource/one/permission.rb +17 -0
- data/lib/jets/{resource → cfn/resource}/replacer.rb +26 -27
- data/lib/jets/{resource → cfn/resource}/route53/record_set.rb +18 -18
- data/lib/jets/{resource → cfn/resource}/s3/bucket.rb +4 -4
- data/lib/jets/cfn/resource/s3/jets_bucket.rb +68 -0
- data/lib/jets/{resource → cfn/resource}/sns/subscription.rb +8 -8
- data/lib/jets/{resource → cfn/resource}/sns/topic.rb +10 -10
- data/lib/jets/{resource → cfn/resource}/sns/topic_policy.rb +13 -13
- data/lib/jets/{resource → cfn/resource}/sqs/queue.rb +5 -5
- data/lib/jets/{resource → cfn/resource}/standardizer.rb +8 -9
- data/lib/jets/cfn/resource.rb +8 -0
- data/lib/jets/cfn/ship.rb +33 -29
- data/lib/jets/cfn/status.rb +46 -3
- data/lib/jets/cfn/template.rb +89 -0
- data/lib/jets/cfn/upload.rb +29 -23
- data/lib/jets/cli.rb +28 -203
- data/lib/jets/command/actions.rb +49 -0
- data/lib/jets/command/api_helpers.rb +42 -0
- data/lib/jets/command/aws_helpers.rb +26 -0
- data/lib/jets/command/base.rb +209 -0
- data/lib/jets/command/behavior.rb +83 -0
- data/lib/jets/command/environment_argument.rb +42 -0
- data/lib/jets/command/help/call.md +48 -0
- data/lib/jets/{commands → command}/help/deploy.md +1 -1
- data/lib/jets/command/help/gems/check.md +1 -0
- data/lib/jets/command/help/logs.md +21 -0
- data/lib/jets/{commands → command}/help/new.md +3 -4
- data/lib/jets/command/help/projects.md +6 -0
- data/lib/jets/command/help/releases.md +19 -0
- data/lib/jets/command/help/rollback.md +5 -0
- data/lib/jets/command/help/routes.md +15 -0
- data/lib/jets/command/help/runner.md +40 -0
- data/lib/jets/command/help/stacks.md +6 -0
- data/lib/jets/command/help.rb +17 -0
- data/lib/jets/command/helpers/editor.rb +35 -0
- data/lib/jets/command/rake_decorate.rb +38 -0
- data/lib/jets/command.rb +142 -0
- data/lib/jets/commands/application/application_command.rb +46 -0
- data/lib/jets/commands/build/build_command.rb +33 -0
- data/lib/jets/commands/call/anonymous_guesser.rb +1 -1
- data/lib/jets/commands/call/autoload_guesser.rb +2 -2
- data/lib/jets/commands/call/base_guesser.rb +5 -5
- data/lib/jets/commands/call/call_command.rb +27 -0
- data/lib/jets/commands/call/caller.rb +184 -0
- data/lib/jets/commands/call/guesser.rb +1 -1
- data/lib/jets/commands/clean/base.rb +1 -1
- data/lib/jets/commands/clean/build.rb +1 -1
- data/lib/jets/commands/clean/clean_command.rb +15 -0
- data/lib/jets/commands/clean/log.rb +4 -4
- data/lib/jets/commands/configure/configure_command.rb +9 -0
- data/lib/jets/commands/console/console_command.rb +38 -0
- data/lib/jets/commands/credentials/USAGE +103 -0
- data/lib/jets/commands/credentials/credentials_command/diffing.rb +51 -0
- data/lib/jets/commands/credentials/credentials_command.rb +139 -0
- data/lib/jets/commands/db/system/change/change_command.rb +24 -0
- data/lib/jets/commands/dbconsole/dbconsole_command.rb +184 -0
- data/lib/jets/commands/degenerate/degenerate_command.rb +21 -0
- data/lib/jets/commands/delete/delete_command.rb +154 -0
- data/lib/jets/commands/{deploy.rb → deploy/deploy_command.rb} +34 -53
- data/lib/jets/commands/dev/dev_command.rb +19 -0
- data/lib/jets/commands/{dotenv.rb → dotenv/dotenv_command.rb} +2 -2
- data/lib/jets/commands/encrypted/USAGE +46 -0
- data/lib/jets/commands/encrypted/encrypted_command.rb +87 -0
- data/lib/jets/commands/gems/gems_command.rb +14 -0
- data/lib/jets/commands/generate/generate_command.rb +95 -0
- data/lib/jets/commands/help/USAGE +20 -0
- data/lib/jets/commands/help/help_command.rb +15 -0
- data/lib/jets/commands/initializers/initializers_command.rb +19 -0
- data/lib/jets/commands/logs/logs_command.rb +45 -0
- data/lib/jets/commands/new/new_command.rb +19 -0
- data/lib/jets/commands/notes/notes_command.rb +30 -0
- data/lib/jets/commands/plugin/plugin_command.rb +45 -0
- data/lib/jets/commands/projects/projects_command.rb +30 -0
- data/lib/jets/commands/rake/rake_command.rb +59 -0
- data/lib/jets/commands/releases/releases_command.rb +124 -0
- data/lib/jets/commands/rollback/rollback_command.rb +33 -0
- data/lib/jets/commands/routes/routes_command.rb +19 -0
- data/lib/jets/commands/runner/runner_command.rb +60 -0
- data/lib/jets/commands/server/server_command.rb +291 -0
- data/lib/jets/commands/stacks/stacks_command.rb +39 -0
- data/lib/jets/commands/status/status_command.rb +16 -0
- data/lib/jets/commands/url/url_command.rb +92 -0
- data/lib/jets/commands/version/version_command.rb +11 -0
- data/lib/jets/commands.rb +17 -0
- data/lib/jets/configuration.rb +166 -0
- data/lib/jets/controller/base.rb +105 -183
- data/lib/jets/controller/compat/abstract_controller/base.rb +126 -0
- data/lib/jets/controller/compat/action_controller/metal.rb +99 -0
- data/lib/jets/controller/compat/caching.rb +13 -0
- data/lib/jets/controller/compat/future.rb +13 -0
- data/lib/jets/controller/compat/route_set.rb +47 -0
- data/lib/jets/controller/decorate/apigw_stage.rb +39 -0
- data/lib/jets/controller/{authorization.rb → decorate/authorization.rb} +1 -1
- data/lib/jets/controller/decorate/logging.rb +90 -0
- data/lib/jets/controller/decorate/redirecting.rb +16 -0
- data/lib/jets/controller/decorate/url_for.rb +10 -0
- data/lib/jets/controller/{rack/adapter.rb → handler/apigw.rb} +36 -37
- data/lib/jets/controller/handler.rb +41 -0
- data/lib/jets/controller/middleware/main.rb +16 -8
- data/lib/jets/controller/middleware/{local/api_gateway.rb → mimic/apigw.rb} +41 -4
- data/lib/jets/controller/middleware/mimic/lambda_context.rb +44 -0
- data/lib/jets/controller/middleware/{local.rb → mimic.rb} +36 -51
- data/lib/jets/controller/rack_adapter/action.rb +35 -0
- data/lib/jets/controller/{rack → rack_adapter}/env.rb +39 -18
- data/lib/jets/controller/request/compat/params.rb +144 -0
- data/lib/jets/controller/request/compat/request.rb +125 -0
- data/lib/jets/controller/request.rb +35 -18
- data/lib/jets/controller/response/compat/response.rb +67 -0
- data/lib/jets/controller/response.rb +91 -8
- data/lib/jets/core.rb +159 -52
- data/lib/jets/core_ext/file.rb +9 -0
- data/lib/jets/core_ext/kernel.rb +2 -2
- data/lib/jets/core_ext/symbol.rb +5 -0
- data/lib/jets/core_ext.rb +4 -0
- data/lib/jets/dev_caching.rb +44 -0
- data/lib/jets/dotenv/ssm.rb +6 -3
- data/lib/jets/dotenv.rb +4 -3
- data/lib/jets/engine/configuration.rb +96 -0
- data/lib/jets/engine/turbines.rb +23 -0
- data/lib/jets/engine.rb +380 -0
- data/lib/jets/erb.rb +1 -1
- data/lib/jets/exception_reporting.rb +43 -0
- data/lib/jets/generators/job/job_generator.rb +41 -0
- data/lib/jets/generators/job/templates/event_types/dynamodb.rb.tt +8 -0
- data/lib/jets/generators/job/templates/event_types/iot.rb.tt +8 -0
- data/lib/jets/generators/job/templates/event_types/kinesis.rb.tt +9 -0
- data/lib/jets/generators/job/templates/event_types/log.rb.tt +9 -0
- data/lib/jets/generators/job/templates/event_types/rule.rb.tt +23 -0
- data/lib/jets/generators/job/templates/event_types/s3.rb.tt +11 -0
- data/lib/jets/generators/job/templates/event_types/scheduled.rb.tt +8 -0
- data/lib/jets/generators/job/templates/event_types/sns.rb.tt +11 -0
- data/lib/jets/generators/job/templates/event_types/sqs.rb.tt +11 -0
- data/lib/jets/generators/overrides/app/USAGE +38 -0
- data/lib/jets/generators/overrides/app/app_generator.rb +148 -0
- data/lib/jets/generators/overrides/app/helpers.rb +139 -0
- data/lib/jets/generators/overrides/app/templates/.env +10 -0
- data/lib/jets/{commands/templates/skeleton/.gitignore → generators/overrides/app/templates/.gitignore.tt} +2 -1
- data/lib/jets/generators/overrides/app/templates/.jetsignore +6 -0
- data/lib/jets/generators/overrides/app/templates/Gemfile.tt +28 -0
- data/lib/jets/generators/overrides/app/templates/Rakefile +2 -0
- data/lib/jets/generators/overrides/app/templates/app/assets/config/manifest.js +3 -0
- data/lib/jets/generators/overrides/app/templates/app/assets/stylesheets/application.css +15 -0
- data/lib/jets/generators/overrides/app/templates/app/javascript/application.js +5 -0
- data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/app/models/application_record.rb +1 -1
- data/lib/jets/generators/overrides/app/templates/app/views/layouts/application.html.erb.tt +30 -0
- data/lib/jets/generators/overrides/app/templates/bin/jets +3 -0
- data/lib/jets/generators/overrides/app/templates/config/application.rb.tt +15 -0
- data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/config/database.yml.tt +1 -1
- data/lib/jets/generators/overrides/app/templates/config/environments/development.rb.tt +29 -0
- data/lib/jets/generators/overrides/app/templates/config/environments/production.rb.tt +21 -0
- data/lib/jets/generators/overrides/app/templates/config/environments/test.rb.tt +23 -0
- data/lib/jets/generators/overrides/app/templates/config/initializers/content_security_policy.rb +31 -0
- data/lib/jets/generators/overrides/app/templates/config/initializers/filter_parameter_logging.rb +8 -0
- data/lib/jets/generators/overrides/app/templates/config/initializers/permissions_policy.rb +11 -0
- data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/config/routes.rb +5 -1
- data/lib/jets/generators/overrides/app/templates/db/.gitkeep +0 -0
- data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/public/404.html +6 -6
- data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/public/422.html +6 -6
- data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/public/500.html +6 -6
- data/lib/jets/generators/overrides/templates/erb/scaffold/index.html.erb +22 -0
- data/lib/jets/generators/overrides/templates/erb/scaffold/partial.html.erb +8 -0
- data/lib/jets/{generator/templates/rails/scaffold_controller/api_controller.rb → generators/overrides/templates/rails/scaffold_controller/api_controller.rb.tt} +5 -9
- data/lib/jets/generators/overrides/templates/rails/scaffold_controller/controller.rb.tt +67 -0
- data/lib/jets/generators.rb +112 -0
- data/lib/jets/inflections.rb +1 -1
- data/lib/jets/info.rb +116 -0
- data/lib/jets/initializable.rb +95 -0
- data/lib/jets/job/base.rb +11 -8
- data/lib/jets/job/dsl/dynamodb_event.rb +25 -14
- data/lib/jets/job/dsl/event_source_mapping.rb +1 -1
- data/lib/jets/job/dsl/iot_event.rb +6 -6
- data/lib/jets/job/dsl/kinesis_event.rb +10 -9
- data/lib/jets/job/dsl/log_event.rb +2 -2
- data/lib/jets/job/dsl/rule_event.rb +7 -4
- data/lib/jets/job/dsl/s3_event.rb +5 -5
- data/lib/jets/job/dsl/sns_event.rb +6 -6
- data/lib/jets/job/dsl/sqs_event.rb +15 -14
- data/lib/jets/job/helpers/{kinesis_event_helper.rb → kinesis_event.rb} +5 -1
- data/lib/jets/job/helpers/{log_event_helper.rb → log_event.rb} +5 -1
- data/lib/jets/job/helpers/s3_event.rb +50 -0
- data/lib/jets/job/helpers/sns_event.rb +26 -0
- data/lib/jets/job/helpers/sqs_event.rb +26 -0
- data/lib/jets/klass.rb +5 -6
- data/lib/jets/lambda/definition.rb +118 -0
- data/lib/jets/lambda/dsl/warnings.rb +57 -0
- data/lib/jets/lambda/dsl.rb +70 -53
- data/lib/jets/lambda/function.rb +3 -3
- data/lib/jets/lambda/function_constructor.rb +6 -6
- data/lib/jets/lambda/functions.rb +36 -1
- data/lib/jets/mega/hash_converter.rb +2 -2
- data/lib/jets/mega/request/source.rb +1 -2
- data/lib/jets/mega/request.rb +4 -4
- data/lib/jets/names.rb +79 -0
- data/lib/jets/overrides/dummy/rails.rb +11 -0
- data/lib/jets/overrides/lambda/marshaller.rb +10 -0
- data/lib/jets/overrides/puma.rb +10 -0
- data/lib/jets/paths.rb +243 -0
- data/lib/jets/{poly_fun → poly}/base_executor.rb +13 -13
- data/lib/jets/{poly_fun → poly}/lambda_executor.rb +2 -2
- data/lib/jets/{poly_fun → poly}/node_error.rb +1 -1
- data/lib/jets/{poly_fun → poly}/node_executor.rb +4 -4
- data/lib/jets/{poly_fun → poly}/python_error.rb +1 -1
- data/lib/jets/{poly_fun → poly}/python_executor.rb +2 -2
- data/lib/jets/{poly_fun.rb → poly.rb} +12 -12
- data/lib/jets/preheat.rb +26 -33
- data/lib/jets/processors/deducer.rb +2 -2
- data/lib/jets/processors/main_processor.rb +6 -13
- data/lib/jets/rack/logger.rb +77 -0
- data/lib/jets/router/compat/route_set.rb +177 -0
- data/lib/jets/router/dsl/mount.rb +40 -6
- data/lib/jets/router/dsl.rb +125 -105
- data/lib/jets/router/engine_mount.rb +36 -0
- data/lib/jets/router/help.rb +130 -0
- data/lib/jets/router/helpers/named_routes/add_full_url.rb +13 -0
- data/lib/jets/router/helpers/named_routes/generated.rb +197 -0
- data/lib/jets/router/helpers/named_routes/proxy.rb +66 -0
- data/lib/jets/router/matcher.rb +140 -17
- data/lib/jets/router/resources/options.rb +6 -4
- data/lib/jets/router/route/after_initialize.rb +64 -0
- data/lib/jets/router/route/as.rb +93 -0
- data/lib/jets/router/route/authorizer.rb +1 -0
- data/lib/jets/router/route/compat.rb +45 -0
- data/lib/jets/router/route/info.rb +74 -0
- data/lib/jets/router/route/node.rb +137 -0
- data/lib/jets/router/route/path.rb +93 -0
- data/lib/jets/router/route.rb +109 -90
- data/lib/jets/router/route_set.rb +214 -0
- data/lib/jets/router/scope.rb +204 -69
- data/lib/jets/router/state.rb +67 -0
- data/lib/jets/router/util.rb +1 -31
- data/lib/jets/router.rb +64 -150
- data/lib/jets/ruby_version_check.rb +15 -0
- data/lib/jets/rule/base.rb +1 -0
- data/lib/jets/rule/dsl.rb +7 -7
- data/lib/jets/secrets.rb +110 -0
- data/lib/jets/spec_helpers/controllers/request.rb +22 -16
- data/lib/jets/spec_helpers/controllers.rb +32 -24
- data/lib/jets/spec_helpers.rb +0 -6
- data/lib/jets/stack/builder.rb +3 -2
- data/lib/jets/stack/definition.rb +1 -4
- data/lib/jets/stack/function.rb +4 -2
- data/lib/jets/stack/main/dsl/cloudwatch.rb +4 -4
- data/lib/jets/stack/main/dsl/kinesis.rb +2 -2
- data/lib/jets/stack/main/dsl/lambda.rb +26 -19
- data/lib/jets/stack/main/dsl/sqs.rb +1 -1
- data/lib/jets/stack/output/lookup.rb +6 -2
- data/lib/jets/stack/output.rb +2 -2
- data/lib/jets/stack/parameter.rb +2 -2
- data/lib/jets/stack/resource.rb +3 -3
- data/lib/jets/stack/s3_event.rb +51 -37
- data/lib/jets/stack.rb +1 -1
- data/lib/jets/tasks/engine.rake +85 -0
- data/lib/jets/tasks/framework.rake +66 -0
- data/lib/jets/tasks/log.rake +41 -0
- data/lib/jets/tasks/middleware.rake +9 -0
- data/lib/jets/tasks/misc.rake +81 -0
- data/lib/jets/tasks/statistics.rake +37 -0
- data/lib/jets/tasks/tmp.rake +51 -0
- data/lib/jets/tasks/yarn.rake +29 -0
- data/lib/jets/tasks/zeitwerk.rake +61 -0
- data/lib/jets/tasks.rb +18 -0
- data/lib/jets/tmp_loader.rb +1 -1
- data/lib/jets/turbine/configurable.rb +36 -0
- data/lib/jets/turbine/configuration.rb +101 -0
- data/lib/jets/turbine.rb +164 -20
- data/lib/jets/util/camelize.rb +24 -0
- data/lib/jets/util/yamler.rb +18 -0
- data/lib/jets/version.rb +1 -1
- data/lib/jets.rb +9 -14
- metadata +462 -349
- data/.python-version +0 -1
- data/.ruby-version +0 -1
- data/bin/release +0 -9
- data/lib/jets/application/defaults.rb +0 -200
- data/lib/jets/builders/reconfigure_rails/config/initializers/jets.rb +0 -16
- data/lib/jets/builders/reconfigure_rails.rb +0 -114
- data/lib/jets/cfn/builders/api_gateway_builder.rb +0 -123
- data/lib/jets/cfn/builders/api_resources_builder.rb +0 -44
- data/lib/jets/cfn/builders/base_child_builder.rb +0 -69
- data/lib/jets/cfn/builders/controller_builder.rb +0 -50
- data/lib/jets/cfn/builders/function_builder.rb +0 -14
- data/lib/jets/cfn/builders/interface.rb +0 -133
- data/lib/jets/cfn/builders/job_builder.rb +0 -14
- data/lib/jets/cfn/builders/parent_builder.rb +0 -130
- data/lib/jets/cfn/built_template.rb +0 -15
- data/lib/jets/cfn/template_source.rb +0 -61
- data/lib/jets/commands/base.rb +0 -145
- data/lib/jets/commands/call.rb +0 -182
- data/lib/jets/commands/clean.rb +0 -19
- data/lib/jets/commands/configure.rb +0 -51
- data/lib/jets/commands/console.rb +0 -12
- data/lib/jets/commands/db/environment-task.rake +0 -3
- data/lib/jets/commands/db/tasks/dummy/app.rb +0 -25
- data/lib/jets/commands/db/tasks/dummy/config.rb +0 -14
- data/lib/jets/commands/db/tasks.rb +0 -34
- data/lib/jets/commands/db.rb +0 -13
- data/lib/jets/commands/dbconsole.rb +0 -134
- data/lib/jets/commands/delete.rb +0 -136
- data/lib/jets/commands/dynamodb/migrate.rb +0 -9
- data/lib/jets/commands/dynamodb/migrator.rb +0 -36
- data/lib/jets/commands/dynamodb.rb +0 -19
- data/lib/jets/commands/gems.rb +0 -13
- data/lib/jets/commands/help/call.md +0 -69
- data/lib/jets/commands/help/dynamodb/generate.md +0 -52
- data/lib/jets/commands/help/dynamodb/migrate.md +0 -4
- data/lib/jets/commands/help/gems/check.md +0 -6
- data/lib/jets/commands/help/routes.md +0 -16
- data/lib/jets/commands/help/runner.md +0 -17
- data/lib/jets/commands/help.rb +0 -9
- data/lib/jets/commands/import/base.rb +0 -49
- data/lib/jets/commands/import/cheatsheet.rb +0 -35
- data/lib/jets/commands/import/rack.rb +0 -16
- data/lib/jets/commands/import/rails.rb +0 -74
- data/lib/jets/commands/import/sequence.rb +0 -90
- data/lib/jets/commands/import/templates/config/database.yml +0 -30
- data/lib/jets/commands/import/templates/submodules-cheatsheet.md +0 -89
- data/lib/jets/commands/import.rb +0 -12
- data/lib/jets/commands/main.rb +0 -166
- data/lib/jets/commands/markdown/creator.rb +0 -58
- data/lib/jets/commands/markdown/index.rb +0 -27
- data/lib/jets/commands/markdown/page.rb +0 -125
- data/lib/jets/commands/markdown/shell.rb +0 -11
- data/lib/jets/commands/new.rb +0 -173
- data/lib/jets/commands/rake_command.rb +0 -61
- data/lib/jets/commands/rake_tasks.rb +0 -50
- data/lib/jets/commands/runner.rb +0 -16
- data/lib/jets/commands/sequence.rb +0 -105
- data/lib/jets/commands/stack_info.rb +0 -30
- data/lib/jets/commands/templates/skeleton/.env.development.tt +0 -3
- data/lib/jets/commands/templates/skeleton/.env.test +0 -3
- data/lib/jets/commands/templates/skeleton/.env.tt +0 -3
- data/lib/jets/commands/templates/skeleton/.jetskeep +0 -1
- data/lib/jets/commands/templates/skeleton/Gemfile.tt +0 -40
- data/lib/jets/commands/templates/skeleton/Procfile +0 -7
- data/lib/jets/commands/templates/skeleton/Rakefile +0 -2
- data/lib/jets/commands/templates/skeleton/app/models/application_item.rb +0 -2
- data/lib/jets/commands/templates/skeleton/app/views/layouts/application.html.erb.tt +0 -26
- data/lib/jets/commands/templates/skeleton/config/application.rb.tt +0 -71
- data/lib/jets/commands/templates/skeleton/config/dynamodb.yml +0 -22
- data/lib/jets/commands/templates/skeleton/config/environments/development.rb +0 -7
- data/lib/jets/commands/templates/skeleton/config/environments/production.rb +0 -9
- data/lib/jets/commands/templates/skeleton/config/environments/test.rb +0 -7
- data/lib/jets/commands/templates/webpacker/app/javascript/packs/application.js.tt +0 -23
- data/lib/jets/commands/templates/webpacker/app/javascript/packs/theme.scss.tt +0 -24
- data/lib/jets/commands/upgrade/templates/bin/webpack +0 -19
- data/lib/jets/commands/upgrade/templates/bin/webpack-dev-server +0 -19
- data/lib/jets/commands/upgrade/version1.rb +0 -136
- data/lib/jets/commands/upgrade.rb +0 -105
- data/lib/jets/commands/url.rb +0 -69
- data/lib/jets/commands/webpacker_template.rb +0 -18
- data/lib/jets/controller/callbacks.rb +0 -73
- data/lib/jets/controller/cookies/jar.rb +0 -269
- data/lib/jets/controller/cookies.rb +0 -38
- data/lib/jets/controller/error/invalid_authenticity_token.rb +0 -6
- data/lib/jets/controller/error.rb +0 -4
- data/lib/jets/controller/forgery_protection.rb +0 -43
- data/lib/jets/controller/layout.rb +0 -17
- data/lib/jets/controller/middleware/cors.rb +0 -60
- data/lib/jets/controller/middleware/local/mimic_aws_call.rb +0 -38
- data/lib/jets/controller/middleware/local/route_matcher.rb +0 -22
- data/lib/jets/controller/middleware/reloader.rb +0 -15
- data/lib/jets/controller/parameters_filter.rb +0 -29
- data/lib/jets/controller/params.rb +0 -117
- data/lib/jets/controller/redirection.rb +0 -61
- data/lib/jets/controller/rendering/rack_renderer.rb +0 -267
- data/lib/jets/controller/rendering.rb +0 -96
- data/lib/jets/controller/stage.rb +0 -34
- data/lib/jets/controller.rb +0 -3
- data/lib/jets/db.rb +0 -15
- data/lib/jets/generator/templates/active_job/job/templates/job.rb.tt +0 -8
- data/lib/jets/generator/templates/erb/controller/view.html.erb +0 -2
- data/lib/jets/generator/templates/erb/scaffold/index.html.erb +0 -29
- data/lib/jets/generator/templates/rails/controller/controller.rb +0 -13
- data/lib/jets/generator/templates/rails/helper/helper.rb +0 -4
- data/lib/jets/generator/templates/rails/scaffold_controller/controller.rb +0 -67
- data/lib/jets/generator.rb +0 -112
- data/lib/jets/internal/app/controllers/jets/bare_controller.rb +0 -16
- data/lib/jets/internal/app/controllers/jets/rack_controller.rb +0 -12
- data/lib/jets/internal/app/functions/jets/base_path.rb +0 -18
- data/lib/jets/internal/app/functions/jets/base_path_mapping.rb +0 -100
- data/lib/jets/internal/app/helpers/jets/mailers_helper.rb +0 -9
- data/lib/jets/internal/app/jobs/jets/preheat_job.rb +0 -70
- data/lib/jets/internal/app/views/jets/mailers/index.html.erb +0 -8
- data/lib/jets/internal/app/views/jets/mailers/mailer.html.erb +0 -6
- data/lib/jets/internal/turbines/jets/mailer.rb +0 -52
- data/lib/jets/job/helpers/s3_event_helper.rb +0 -13
- data/lib/jets/lambda/task.rb +0 -111
- data/lib/jets/logger.rb +0 -21
- data/lib/jets/middleware/configurator.rb +0 -84
- data/lib/jets/middleware/default_stack.rb +0 -53
- data/lib/jets/middleware/layer.rb +0 -34
- data/lib/jets/middleware/stack.rb +0 -77
- data/lib/jets/middleware.rb +0 -33
- data/lib/jets/naming.rb +0 -63
- data/lib/jets/overrides/rails/action_controller.rb +0 -13
- data/lib/jets/overrides/rails/asset_tag_helper.rb +0 -114
- data/lib/jets/overrides/rails/common_methods.rb +0 -13
- data/lib/jets/overrides/rails/migration_checker.rb +0 -34
- data/lib/jets/overrides/rails/rendering_helper.rb +0 -27
- data/lib/jets/overrides/rails/url_helper.rb +0 -88
- data/lib/jets/overrides/rails.rb +0 -6
- data/lib/jets/rack_server.rb +0 -86
- data/lib/jets/resource/api_gateway/base_path/function.rb +0 -49
- data/lib/jets/resource/api_gateway/base_path/role.rb +0 -76
- data/lib/jets/resource/api_gateway/cors.rb +0 -61
- data/lib/jets/resource/api_gateway/method.rb +0 -102
- data/lib/jets/resource/api_gateway/rest_api/routes/change.rb +0 -16
- data/lib/jets/resource/base.rb +0 -28
- data/lib/jets/resource/child_stack/api_deployment.rb +0 -58
- data/lib/jets/resource/child_stack/api_gateway.rb +0 -23
- data/lib/jets/resource/child_stack/api_resource/page.rb +0 -20
- data/lib/jets/resource/child_stack/api_resource.rb +0 -54
- data/lib/jets/resource/child_stack/base.rb +0 -24
- data/lib/jets/resource/iam/base_role_definition.rb +0 -47
- data/lib/jets/resource/lambda/function.rb +0 -221
- data/lib/jets/resource/logs/subscription_filter.rb +0 -31
- data/lib/jets/resource/permission.rb +0 -45
- data/lib/jets/resource.rb +0 -71
- data/lib/jets/router/error.rb +0 -4
- data/lib/jets/router/finder.rb +0 -47
- data/lib/jets/router/helpers/core_helper.rb +0 -27
- data/lib/jets/router/helpers/named_routes_helper.rb +0 -8
- data/lib/jets/router/helpers.rb +0 -4
- data/lib/jets/router/method_creator/code.rb +0 -99
- data/lib/jets/router/method_creator/edit.rb +0 -12
- data/lib/jets/router/method_creator/generic.rb +0 -11
- data/lib/jets/router/method_creator/index.rb +0 -48
- data/lib/jets/router/method_creator/new.rb +0 -12
- data/lib/jets/router/method_creator/root.rb +0 -15
- data/lib/jets/router/method_creator/show.rb +0 -12
- data/lib/jets/router/method_creator.rb +0 -50
- data/lib/jets/turbo/database_yaml.rb +0 -41
- data/lib/jets/turbo/project/.gitignore +0 -12
- data/lib/jets/turbo/project/.jetskeep +0 -1
- data/lib/jets/turbo/project/Gemfile +0 -16
- data/lib/jets/turbo/project/Rakefile +0 -2
- data/lib/jets/turbo/project/app/controllers/application_controller.rb +0 -2
- data/lib/jets/turbo/project/app/helpers/application_helper.rb +0 -2
- data/lib/jets/turbo/project/app/jobs/application_job.rb +0 -4
- data/lib/jets/turbo/project/config/application.rb +0 -5
- data/lib/jets/turbo/project/config/routes.rb +0 -4
- data/lib/jets/turbo/project/config.ru +0 -5
- data/lib/jets/turbo/rails.rb +0 -127
- data/lib/jets/turbo/templates/config/database.yml +0 -30
- data/lib/jets/turbo.rb +0 -56
- data/readme/prerelease.md +0 -6
- data/readme/testing.md +0 -60
- /data/{lib/jets → engines}/internal/app/shared/functions/jets/s3_bucket_config.rb +0 -0
- /data/lib/jets/{commands → command}/help/build.md +0 -0
- /data/lib/jets/{commands → command}/help/clean/build.md +0 -0
- /data/lib/jets/{commands → command}/help/clean/log.md +0 -0
- /data/lib/jets/{commands → command}/help/console.md +0 -0
- /data/lib/jets/{commands → command}/help/db/generate.md +0 -0
- /data/lib/jets/{commands → command}/help/dbconsole.md +0 -0
- /data/lib/jets/{commands → command}/help/degenerate.md +0 -0
- /data/lib/jets/{commands → command}/help/delete.md +0 -0
- /data/lib/jets/{commands → command}/help/generate.md +0 -0
- /data/lib/jets/{commands → command}/help/import/rack.md +0 -0
- /data/lib/jets/{commands → command}/help/import/rails.md +0 -0
- /data/lib/jets/{commands → command}/help/server.md +0 -0
- /data/lib/jets/{commands → command}/help/status.md +0 -0
- /data/lib/jets/{commands → command}/help/upgrade.md +0 -0
- /data/lib/jets/{commands → command}/help/url.md +0 -0
- /data/lib/jets/{generator/templates/active_job → generators}/job/templates/application_job.rb.tt +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/.rspec +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/README.md +0 -0
- /data/{.gitmodules → lib/jets/generators/overrides/app/templates/app/assets/images/.keep} +0 -0
- /data/lib/jets/{commands/templates/skeleton/db/.gitkeep → generators/overrides/app/templates/app/assets/javascripts/.keep} +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/app/controllers/application_controller.rb +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/app/helpers/application_helper.rb +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/app/jobs/application_job.rb +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/config.ru +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/public/favicon.ico +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/spec/controllers/posts_controller_spec.rb +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/spec/fixtures/payloads/posts-index.json +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/spec/fixtures/payloads/posts-show.json +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/spec/spec_helper.rb.tt +0 -0
- /data/lib/jets/{generator → generators/overrides}/templates/erb/scaffold/_form.html.erb +0 -0
- /data/lib/jets/{generator → generators/overrides}/templates/erb/scaffold/edit.html.erb +0 -0
- /data/lib/jets/{generator → generators/overrides}/templates/erb/scaffold/new.html.erb +0 -0
- /data/lib/jets/{generator → generators/overrides}/templates/erb/scaffold/show.html.erb +0 -0
- /data/lib/jets/{generator → generators/overrides}/templates/rails/assets/javascript.js +0 -0
- /data/lib/jets/{generator → generators/overrides}/templates/rails/assets/stylesheet.css +0 -0
- /data/lib/jets/{generator → generators/overrides}/templates/rails/scaffold/scaffold.css +0 -0
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
require "shotgun"
|
|
2
|
-
|
|
3
|
-
module Jets::Middleware
|
|
4
|
-
class DefaultStack
|
|
5
|
-
attr_reader :config, :app
|
|
6
|
-
def initialize(app, config)
|
|
7
|
-
@app = app
|
|
8
|
-
@config = config
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
def build_stack
|
|
12
|
-
Stack.new do |middleware|
|
|
13
|
-
middleware.use Shotgun::Static
|
|
14
|
-
middleware.use Rack::Runtime
|
|
15
|
-
middleware.use Jets::Controller::Middleware::Cors if cors_enabled?
|
|
16
|
-
middleware.use Rack::MethodOverride unless ENV['JETS_RACK_METHOD_OVERRIDE'] == '0' # must come before Middleware::Local for multipart post forms to work
|
|
17
|
-
middleware.use Jets::Controller::Middleware::Reloader if Jets.config.hot_reload
|
|
18
|
-
middleware.use Jets::Controller::Middleware::Local # mimics AWS Lambda for local server only
|
|
19
|
-
middleware.use session_store, session_options
|
|
20
|
-
middleware.use Rack::Head
|
|
21
|
-
middleware.use Rack::ConditionalGet
|
|
22
|
-
middleware.use Rack::ETag
|
|
23
|
-
use_webpacker(middleware)
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
private
|
|
28
|
-
def cors_enabled?
|
|
29
|
-
Jets.config.cors
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
# Written as method to easily not include webpacker for case when either
|
|
33
|
-
# webpacker not installed at all or disabled upon `jets deploy`.
|
|
34
|
-
def use_webpacker(middleware)
|
|
35
|
-
return unless Jets.webpacker? # checks for local development if webpacker installed
|
|
36
|
-
# Different check for middleware because we need webpacker helpers for url helpers.
|
|
37
|
-
# But we dont want to actually serve via webpacker middleware when running on AWS.
|
|
38
|
-
# By this time the url helpers are serving assets out of s3.
|
|
39
|
-
return if File.exist?("#{Jets.root}/config/disable-webpacker-middleware.txt") # created as part of `jets deploy`
|
|
40
|
-
require "jets/controller/middleware/webpacker_setup"
|
|
41
|
-
middleware.use Webpacker::DevServerProxy
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
def session_store
|
|
45
|
-
Jets.config.session[:store] # do not use dot notation. session.store is a method on ActiveSupport::OrderedOptions.new
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
def session_options
|
|
49
|
-
defaults = { secret: ENV['SECRET_KEY_BASE'] }
|
|
50
|
-
defaults.merge(Jets.config.session.options)
|
|
51
|
-
end
|
|
52
|
-
end
|
|
53
|
-
end
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
module Jets::Middleware
|
|
2
|
-
class Layer
|
|
3
|
-
attr_reader :args, :block, :klass
|
|
4
|
-
|
|
5
|
-
def initialize(klass, args, block)
|
|
6
|
-
@klass = klass
|
|
7
|
-
@args = args
|
|
8
|
-
@block = block
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
def name; klass.name; end
|
|
12
|
-
|
|
13
|
-
def ==(middleware)
|
|
14
|
-
case middleware
|
|
15
|
-
when Layer
|
|
16
|
-
klass == middleware.klass
|
|
17
|
-
when Class
|
|
18
|
-
klass == middleware
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
def inspect
|
|
23
|
-
if klass.is_a?(Class)
|
|
24
|
-
klass.to_s
|
|
25
|
-
else
|
|
26
|
-
klass.class.to_s
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
def build(app)
|
|
31
|
-
klass.new(app, *args, &block)
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
end
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
module Jets::Middleware
|
|
2
|
-
class Stack
|
|
3
|
-
include Enumerable
|
|
4
|
-
|
|
5
|
-
attr_accessor :middlewares
|
|
6
|
-
def initialize(*args)
|
|
7
|
-
@middlewares = []
|
|
8
|
-
yield(self) if block_given?
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
def each
|
|
12
|
-
@middlewares.each { |x| yield x }
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
def size
|
|
16
|
-
middlewares.size
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def last
|
|
20
|
-
middlewares.last
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def [](i)
|
|
24
|
-
middlewares[i]
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
def unshift(klass, *args, &block)
|
|
28
|
-
middlewares.unshift(build_middleware(klass, args, block))
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
def initialize_copy(other)
|
|
32
|
-
self.middlewares = other.middlewares.dup
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
def insert(index, klass, *args, &block)
|
|
36
|
-
index = assert_index(index, :before)
|
|
37
|
-
middlewares.insert(index, build_middleware(klass, args, block))
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
alias_method :insert_before, :insert
|
|
41
|
-
|
|
42
|
-
def insert_after(index, *args, &block)
|
|
43
|
-
index = assert_index(index, :after)
|
|
44
|
-
insert(index + 1, *args, &block)
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
def swap(target, *args, &block)
|
|
48
|
-
index = assert_index(target, :before)
|
|
49
|
-
insert(index, *args, &block)
|
|
50
|
-
middlewares.delete_at(index + 1)
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
def delete(target)
|
|
54
|
-
middlewares.delete_if { |m| m.klass == target }
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
def use(klass, *args, &block)
|
|
58
|
-
middlewares.push(build_middleware(klass, args, block))
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
def build(app = Proc.new)
|
|
62
|
-
middlewares.freeze.reverse.inject(app) { |a, e| e.build(a) }
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
private
|
|
66
|
-
|
|
67
|
-
def assert_index(index, where)
|
|
68
|
-
i = index.is_a?(Integer) ? index : middlewares.index { |m| m.klass == index }
|
|
69
|
-
raise "No such middleware to insert #{where}: #{index.inspect}" unless i
|
|
70
|
-
i
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
def build_middleware(klass, args, block)
|
|
74
|
-
Layer.new(klass, args, block)
|
|
75
|
-
end
|
|
76
|
-
end
|
|
77
|
-
end
|
data/lib/jets/middleware.rb
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
module Jets
|
|
2
|
-
module Middleware
|
|
3
|
-
extend Memoist
|
|
4
|
-
|
|
5
|
-
def call(env)
|
|
6
|
-
stack = middlewares.build(endpoint)
|
|
7
|
-
stack.call(env)
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
# Final middleware in the stack
|
|
11
|
-
def endpoint
|
|
12
|
-
Jets::Controller::Middleware::Main
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
# Called in Jets::Booter to build middleware stack only once during bootup
|
|
16
|
-
def build_stack
|
|
17
|
-
middlewares
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
def middlewares
|
|
21
|
-
config_middleware.merge_into(default_stack) # returns Jets::Middleware::Stack
|
|
22
|
-
end
|
|
23
|
-
memoize :middlewares
|
|
24
|
-
|
|
25
|
-
def default_stack
|
|
26
|
-
Jets::Middleware::DefaultStack.new(Jets.config, Jets.application).build_stack # returns Jets::Middleware::Stack
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
def config_middleware
|
|
30
|
-
Jets.config.middleware # returns Jets::Middleware::Configurator
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
end
|
data/lib/jets/naming.rb
DELETED
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
# This class groups the naming in one place.
|
|
2
|
-
# Some naming is for CloudFormation
|
|
3
|
-
# Some are for the Build process
|
|
4
|
-
class Jets::Naming
|
|
5
|
-
# Mainly used by build.rb
|
|
6
|
-
class << self
|
|
7
|
-
extend Memoist
|
|
8
|
-
|
|
9
|
-
def app_template_path(app_class)
|
|
10
|
-
underscored = underscore(app_class)
|
|
11
|
-
"#{template_path_prefix}-app-#{underscored}.yml"
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def shared_template_path(shared_class)
|
|
15
|
-
underscored = underscore(shared_class)
|
|
16
|
-
"#{template_path_prefix}-shared-#{underscored}.yml"
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def template_path_prefix
|
|
20
|
-
"#{Jets.build_root}/templates/#{Jets.config.project_namespace}"
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
# consider moving these methods into cfn/builder/helpers.rb or that area.
|
|
24
|
-
def parent_template_path
|
|
25
|
-
"#{template_path_prefix}.yml"
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
# consider moving these methods into cfn/builder/helpers.rb or that area.
|
|
29
|
-
def api_gateway_template_path
|
|
30
|
-
"#{template_path_prefix}-api-gateway.yml"
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def api_resources_template_path(page)
|
|
34
|
-
"#{template_path_prefix}-api-resources-#{page}.yml"
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
def api_deployment_template_path
|
|
38
|
-
"#{template_path_prefix}-api-deployment.yml"
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
def shared_resources_template_path
|
|
42
|
-
"#{template_path_prefix}-shared-resources.yml"
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
def parent_stack_name
|
|
46
|
-
File.basename(parent_template_path, ".yml")
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
def gateway_api_name
|
|
50
|
-
"#{Jets.config.project_namespace}"
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
def authorizer_template_path(path)
|
|
54
|
-
underscored = underscore(path)
|
|
55
|
-
underscored.sub!(/^app-/, '')
|
|
56
|
-
"#{template_path_prefix}-#{underscored}.yml"
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
def underscore(s)
|
|
60
|
-
s.to_s.underscore.sub(/\.rb$/,'').gsub('/','-')
|
|
61
|
-
end
|
|
62
|
-
end
|
|
63
|
-
end
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
# Override to prepend stage name when on AWS.
|
|
2
|
-
module Jets::AssetTagHelper
|
|
3
|
-
extend Memoist
|
|
4
|
-
include Jets::CommonMethods
|
|
5
|
-
include Jets::AwsServices
|
|
6
|
-
|
|
7
|
-
def javascript_include_tag(*sources, **options)
|
|
8
|
-
sources = sources.map { |s| s3_public_url(s, :javascripts) }
|
|
9
|
-
super
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
def stylesheet_link_tag(*sources, **options)
|
|
13
|
-
sources = sources.map { |s| s3_public_url(s, :stylesheets) }
|
|
14
|
-
super
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
# Locally:
|
|
18
|
-
#
|
|
19
|
-
# image_tag("jets.png") => /images/jets.png
|
|
20
|
-
# image_tag("/images/jets.png") => /images/jets.png
|
|
21
|
-
#
|
|
22
|
-
# Remotely:
|
|
23
|
-
#
|
|
24
|
-
# image_tag("jets.png") => https://s3-us-west-2.amazonaws.com/demo-dev-s3bucket-1kih4n2te0n66/jets/public/images/jets.png
|
|
25
|
-
def image_tag(source, options = {})
|
|
26
|
-
source = source.to_s # convert to String because passing a posts.photo object to results in failure to resolve the immage to a URL since we haven't defined polymorphic_url yet
|
|
27
|
-
|
|
28
|
-
# mimic original behavior to get /images in source
|
|
29
|
-
source = "/images/#{source}" unless source.starts_with?('/') || source.starts_with?('http')
|
|
30
|
-
if on_aws? && !source.starts_with?('http')
|
|
31
|
-
source = "#{s3_public}#{source}"
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
super
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
def asset_path(source, options = {})
|
|
38
|
-
source = source.to_s # convert to String because passing a posts.photo object to results in failure to resolve the immage to a URL since we haven't defined polymorphic_url yet
|
|
39
|
-
# mimic original behavior to get /images in source
|
|
40
|
-
source = "/images/#{source}" unless source.starts_with?('/') || source.starts_with?('http')
|
|
41
|
-
|
|
42
|
-
# Examples to help understand:
|
|
43
|
-
#
|
|
44
|
-
# puts "AssetTagHelper#asset_path source #{source}"
|
|
45
|
-
# puts "AssetTagHelper#asset_path asset_folder?(source) #{asset_folder?(source).inspect}"
|
|
46
|
-
# AssetTagHelper#asset_path source /packs/images/myimage-e5f675d1ba26865fd65e919beb5bb86b.png
|
|
47
|
-
# AssetTagHelper#asset_path asset_folder?(source) "images"
|
|
48
|
-
#
|
|
49
|
-
if on_aws? && asset_folder?(source) && !source.starts_with?('http')
|
|
50
|
-
source = "#{s3_public}#{source}"
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
super
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
# Serves favicon out of s3 when on API gateway.
|
|
57
|
-
#
|
|
58
|
-
# Useful helper for API Gateway since serving binary data like images without
|
|
59
|
-
# an Accept header doesnt work well. You can changed Media Types to '*/*'
|
|
60
|
-
# but then that messes up form data.
|
|
61
|
-
def favicon_path(path='favicon.ico')
|
|
62
|
-
on_aws? ? "#{s3_public}/#{path}" : "/#{path}"
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
private
|
|
66
|
-
# Whatever is configured in Jets.config.assets.folders
|
|
67
|
-
# Example: packs, images, assets
|
|
68
|
-
def asset_folder?(url)
|
|
69
|
-
Jets.config.assets.folders.detect do |folder|
|
|
70
|
-
url.include?(folder)
|
|
71
|
-
end
|
|
72
|
-
end
|
|
73
|
-
|
|
74
|
-
# User can use:
|
|
75
|
-
# javascript_include_tag "assets/test"
|
|
76
|
-
#
|
|
77
|
-
# Rails automatically adds "javscript" in front, to become:
|
|
78
|
-
#
|
|
79
|
-
# /javascripts/assets/test
|
|
80
|
-
#
|
|
81
|
-
# We want to add the API Gateway stage name in front for this:
|
|
82
|
-
#
|
|
83
|
-
# /stag/javascript/asset/test
|
|
84
|
-
#
|
|
85
|
-
# But adding it in front results in this:
|
|
86
|
-
#
|
|
87
|
-
# /javascript/stag/asset/test
|
|
88
|
-
#
|
|
89
|
-
# If there's a / in front then rails will not add the "javascript":
|
|
90
|
-
# So we can add the javascript ourselves and then add the stag with a
|
|
91
|
-
# / in front.
|
|
92
|
-
def s3_public_url(url, asset_type)
|
|
93
|
-
unless url.starts_with?('/') or url.starts_with?('http')
|
|
94
|
-
url = "/#{asset_type}/#{url}" # /javascript/asset/test
|
|
95
|
-
end
|
|
96
|
-
add_s3_public(url)
|
|
97
|
-
end
|
|
98
|
-
|
|
99
|
-
# Example:
|
|
100
|
-
# Url: /packs/application-e7654c50abd78161b641.js
|
|
101
|
-
# Returns: https://s3-us-west-2.amazonaws.com/demo-dev-s3bucket-1jg5o076egkk4/jets/public/packs/application-e7654c50abd78161b641.js
|
|
102
|
-
def add_s3_public(url)
|
|
103
|
-
return url unless on_aws?
|
|
104
|
-
"#{s3_public}#{url}"
|
|
105
|
-
end
|
|
106
|
-
|
|
107
|
-
def s3_public
|
|
108
|
-
# s3_base_url.txt is created as part of the build process
|
|
109
|
-
s3_base_url = IO.read("#{Jets.root}/config/s3_base_url.txt").strip
|
|
110
|
-
"#{s3_base_url}/public"
|
|
111
|
-
end
|
|
112
|
-
memoize :s3_public
|
|
113
|
-
end
|
|
114
|
-
ActionView::Helpers.send(:include, Jets::AssetTagHelper)
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
module Jets::CommonMethods
|
|
2
|
-
extend Memoist
|
|
3
|
-
# Add API Gateway Stage Name
|
|
4
|
-
def add_stage_name(url)
|
|
5
|
-
Jets::Controller::Stage.add(request.host, url)
|
|
6
|
-
end
|
|
7
|
-
|
|
8
|
-
def on_aws?
|
|
9
|
-
on_cloud9 = Jets::Controller::Stage.on_cloud9?(request.headers['HTTP_HOST'])
|
|
10
|
-
!request.headers['HTTP_X_AMZN_TRACE_ID'].nil? && !on_cloud9
|
|
11
|
-
end
|
|
12
|
-
memoize :on_aws?
|
|
13
|
-
end
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
module ActiveRecord
|
|
2
|
-
module MigrationChecker
|
|
3
|
-
def prepare_test_db
|
|
4
|
-
current_config = ::ActiveRecord::Base.connection_db_config
|
|
5
|
-
all_configs = ::ActiveRecord::Base.configurations.configs_for(env_name: Jets.env)
|
|
6
|
-
|
|
7
|
-
needs_update = !all_configs.all? do |db_config|
|
|
8
|
-
::ActiveRecord::Tasks::DatabaseTasks.schema_up_to_date?(
|
|
9
|
-
db_config.configuration_hash,
|
|
10
|
-
::ActiveRecord::Base.schema_format,
|
|
11
|
-
nil
|
|
12
|
-
)
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
if needs_update
|
|
16
|
-
# Roundtrip to Rake to allow plugins to hook into database initialization.
|
|
17
|
-
FileUtils.cd(Jets.root) do
|
|
18
|
-
::ActiveRecord::Base.clear_all_connections!
|
|
19
|
-
system("jets db:test:prepare")
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
# Establish a new connection, the old database may be gone (db:test:prepare uses purge)
|
|
24
|
-
::ActiveRecord::Base.establish_connection(current_config)
|
|
25
|
-
|
|
26
|
-
begin
|
|
27
|
-
check_pending!
|
|
28
|
-
rescue ::ActiveRecord::PendingMigrationError
|
|
29
|
-
puts "Migrations are pending. To resolve this issue, run:\n\n jets db:migrate"
|
|
30
|
-
exit 1
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
end
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
module Jets::RenderingHelper
|
|
2
|
-
# ensure that we always add the controller view name. So when rendering
|
|
3
|
-
# a partial:
|
|
4
|
-
# <%= render "mypartial" %>
|
|
5
|
-
# gets turned into:
|
|
6
|
-
# <%= render "articles/mypartial" %>
|
|
7
|
-
def render(options = {}, locals = {}, &block)
|
|
8
|
-
if options.is_a?(String) && !options.include?('/')
|
|
9
|
-
folder = _get_containing_folder(caller)
|
|
10
|
-
partial_name = options # happens to be the partial name
|
|
11
|
-
partial_name = "#{folder}/#{partial_name}"
|
|
12
|
-
options = partial_name
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
super(options, locals, &block)
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
# Ugly, going back up the caller stack to find out what view path
|
|
19
|
-
# we are in
|
|
20
|
-
def _get_containing_folder(caller_lines)
|
|
21
|
-
caller_line = caller_lines.find { |l| !l.include?('/gems/') }
|
|
22
|
-
text = caller_line.split(':').first
|
|
23
|
-
# .../fixtures/apps/demo/app/views/posts/index.html.erb
|
|
24
|
-
text.split('/')[-2] # posts
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
ActionView::Helpers.send(:include, Jets::RenderingHelper)
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
require "action_view"
|
|
2
|
-
|
|
3
|
-
# hackety hack
|
|
4
|
-
module Jets::UrlHelper
|
|
5
|
-
include Jets::CommonMethods
|
|
6
|
-
|
|
7
|
-
# Basic implementation of url_for to allow use helpers without routes existence
|
|
8
|
-
def url_for(options = nil) # :nodoc:
|
|
9
|
-
url = if options.is_a?(String)
|
|
10
|
-
options
|
|
11
|
-
elsif options == :back
|
|
12
|
-
_back_url
|
|
13
|
-
elsif options.respond_to?(:to_model)
|
|
14
|
-
_handle_model(options)
|
|
15
|
-
elsif options.is_a?(Array)
|
|
16
|
-
_handle_array(options)
|
|
17
|
-
else
|
|
18
|
-
raise ArgumentError, "The Jets link_to helper only supports some types of arguments. Please provided a String or an object that supports ActiveModel to link_to as the the second argument."
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
add_stage_name(url)
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
def _handle_model(record)
|
|
25
|
-
model = record.to_model
|
|
26
|
-
if model.persisted?
|
|
27
|
-
meth = model.model_name.singular_route_key + "_path"
|
|
28
|
-
send(meth, record) # Example: post_path(record)
|
|
29
|
-
else
|
|
30
|
-
meth = model.model_name.route_key + "_path"
|
|
31
|
-
send(meth) # Example: posts_path
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
# Convention is that the model class name is the method name. Doesnt work if user is using as.
|
|
36
|
-
def _handle_array(array)
|
|
37
|
-
contains_nil = !array.select(&:nil?).empty?
|
|
38
|
-
if contains_nil
|
|
39
|
-
raise "ERROR: You passed a nil value in the Array. #{array.inspect}."
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
last_persisted = nil
|
|
43
|
-
items = array.map do |x|
|
|
44
|
-
if x.is_a?(ActiveRecord::Base)
|
|
45
|
-
last_persisted = x.persisted?
|
|
46
|
-
x.persisted? ? x.model_name.singular_route_key : x.model_name.route_key
|
|
47
|
-
else
|
|
48
|
-
x
|
|
49
|
-
end
|
|
50
|
-
end
|
|
51
|
-
meth = items.join('_') + "_path"
|
|
52
|
-
|
|
53
|
-
args = array.clone
|
|
54
|
-
args.shift if args.first.is_a?(Symbol) # drop the first element if its a symbol
|
|
55
|
-
args = last_persisted ? args : args[0..-2]
|
|
56
|
-
|
|
57
|
-
# post_comment_path(post_id) - keep all args - for update
|
|
58
|
-
# post_comments_path - drop last arg - for create
|
|
59
|
-
send(meth, *args)
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
# for forgery protection
|
|
63
|
-
def token_tag(token = nil, form_options: {})
|
|
64
|
-
return '' unless protect_against_forgery?
|
|
65
|
-
|
|
66
|
-
hidden_field_tag 'authenticity_token', masked_authenticity_token
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
def masked_authenticity_token
|
|
70
|
-
@masked_authenticity_token ||= SecureRandom.hex(32)
|
|
71
|
-
session[:authenticity_token] = @masked_authenticity_token
|
|
72
|
-
end
|
|
73
|
-
|
|
74
|
-
def protect_against_forgery?
|
|
75
|
-
@_jets[:controller].class.forgery_protection_enabled?
|
|
76
|
-
end
|
|
77
|
-
|
|
78
|
-
def csrf_meta_tags
|
|
79
|
-
if protect_against_forgery?
|
|
80
|
-
html = tag("meta", name: "csrf-token", content: masked_authenticity_token).html_safe
|
|
81
|
-
html << "\n"
|
|
82
|
-
html << tag("meta", name: "csrf-param", content: "authenticity_token").html_safe
|
|
83
|
-
html
|
|
84
|
-
end
|
|
85
|
-
end
|
|
86
|
-
end # UrlHelper
|
|
87
|
-
|
|
88
|
-
ActionView::Helpers.send(:include, Jets::UrlHelper)
|
data/lib/jets/overrides/rails.rb
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
require "jets/overrides/rails/common_methods"
|
|
2
|
-
require "jets/overrides/rails/url_helper"
|
|
3
|
-
require "jets/overrides/rails/rendering_helper"
|
|
4
|
-
require "jets/overrides/rails/asset_tag_helper"
|
|
5
|
-
require "jets/overrides/rails/action_controller"
|
|
6
|
-
require "jets/overrides/rails/migration_checker"
|
data/lib/jets/rack_server.rb
DELETED
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
module Jets
|
|
2
|
-
class RackServer
|
|
3
|
-
def self.start(options={})
|
|
4
|
-
new(options).start
|
|
5
|
-
end
|
|
6
|
-
|
|
7
|
-
def initialize(options={})
|
|
8
|
-
@options = options
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
def start
|
|
12
|
-
return unless File.exist?("#{rack_project}/config.ru")
|
|
13
|
-
puts "Starting additional rack server for the project under the rack subfolder..." if ENV['JETS_DEBUG']
|
|
14
|
-
|
|
15
|
-
if ENV['FOREGROUND']
|
|
16
|
-
serve
|
|
17
|
-
return
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
# Reaching here means we'll run the server in the background.
|
|
21
|
-
# Handle daemonzing ourselves because it keeps the stdout of the 2nd
|
|
22
|
-
# rack server. The rackup --daemonize option ends up hiding the output.
|
|
23
|
-
pid = Process.fork
|
|
24
|
-
if pid.nil?
|
|
25
|
-
# we're in the child process
|
|
26
|
-
serve
|
|
27
|
-
else
|
|
28
|
-
# we're in the parent process
|
|
29
|
-
Process.detach(pid) # dettached but still in the "foreground" since bin/rackup runs in the foreground
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
# Runs in the child process
|
|
34
|
-
def serve
|
|
35
|
-
# Note, looks like stopping jets server with Ctrl-C sends the TERM signal
|
|
36
|
-
# down to the sub bin/rackup command cleans up the child process fine.
|
|
37
|
-
Bundler.with_unbundled_env do
|
|
38
|
-
args = ''
|
|
39
|
-
# only forward the host option, port is always 9292 for simplicity
|
|
40
|
-
if @options[:host]
|
|
41
|
-
args << " --host #{@options[:host]}"
|
|
42
|
-
else
|
|
43
|
-
args << " --host 127.0.0.1" # using the default localhost is not starting up https://stackoverflow.com/questions/4356646/address-family-not-supported-by-protocol-family
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
command = "cd #{rack_project} && bin/rackup#{args}" # leads to the same wrapper rack scripts
|
|
48
|
-
puts "=> #{command}".color(:green)
|
|
49
|
-
system(command)
|
|
50
|
-
end
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
# blocks until rack server is up
|
|
54
|
-
def wait_for_socket
|
|
55
|
-
return unless Jets.rack?
|
|
56
|
-
|
|
57
|
-
retries = 0
|
|
58
|
-
max_retries = 30 # 15 seconds at a delay of 0.5s
|
|
59
|
-
delay = 0.5
|
|
60
|
-
if ENV['C9_USER'] # overrides for local testing
|
|
61
|
-
max_retries = 3
|
|
62
|
-
delay = 3
|
|
63
|
-
end
|
|
64
|
-
begin
|
|
65
|
-
server = TCPSocket.new('localhost', 9292)
|
|
66
|
-
server.close
|
|
67
|
-
rescue Errno::ECONNREFUSED, Errno::EAFNOSUPPORT
|
|
68
|
-
puts "Unable to connect to localhost:9292. Delay for #{delay} and will try to connect again." if ENV['JETS_DEBUG']
|
|
69
|
-
sleep(delay)
|
|
70
|
-
retries += 1
|
|
71
|
-
if retries < max_retries
|
|
72
|
-
retry
|
|
73
|
-
else
|
|
74
|
-
puts "Giving up on trying to connect to localhost:9292"
|
|
75
|
-
return false
|
|
76
|
-
end
|
|
77
|
-
end
|
|
78
|
-
puts "Connected to localhost:9292 successfully"
|
|
79
|
-
true
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
def rack_project
|
|
83
|
-
"#{Jets.root}/rack"
|
|
84
|
-
end
|
|
85
|
-
end
|
|
86
|
-
end
|