jets 5.0.17 → 6.0.0.beta1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +17 -19
- data/Gemfile +4 -0
- data/README.md +19 -165
- data/Rakefile +3 -3
- data/exe/jets +2 -1
- data/jets.gemspec +15 -22
- data/lib/jets/api/agree.rb +62 -0
- data/lib/jets/api/base.rb +8 -0
- data/lib/jets/api/client.rb +246 -0
- data/lib/jets/api/config.rb +73 -0
- data/lib/jets/api/error.rb +70 -0
- data/lib/jets/api/ping.rb +9 -0
- data/lib/jets/api/project.rb +9 -0
- data/lib/jets/api/release.rb +17 -0
- data/lib/jets/api/response.rb +27 -0
- data/lib/jets/api/sig.rb +13 -0
- data/lib/jets/api/stack.rb +14 -0
- data/lib/jets/api.rb +17 -0
- data/lib/jets/autoloaders/gem.rb +47 -58
- data/lib/jets/autoloaders/main.rb +64 -0
- data/lib/jets/autoloaders.rb +14 -43
- data/lib/jets/aws_services/aws_helpers.rb +17 -0
- data/lib/jets/{aws_info.rb → aws_services/aws_info.rb} +24 -17
- data/lib/jets/aws_services/global_memoist.rb +9 -4
- data/lib/jets/aws_services/s3_bucket.rb +8 -10
- data/lib/jets/aws_services/stack_status.rb +5 -31
- data/lib/jets/aws_services.rb +36 -17
- data/lib/jets/bundle.rb +9 -7
- data/lib/jets/cfn/base.rb +16 -5
- data/lib/jets/cfn/bootstrap.rb +13 -0
- data/lib/jets/cfn/builder/interface.rb +22 -31
- data/lib/jets/cfn/builder/parent/genesis.rb +84 -0
- data/lib/jets/cfn/builder/post_process.rb +3 -3
- data/lib/jets/cfn/delete.rb +17 -0
- data/lib/jets/cfn/deploy.rb +151 -0
- data/lib/jets/cfn/iam/managed_policy.rb +21 -0
- data/lib/jets/cfn/iam/policy.rb +121 -0
- data/lib/jets/cfn/resource/associated.rb +1 -1
- data/lib/jets/cfn/resource/codebuild/fleet.rb +48 -0
- data/lib/jets/cfn/resource/codebuild/iam_role.rb +63 -0
- data/lib/jets/cfn/resource/codebuild/project/base.rb +4 -0
- data/lib/jets/cfn/resource/codebuild/project/ec2.rb +125 -0
- data/lib/jets/cfn/resource/codebuild/project/env.rb +55 -0
- data/lib/jets/cfn/resource/codebuild/project/format_env.rb +35 -0
- data/lib/jets/cfn/resource/codebuild/project/lambda.rb +15 -0
- data/lib/jets/cfn/resource/replacer.rb +5 -5
- data/lib/jets/cfn/resource/s3/bucket.rb +3 -3
- data/lib/jets/cfn/resource/s3/jets_bucket.rb +9 -18
- data/lib/jets/cfn/resource/standardizer.rb +11 -9
- data/lib/jets/cfn/rollback.rb +8 -0
- data/lib/jets/cfn/stack/deployable.rb +16 -0
- data/lib/jets/cfn/stack/rollback.rb +59 -0
- data/lib/jets/cfn/stack/template.rb +47 -0
- data/lib/jets/cfn/stack/yamler.rb +53 -0
- data/lib/jets/cfn/stack.rb +24 -0
- data/lib/jets/cfn/status.rb +41 -6
- data/lib/jets/cfn/teardown/bucket.rb +79 -0
- data/lib/jets/cfn/teardown.rb +20 -0
- data/lib/jets/cli/base.rb +46 -0
- data/lib/jets/cli/bootstrap.rb +17 -0
- data/lib/jets/cli/build.rb +8 -0
- data/lib/jets/cli/call.rb +133 -0
- data/lib/jets/cli/ci/base.rb +54 -0
- data/lib/jets/cli/ci/build.rb +8 -0
- data/lib/jets/cli/ci/delete.rb +25 -0
- data/lib/jets/cli/ci/deploy.rb +17 -0
- data/lib/jets/cli/ci/info.rb +40 -0
- data/lib/jets/cli/ci/init.rb +97 -0
- data/lib/jets/cli/ci/logs.rb +10 -0
- data/lib/jets/cli/ci/start.rb +121 -0
- data/lib/jets/cli/ci/status.rb +29 -0
- data/lib/jets/cli/ci/stop.rb +24 -0
- data/lib/jets/cli/ci/tailer.rb +17 -0
- data/lib/jets/cli/ci/templates/ci.rb.tt +19 -0
- data/lib/jets/cli/ci.rb +55 -0
- data/lib/jets/cli/clean.rb +10 -0
- data/lib/jets/cli/concurrency/base.rb +17 -0
- data/lib/jets/cli/concurrency/get.rb +37 -0
- data/lib/jets/cli/concurrency/info.rb +86 -0
- data/lib/jets/cli/concurrency/set.rb +31 -0
- data/lib/jets/cli/concurrency/unset.rb +21 -0
- data/lib/jets/cli/concurrency.rb +33 -0
- data/lib/jets/cli/curl/adapter/base.rb +8 -0
- data/lib/jets/cli/curl/adapter/cookies/jar.rb +28 -0
- data/lib/jets/cli/curl/adapter/cookies/parser.rb +48 -0
- data/lib/jets/cli/curl/adapter/lambda.rb +142 -0
- data/lib/jets/cli/curl/request.rb +62 -0
- data/lib/jets/cli/curl.rb +9 -0
- data/lib/jets/cli/delete.rb +23 -0
- data/lib/jets/cli/deploy.rb +18 -0
- data/lib/jets/cli/dotenv/base.rb +4 -0
- data/lib/jets/cli/dotenv/get.rb +14 -0
- data/lib/jets/cli/dotenv/list.rb +32 -0
- data/lib/jets/cli/dotenv/set.rb +50 -0
- data/lib/jets/cli/dotenv/ssm.rb +60 -0
- data/lib/jets/cli/dotenv/unset.rb +11 -0
- data/lib/jets/cli/dotenv.rb +28 -0
- data/lib/jets/cli/env/base.rb +13 -0
- data/lib/jets/cli/env/get.rb +13 -0
- data/lib/jets/cli/env/list.rb +19 -0
- data/lib/jets/cli/env/parse.rb +11 -0
- data/lib/jets/cli/env/set.rb +25 -0
- data/lib/jets/cli/env/unset.rb +17 -0
- data/lib/jets/cli/env.rb +29 -0
- data/lib/jets/cli/exec/command.rb +61 -0
- data/lib/jets/cli/exec/repl/history.rb +42 -0
- data/lib/jets/cli/exec/repl.rb +122 -0
- data/lib/jets/cli/exec.rb +14 -0
- data/lib/jets/cli/functions.rb +39 -0
- data/lib/jets/cli/generate/event.rb +29 -0
- data/lib/jets/cli/generate/templates/application_event.rb.tt +6 -0
- data/lib/jets/cli/generate/templates/event_types/application_event.rb +4 -0
- data/lib/jets/cli/generate/templates/event_types/dynamodb.rb.tt +6 -0
- data/lib/jets/cli/generate/templates/event_types/iot.rb.tt +6 -0
- data/lib/jets/{generators/job → cli/generate}/templates/event_types/kinesis.rb.tt +2 -4
- data/lib/jets/{generators/job → cli/generate}/templates/event_types/log.rb.tt +2 -4
- data/lib/jets/{generators/job → cli/generate}/templates/event_types/rule.rb.tt +2 -4
- data/lib/jets/cli/generate/templates/event_types/s3.rb.tt +13 -0
- data/lib/jets/cli/generate/templates/event_types/scheduled.rb.tt +6 -0
- data/lib/jets/cli/generate/templates/event_types/sns.rb.tt +8 -0
- data/lib/jets/cli/generate/templates/event_types/sqs.rb.tt +9 -0
- data/lib/jets/cli/generate.rb +6 -0
- data/lib/jets/cli/group/actions.rb +57 -0
- data/lib/jets/cli/group/base.rb +12 -0
- data/lib/jets/cli/group/helpers.rb +26 -0
- data/lib/jets/cli/help/build.md +1 -0
- data/lib/jets/cli/help/call.md +28 -0
- data/lib/jets/cli/help/curl.md +82 -0
- data/lib/jets/{command → cli}/help/delete.md +4 -4
- data/lib/jets/cli/help/deploy.md +5 -0
- data/lib/jets/cli/help/dotenv/get.md +4 -0
- data/lib/jets/cli/help/dotenv/list.md +5 -0
- data/lib/jets/cli/help/dotenv/set.md +25 -0
- data/lib/jets/cli/help/dotenv/unset.md +12 -0
- data/lib/jets/cli/help/exec.md +53 -0
- data/lib/jets/cli/help/generate/event.md +11 -0
- data/lib/jets/{command → cli}/help/logs.md +2 -2
- data/lib/jets/{command/help/releases.md → cli/help/release/history.md} +3 -3
- data/lib/jets/cli/help/rollback.md +5 -0
- data/lib/jets/cli/help/schedule/validate.md +1 -0
- data/lib/jets/{command → cli}/help/status.md +1 -1
- data/lib/jets/cli/help.rb +16 -0
- data/lib/jets/cli/init/detect.rb +30 -0
- data/lib/jets/cli/init/templates/config/jets/bootstrap.rb.tt +16 -0
- data/lib/jets/cli/init/templates/config/jets/deploy.rb.tt +43 -0
- data/lib/jets/cli/init/templates/config/jets/project.rb.tt +3 -0
- data/lib/jets/cli/init/templates/env/.env.tt +18 -0
- data/lib/jets/cli/init.rb +66 -0
- data/lib/jets/cli/lambda/checks.rb +22 -0
- data/lib/jets/cli/lambda/function.rb +104 -0
- data/lib/jets/cli/lambda/functions.rb +10 -0
- data/lib/jets/cli/lambda/lookup.rb +68 -0
- data/lib/jets/cli/login.rb +7 -0
- data/lib/jets/cli/logout.rb +7 -0
- data/lib/jets/cli/logs.rb +40 -0
- data/lib/jets/cli/maintenance/base.rb +15 -0
- data/lib/jets/cli/maintenance/mode.rb +44 -0
- data/lib/jets/cli/maintenance/web.rb +31 -0
- data/lib/jets/cli/maintenance/worker/base.rb +22 -0
- data/lib/jets/cli/maintenance/worker/restorer.rb +19 -0
- data/lib/jets/cli/maintenance/worker/saver.rb +15 -0
- data/lib/jets/cli/maintenance/worker/zeroer.rb +19 -0
- data/lib/jets/cli/maintenance/worker.rb +31 -0
- data/lib/jets/cli/maintenance.rb +32 -0
- data/lib/jets/cli/package/dockerfile.rb +9 -0
- data/lib/jets/cli/package.rb +8 -0
- data/lib/jets/cli/ping.rb +10 -0
- data/lib/jets/cli/projects.rb +22 -0
- data/lib/jets/cli/release/base.rb +4 -0
- data/lib/jets/cli/release/history.rb +68 -0
- data/lib/jets/cli/release/info.rb +59 -0
- data/lib/jets/cli/release/rollback.rb +15 -0
- data/lib/jets/cli/release.rb +23 -0
- data/lib/jets/cli/schedule/base.rb +5 -0
- data/lib/jets/cli/schedule/translate.rb +168 -0
- data/lib/jets/cli/schedule/validate.rb +95 -0
- data/lib/jets/cli/schedule.rb +15 -0
- data/lib/jets/cli/stacks.rb +33 -0
- data/lib/jets/cli/stop.rb +31 -0
- data/lib/jets/cli/teardown.rb +8 -0
- data/lib/jets/cli/tip.rb +86 -0
- data/lib/jets/cli/url.rb +41 -0
- data/lib/jets/cli/waf/base.rb +7 -0
- data/lib/jets/cli/waf/build.rb +8 -0
- data/lib/jets/cli/waf/delete.rb +17 -0
- data/lib/jets/cli/waf/deploy.rb +17 -0
- data/lib/jets/cli/waf/info.rb +128 -0
- data/lib/jets/cli/waf/init.rb +40 -0
- data/lib/jets/cli/waf/templates/waf.rb.tt +26 -0
- data/lib/jets/cli/waf.rb +38 -0
- data/lib/jets/cli.rb +180 -28
- data/lib/jets/code/copy/base.rb +84 -0
- data/lib/jets/code/copy/full.rb +9 -0
- data/lib/jets/code/copy/git_copy.rb +26 -0
- data/lib/jets/code/copy/git_inline.rb +13 -0
- data/lib/jets/code/copy/rsync.rb +19 -0
- data/lib/jets/code/dummy.rb +11 -0
- data/lib/jets/code/stager.rb +124 -0
- data/lib/jets/code/user.rb +24 -0
- data/lib/jets/code.rb +80 -0
- data/lib/jets/core/booter.rb +58 -0
- data/lib/jets/core/config/base.rb +17 -0
- data/lib/jets/core/config/bootstrap/cfn.rb +12 -0
- data/lib/jets/core/config/bootstrap/code.rb +16 -0
- data/lib/jets/core/config/bootstrap/codebuild.rb +97 -0
- data/lib/jets/core/config/bootstrap/s3_bucket.rb +19 -0
- data/lib/jets/core/config/bootstrap.rb +24 -0
- data/lib/jets/core/config/helpers/ssm.rb +9 -0
- data/lib/jets/core/config/helpers.rb +5 -0
- data/lib/jets/core/config/info.rb +27 -0
- data/lib/jets/core/config/project.rb +103 -0
- data/lib/jets/core.rb +26 -202
- data/lib/jets/core_ext/bundler.rb +6 -4
- data/lib/jets/core_ext.rb +0 -1
- data/lib/jets/dotenv/convention.rb +86 -0
- data/lib/jets/dotenv/ssm.rb +61 -38
- data/lib/jets/dotenv/var.rb +60 -0
- data/lib/jets/dotenv.rb +55 -50
- data/lib/jets/event/base.rb +55 -0
- data/lib/jets/event/dsl/dynamodb_event.rb +8 -0
- data/lib/jets/event/dsl/iot_event.rb +17 -0
- data/lib/jets/event/dsl/kinesis_event.rb +8 -0
- data/lib/jets/event/dsl/log_event.rb +8 -0
- data/lib/jets/event/dsl/rate_expression.rb +27 -0
- data/lib/jets/event/dsl/s3_event.rb +7 -0
- data/lib/jets/event/dsl/scheduled_event.rb +53 -0
- data/lib/jets/event/dsl/sns_event.rb +8 -0
- data/lib/jets/event/dsl/sqs_event.rb +8 -0
- data/lib/jets/{job → event}/dsl.rb +7 -12
- data/lib/jets/{job → event}/helpers/kinesis_event.rb +2 -2
- data/lib/jets/{job → event}/helpers/log_event.rb +5 -5
- data/lib/jets/event/helpers/s3_event.rb +76 -0
- data/lib/jets/event/helpers/sns_event.rb +16 -0
- data/lib/jets/event/helpers/sqs_event.rb +23 -0
- data/lib/jets/event/s3.rb +21 -0
- data/lib/jets/git/azure.rb +64 -0
- data/lib/jets/git/base.rb +26 -0
- data/lib/jets/git/bitbucket.rb +30 -0
- data/lib/jets/git/circleci.rb +23 -0
- data/lib/jets/git/codebuild.rb +49 -0
- data/lib/jets/git/custom.rb +32 -0
- data/lib/jets/git/git_cli.rb +28 -0
- data/lib/jets/git/github.rb +48 -0
- data/lib/jets/git/gitlab.rb +30 -0
- data/lib/jets/git/info.rb +39 -0
- data/lib/jets/git/local.rb +69 -0
- data/lib/jets/git/saved.rb +16 -0
- data/lib/jets/git/user.rb +33 -0
- data/lib/jets/git.rb +5 -0
- data/lib/jets/lambda/definition.rb +22 -16
- data/lib/jets/lambda/dsl.rb +394 -394
- data/lib/jets/lambda/function_constructor.rb +1 -2
- data/lib/jets/lambda/functions.rb +10 -25
- data/lib/jets/names.rb +5 -17
- data/lib/jets/prewarm.rb +27 -0
- data/lib/jets/rdoc.rb +2 -2
- data/lib/jets/remote/base.rb +11 -0
- data/lib/jets/remote/download.rb +65 -0
- data/lib/jets/remote/runner.rb +101 -0
- data/lib/jets/remote/tailer.rb +272 -0
- data/lib/jets/shim/adapter/alb.rb +16 -0
- data/lib/jets/shim/adapter/apigw.rb +37 -0
- data/lib/jets/shim/adapter/base.rb +16 -0
- data/lib/jets/shim/adapter/command.rb +21 -0
- data/lib/jets/shim/adapter/event.rb +27 -0
- data/lib/jets/shim/adapter/fallback.rb +64 -0
- data/lib/jets/shim/adapter/lambda.rb +35 -0
- data/lib/jets/shim/adapter/prewarm.rb +27 -0
- data/lib/jets/shim/adapter/web.rb +145 -0
- data/lib/jets/shim/config.rb +71 -0
- data/lib/jets/shim/handler.rb +60 -0
- data/lib/jets/shim/maintenance/maintenance.html +45 -0
- data/lib/jets/shim/maintenance.rb +37 -0
- data/lib/jets/shim/response/alb.rb +10 -0
- data/lib/jets/shim/response/apigw.rb +4 -0
- data/lib/jets/shim/response/base.rb +124 -0
- data/lib/jets/shim/response/lambda.rb +4 -0
- data/lib/jets/shim/response/web.rb +4 -0
- data/lib/jets/shim.rb +46 -0
- data/lib/jets/stack/{main/dsl → dsl/main}/base.rb +2 -23
- data/lib/jets/stack/dsl/main/cloudwatch.rb +6 -0
- data/lib/jets/stack/dsl/main/iam.rb +6 -0
- data/lib/jets/stack/dsl/main/kinesis.rb +6 -0
- data/lib/jets/stack/dsl/main/lambda.rb +39 -0
- data/lib/jets/stack/dsl/main/s3.rb +9 -0
- data/lib/jets/stack/dsl/main/sns.rb +12 -0
- data/lib/jets/stack/dsl/main/sqs.rb +6 -0
- data/lib/jets/stack/dsl/main.rb +15 -0
- data/lib/jets/stack/dsl/output.rb +11 -0
- data/lib/jets/stack/dsl/parameter.rb +11 -0
- data/lib/jets/stack/dsl/resource.rb +11 -0
- data/lib/jets/stack/dsl.rb +10 -0
- data/lib/jets/stack/{output/lookup.rb → outputs.rb} +7 -6
- data/lib/jets/stack.rb +11 -58
- data/lib/jets/thor/auth.rb +96 -0
- data/lib/jets/thor/base.rb +155 -0
- data/lib/jets/thor/help.rb +129 -0
- data/lib/jets/thor/project_check.rb +50 -0
- data/lib/jets/thor/shared_options.rb +31 -0
- data/lib/jets/thor/version_check.rb +51 -0
- data/lib/jets/util/call_line.rb +9 -0
- data/lib/jets/util/camelize.rb +1 -1
- data/lib/jets/util/git.rb +11 -0
- data/lib/jets/util/logging.rb +16 -0
- data/lib/jets/util/pretty.rb +23 -0
- data/lib/jets/util/sh.rb +38 -0
- data/lib/jets/util/sure.rb +25 -0
- data/lib/jets/util/truthy.rb +9 -0
- data/lib/jets/util/yamler.rb +3 -5
- data/lib/jets/version.rb +1 -1
- data/lib/jets.rb +4 -8
- metadata +339 -604
- data/.circleci/config.yml +0 -92
- data/.cody/README.md +0 -13
- data/.cody/docs/bin/build.sh +0 -7
- data/.cody/docs/bin/bundler_setup.sh +0 -8
- data/.cody/docs/bin/cli_docs.sh +0 -6
- data/.cody/docs/bin/git_commit.sh +0 -27
- data/.cody/docs/bin/git_setup.sh +0 -12
- data/.cody/docs/bin/subnav.sh +0 -14
- data/.cody/docs/buildspec.yml +0 -10
- data/.cody/docs/project.rb +0 -10
- data/Dockerfile +0 -16
- data/Dockerfile.base +0 -53
- data/Guardfile +0 -22
- data/Procfile +0 -2
- data/engines/internal/app/controllers/jets/application_controller.rb +0 -28
- data/engines/internal/app/controllers/jets/bare_controller.rb +0 -6
- data/engines/internal/app/controllers/jets/health_controller.rb +0 -55
- data/engines/internal/app/controllers/jets/info_controller.rb +0 -45
- data/engines/internal/app/controllers/jets/mailers_controller.rb +0 -95
- data/engines/internal/app/controllers/jets/mount_controller.rb +0 -59
- data/engines/internal/app/controllers/jets/public_controller.rb +0 -35
- data/engines/internal/app/controllers/jets/welcome_controller.rb +0 -9
- data/engines/internal/app/functions/jets/base_path.rb +0 -109
- data/engines/internal/app/functions/jets/base_path_mapping.rb +0 -191
- data/engines/internal/app/jobs/jets/preheat_job.rb +0 -64
- data/engines/internal/app/shared/functions/jets/s3_bucket_config.rb +0 -33
- data/engines/internal/app/views/jets/info/properties.html.erb +0 -1
- data/engines/internal/app/views/jets/info/routes.html.erb +0 -10
- data/engines/internal/app/views/jets/mailers/email.html.erb +0 -165
- data/engines/internal/app/views/jets/mailers/index.html.erb +0 -8
- data/engines/internal/app/views/jets/mailers/mailer.html.erb +0 -6
- data/engines/internal/app/views/jets/welcome/index.html.erb +0 -95
- data/engines/internal/app/views/layouts/application.html.erb +0 -51
- data/engines/internal/lib/internal/actiondispatch.rb +0 -39
- data/engines/internal/lib/internal/actionmailer.rb +0 -51
- data/engines/internal/lib/internal/actionview.rb +0 -152
- data/engines/internal/lib/internal/activerecord.rb +0 -37
- data/engines/internal/lib/internal/activesupport.rb +0 -47
- data/engines/internal/lib/internal/engine.rb +0 -13
- data/engines/internal/lib/internal/i18n_engine.rb +0 -19
- data/engines/internal/lib/internal/jets_controller.rb +0 -46
- data/engines/internal/lib/internal/overrides/debug_exceptions.rb +0 -40
- data/engines/internal/lib/internal/templates/rescues/_trace.html.erb +0 -62
- data/engines/internal/lib/internal/templates/rescues/_trace.text.erb +0 -9
- data/engines/internal/lib/internal/turbines/asset_tag_helper.rb +0 -70
- data/engines/internal/lib/internal/turbines/helpers.rb +0 -18
- data/engines/internal/lib/internal/turbines/routes_helpers.rb +0 -42
- data/lib/jets/app_loader.rb +0 -77
- data/lib/jets/application/bootstrap.rb +0 -100
- data/lib/jets/application/configuration/defaults.rb +0 -256
- data/lib/jets/application/configuration.rb +0 -494
- data/lib/jets/application/default_middleware_stack.rb +0 -140
- data/lib/jets/application/dummy_erb_compiler.rb +0 -18
- data/lib/jets/application/finisher.rb +0 -266
- data/lib/jets/application/routes_reloader.rb +0 -80
- data/lib/jets/application.rb +0 -556
- data/lib/jets/authorizer/base.rb +0 -37
- data/lib/jets/authorizer/dsl.rb +0 -73
- data/lib/jets/authorizer/helpers/iam_helper.rb +0 -49
- data/lib/jets/autoloaders/inflector.rb +0 -21
- data/lib/jets/backtrace_cleaner.rb +0 -27
- data/lib/jets/booter.rb +0 -78
- data/lib/jets/builders/code_builder.rb +0 -359
- data/lib/jets/builders/code_size.rb +0 -58
- data/lib/jets/builders/gem_replacer.rb +0 -83
- data/lib/jets/builders/handler_generator.rb +0 -214
- data/lib/jets/builders/lambda_layer.rb +0 -63
- data/lib/jets/builders/md5.rb +0 -60
- data/lib/jets/builders/md5_zip.rb +0 -61
- data/lib/jets/builders/purger.rb +0 -35
- data/lib/jets/builders/rack_packager.rb +0 -51
- data/lib/jets/builders/rackup_wrappers/rackup +0 -19
- data/lib/jets/builders/rackup_wrappers/rackup.rb +0 -7
- data/lib/jets/builders/ruby_packager.rb +0 -288
- data/lib/jets/builders/shim_vars/app.rb +0 -82
- data/lib/jets/builders/shim_vars/base.rb +0 -25
- data/lib/jets/builders/shim_vars/shared.rb +0 -37
- data/lib/jets/builders/templates/handlers/one_lambda_for_all_controllers.rb +0 -33
- data/lib/jets/builders/templates/handlers/one_lambda_per_controller.rb +0 -20
- data/lib/jets/builders/templates/handlers/one_lambda_per_method.rb +0 -18
- data/lib/jets/builders/tidy.rb +0 -107
- data/lib/jets/builders/util.rb +0 -31
- data/lib/jets/cfn/builder/api/base.rb +0 -12
- data/lib/jets/cfn/builder/api/deployment.rb +0 -46
- data/lib/jets/cfn/builder/api/gateway.rb +0 -106
- data/lib/jets/cfn/builder/api/mapping.rb +0 -54
- data/lib/jets/cfn/builder/api/methods.rb +0 -72
- data/lib/jets/cfn/builder/api/paged.rb +0 -30
- data/lib/jets/cfn/builder/api/pages/base.rb +0 -105
- data/lib/jets/cfn/builder/api/pages/methods.rb +0 -17
- data/lib/jets/cfn/builder/api/pages/page.rb +0 -19
- data/lib/jets/cfn/builder/api/pages/resources.rb +0 -21
- data/lib/jets/cfn/builder/api/resources.rb +0 -40
- data/lib/jets/cfn/builder/authorizer.rb +0 -64
- data/lib/jets/cfn/builder/controller.rb +0 -28
- data/lib/jets/cfn/builder/function.rb +0 -9
- data/lib/jets/cfn/builder/job.rb +0 -10
- data/lib/jets/cfn/builder/nested.rb +0 -130
- data/lib/jets/cfn/builder/one_controller.rb +0 -53
- data/lib/jets/cfn/builder/parent/stagger.rb +0 -34
- data/lib/jets/cfn/builder/parent.rb +0 -149
- data/lib/jets/cfn/builder/rule.rb +0 -20
- data/lib/jets/cfn/builder/shared.rb +0 -15
- data/lib/jets/cfn/builder/util/source.rb +0 -21
- data/lib/jets/cfn/builder.rb +0 -230
- data/lib/jets/cfn/deployment.rb +0 -85
- data/lib/jets/cfn/download.rb +0 -39
- data/lib/jets/cfn/params/api/base.rb +0 -39
- data/lib/jets/cfn/params/api/cors.rb +0 -10
- data/lib/jets/cfn/params/api/methods.rb +0 -69
- data/lib/jets/cfn/params/api/resources.rb +0 -28
- data/lib/jets/cfn/params/common.rb +0 -14
- data/lib/jets/cfn/resource/api_gateway/authorizer.rb +0 -82
- data/lib/jets/cfn/resource/api_gateway/base_path/function.rb +0 -57
- data/lib/jets/cfn/resource/api_gateway/base_path/mapping.rb +0 -45
- data/lib/jets/cfn/resource/api_gateway/base_path/role.rb +0 -70
- data/lib/jets/cfn/resource/api_gateway/deployment.rb +0 -73
- data/lib/jets/cfn/resource/api_gateway/domain_name.rb +0 -65
- data/lib/jets/cfn/resource/api_gateway/method/authorization.rb +0 -41
- data/lib/jets/cfn/resource/api_gateway/method.rb +0 -92
- data/lib/jets/cfn/resource/api_gateway/resource.rb +0 -86
- data/lib/jets/cfn/resource/api_gateway/resource_id.rb +0 -25
- data/lib/jets/cfn/resource/api_gateway/rest_api/change_detection.rb +0 -10
- data/lib/jets/cfn/resource/api_gateway/rest_api/logical_id/message.rb +0 -59
- data/lib/jets/cfn/resource/api_gateway/rest_api/logical_id.rb +0 -98
- data/lib/jets/cfn/resource/api_gateway/rest_api/routes/change/base.rb +0 -110
- data/lib/jets/cfn/resource/api_gateway/rest_api/routes/change/media_types.rb +0 -36
- data/lib/jets/cfn/resource/api_gateway/rest_api/routes/change/page.rb +0 -93
- data/lib/jets/cfn/resource/api_gateway/rest_api/routes/change/to.rb +0 -30
- data/lib/jets/cfn/resource/api_gateway/rest_api/routes/change/variable.rb +0 -35
- data/lib/jets/cfn/resource/api_gateway/rest_api/routes/change.rb +0 -27
- data/lib/jets/cfn/resource/api_gateway/rest_api/routes/collision/variable_exception.rb +0 -7
- data/lib/jets/cfn/resource/api_gateway/rest_api/routes/collision.rb +0 -121
- data/lib/jets/cfn/resource/api_gateway/rest_api/routes.rb +0 -7
- data/lib/jets/cfn/resource/api_gateway/rest_api.rb +0 -74
- data/lib/jets/cfn/resource/config/config_rule.rb +0 -74
- data/lib/jets/cfn/resource/config/managed_rule.rb +0 -15
- data/lib/jets/cfn/resource/events/rule.rb +0 -31
- data/lib/jets/cfn/resource/iam/application_role.rb +0 -27
- data/lib/jets/cfn/resource/iam/base_role_definition.rb +0 -56
- data/lib/jets/cfn/resource/iam/class_role.rb +0 -74
- data/lib/jets/cfn/resource/iam/function_role.rb +0 -54
- data/lib/jets/cfn/resource/iam/managed_policy.rb +0 -22
- data/lib/jets/cfn/resource/iam/policy.rb +0 -31
- data/lib/jets/cfn/resource/iam/policy_document.rb +0 -42
- data/lib/jets/cfn/resource/iot/topic_rule.rb +0 -34
- data/lib/jets/cfn/resource/lambda/event_source_mapping.rb +0 -31
- data/lib/jets/cfn/resource/lambda/function/controller.rb +0 -21
- data/lib/jets/cfn/resource/lambda/function/environment.rb +0 -64
- data/lib/jets/cfn/resource/lambda/function.rb +0 -266
- data/lib/jets/cfn/resource/lambda/gem_layer.rb +0 -17
- data/lib/jets/cfn/resource/lambda/layer_version.rb +0 -44
- data/lib/jets/cfn/resource/lambda/permission.rb +0 -51
- data/lib/jets/cfn/resource/logs/subscription_filter.rb +0 -31
- data/lib/jets/cfn/resource/nested/api/base.rb +0 -4
- data/lib/jets/cfn/resource/nested/api/deployment.rb +0 -53
- data/lib/jets/cfn/resource/nested/api/gateway.rb +0 -15
- data/lib/jets/cfn/resource/nested/api/mapping.rb +0 -33
- data/lib/jets/cfn/resource/nested/api/methods.rb +0 -30
- data/lib/jets/cfn/resource/nested/api/page.rb +0 -8
- data/lib/jets/cfn/resource/nested/api/resources.rb +0 -22
- data/lib/jets/cfn/resource/nested/app_class.rb +0 -116
- data/lib/jets/cfn/resource/nested/authorizer.rb +0 -34
- data/lib/jets/cfn/resource/nested/base.rb +0 -38
- data/lib/jets/cfn/resource/nested/one_controller.rb +0 -48
- data/lib/jets/cfn/resource/nested/shared.rb +0 -79
- data/lib/jets/cfn/resource/one/function.rb +0 -66
- data/lib/jets/cfn/resource/one/permission.rb +0 -17
- data/lib/jets/cfn/resource/route53/record_set.rb +0 -98
- data/lib/jets/cfn/resource/sns/subscription.rb +0 -29
- data/lib/jets/cfn/resource/sns/topic.rb +0 -35
- data/lib/jets/cfn/resource/sns/topic_policy.rb +0 -40
- data/lib/jets/cfn/resource/sqs/queue.rb +0 -21
- data/lib/jets/cfn/ship.rb +0 -192
- data/lib/jets/cfn/template.rb +0 -93
- data/lib/jets/cfn/upload.rb +0 -163
- data/lib/jets/command/actions.rb +0 -49
- data/lib/jets/command/api_helpers.rb +0 -42
- data/lib/jets/command/aws_helpers.rb +0 -26
- data/lib/jets/command/base.rb +0 -209
- data/lib/jets/command/behavior.rb +0 -83
- data/lib/jets/command/environment_argument.rb +0 -42
- data/lib/jets/command/help/build.md +0 -6
- data/lib/jets/command/help/call.md +0 -48
- data/lib/jets/command/help/clean/build.md +0 -5
- data/lib/jets/command/help/clean/log.md +0 -5
- data/lib/jets/command/help/console.md +0 -18
- data/lib/jets/command/help/db/generate.md +0 -8
- data/lib/jets/command/help/dbconsole.md +0 -9
- data/lib/jets/command/help/degenerate.md +0 -16
- data/lib/jets/command/help/deploy.md +0 -32
- data/lib/jets/command/help/gems/check.md +0 -1
- data/lib/jets/command/help/generate.md +0 -28
- data/lib/jets/command/help/import/rack.md +0 -13
- data/lib/jets/command/help/import/rails.md +0 -11
- data/lib/jets/command/help/new.md +0 -41
- data/lib/jets/command/help/rollback.md +0 -5
- data/lib/jets/command/help/routes.md +0 -15
- data/lib/jets/command/help/runner.md +0 -40
- data/lib/jets/command/help/server.md +0 -15
- data/lib/jets/command/help/upgrade.md +0 -7
- data/lib/jets/command/help.rb +0 -17
- data/lib/jets/command/helpers/editor.rb +0 -35
- data/lib/jets/command/rake_decorate.rb +0 -38
- data/lib/jets/command.rb +0 -142
- data/lib/jets/commands/application/application_command.rb +0 -46
- data/lib/jets/commands/build/build_command.rb +0 -33
- data/lib/jets/commands/call/anonymous_guesser.rb +0 -96
- data/lib/jets/commands/call/autoload_guesser.rb +0 -136
- data/lib/jets/commands/call/base_guesser.rb +0 -62
- data/lib/jets/commands/call/call_command.rb +0 -27
- data/lib/jets/commands/call/caller.rb +0 -184
- data/lib/jets/commands/call/guesser.rb +0 -48
- data/lib/jets/commands/clean/base.rb +0 -24
- data/lib/jets/commands/clean/build.rb +0 -13
- data/lib/jets/commands/clean/clean_command.rb +0 -15
- data/lib/jets/commands/clean/log.rb +0 -111
- data/lib/jets/commands/configure/configure_command.rb +0 -9
- data/lib/jets/commands/console/console_command.rb +0 -38
- data/lib/jets/commands/credentials/USAGE +0 -103
- data/lib/jets/commands/credentials/credentials_command/diffing.rb +0 -51
- data/lib/jets/commands/credentials/credentials_command.rb +0 -139
- data/lib/jets/commands/db/system/change/change_command.rb +0 -24
- data/lib/jets/commands/dbconsole/dbconsole_command.rb +0 -184
- data/lib/jets/commands/degenerate/degenerate_command.rb +0 -21
- data/lib/jets/commands/delete/delete_command.rb +0 -154
- data/lib/jets/commands/deploy/deploy_command.rb +0 -118
- data/lib/jets/commands/dev/dev_command.rb +0 -19
- data/lib/jets/commands/dotenv/dotenv_command.rb +0 -9
- data/lib/jets/commands/encrypted/USAGE +0 -46
- data/lib/jets/commands/encrypted/encrypted_command.rb +0 -87
- data/lib/jets/commands/gems/gems_command.rb +0 -14
- data/lib/jets/commands/generate/generate_command.rb +0 -95
- data/lib/jets/commands/help/USAGE +0 -20
- data/lib/jets/commands/help/help_command.rb +0 -15
- data/lib/jets/commands/initializers/initializers_command.rb +0 -19
- data/lib/jets/commands/logs/logs_command.rb +0 -45
- data/lib/jets/commands/new/new_command.rb +0 -19
- data/lib/jets/commands/notes/notes_command.rb +0 -30
- data/lib/jets/commands/plugin/plugin_command.rb +0 -45
- data/lib/jets/commands/projects/projects_command.rb +0 -30
- data/lib/jets/commands/rake/rake_command.rb +0 -59
- data/lib/jets/commands/releases/releases_command.rb +0 -124
- data/lib/jets/commands/rollback/rollback_command.rb +0 -33
- data/lib/jets/commands/routes/routes_command.rb +0 -19
- data/lib/jets/commands/runner/runner_command.rb +0 -60
- data/lib/jets/commands/server/server_command.rb +0 -291
- data/lib/jets/commands/stacks/stacks_command.rb +0 -39
- data/lib/jets/commands/status/status_command.rb +0 -16
- data/lib/jets/commands/url/url_command.rb +0 -92
- data/lib/jets/commands/version/version_command.rb +0 -11
- data/lib/jets/commands.rb +0 -17
- data/lib/jets/configuration.rb +0 -166
- data/lib/jets/controller/base.rb +0 -117
- data/lib/jets/controller/compat/abstract_controller/base.rb +0 -126
- data/lib/jets/controller/compat/action_controller/metal.rb +0 -99
- data/lib/jets/controller/compat/caching.rb +0 -13
- data/lib/jets/controller/compat/future.rb +0 -13
- data/lib/jets/controller/compat/route_set.rb +0 -47
- data/lib/jets/controller/decorate/apigw_stage.rb +0 -39
- data/lib/jets/controller/decorate/authorization.rb +0 -91
- data/lib/jets/controller/decorate/logging.rb +0 -90
- data/lib/jets/controller/decorate/redirecting.rb +0 -16
- data/lib/jets/controller/decorate/url_for.rb +0 -10
- data/lib/jets/controller/handler/apigw.rb +0 -93
- data/lib/jets/controller/handler.rb +0 -41
- data/lib/jets/controller/middleware/main.rb +0 -61
- data/lib/jets/controller/middleware/mimic/apigw.rb +0 -140
- data/lib/jets/controller/middleware/mimic/lambda_context.rb +0 -44
- data/lib/jets/controller/middleware/mimic.rb +0 -105
- data/lib/jets/controller/middleware/webpacker_setup.rb +0 -6
- data/lib/jets/controller/rack_adapter/action.rb +0 -35
- data/lib/jets/controller/rack_adapter/env.rb +0 -145
- data/lib/jets/controller/request/compat/params.rb +0 -144
- data/lib/jets/controller/request/compat/request.rb +0 -125
- data/lib/jets/controller/request.rb +0 -46
- data/lib/jets/controller/response/compat/response.rb +0 -67
- data/lib/jets/controller/response.rb +0 -144
- data/lib/jets/core_ext/kernel.rb +0 -13
- data/lib/jets/dev_caching.rb +0 -44
- data/lib/jets/dotenv/show.rb +0 -11
- data/lib/jets/engine/configuration.rb +0 -96
- data/lib/jets/engine/turbines.rb +0 -23
- data/lib/jets/engine.rb +0 -380
- data/lib/jets/erb.rb +0 -51
- data/lib/jets/generators/job/job_generator.rb +0 -41
- data/lib/jets/generators/job/templates/application_job.rb.tt +0 -6
- data/lib/jets/generators/job/templates/event_types/dynamodb.rb.tt +0 -8
- data/lib/jets/generators/job/templates/event_types/iot.rb.tt +0 -8
- data/lib/jets/generators/job/templates/event_types/s3.rb.tt +0 -11
- data/lib/jets/generators/job/templates/event_types/scheduled.rb.tt +0 -8
- data/lib/jets/generators/job/templates/event_types/sns.rb.tt +0 -11
- data/lib/jets/generators/job/templates/event_types/sqs.rb.tt +0 -11
- data/lib/jets/generators/overrides/app/USAGE +0 -38
- data/lib/jets/generators/overrides/app/app_generator.rb +0 -148
- data/lib/jets/generators/overrides/app/helpers.rb +0 -139
- data/lib/jets/generators/overrides/app/templates/.env +0 -10
- data/lib/jets/generators/overrides/app/templates/.gitignore.tt +0 -13
- data/lib/jets/generators/overrides/app/templates/.jetsignore +0 -6
- data/lib/jets/generators/overrides/app/templates/.rspec +0 -3
- data/lib/jets/generators/overrides/app/templates/Gemfile.tt +0 -28
- data/lib/jets/generators/overrides/app/templates/README.md +0 -11
- data/lib/jets/generators/overrides/app/templates/Rakefile +0 -2
- data/lib/jets/generators/overrides/app/templates/app/assets/config/manifest.js +0 -3
- data/lib/jets/generators/overrides/app/templates/app/assets/images/.keep +0 -0
- data/lib/jets/generators/overrides/app/templates/app/assets/javascripts/.keep +0 -0
- data/lib/jets/generators/overrides/app/templates/app/assets/stylesheets/application.css +0 -15
- data/lib/jets/generators/overrides/app/templates/app/controllers/application_controller.rb +0 -2
- data/lib/jets/generators/overrides/app/templates/app/helpers/application_helper.rb +0 -2
- data/lib/jets/generators/overrides/app/templates/app/javascript/application.js +0 -5
- data/lib/jets/generators/overrides/app/templates/app/jobs/application_job.rb +0 -4
- data/lib/jets/generators/overrides/app/templates/app/models/application_record.rb +0 -3
- data/lib/jets/generators/overrides/app/templates/app/views/layouts/application.html.erb.tt +0 -30
- data/lib/jets/generators/overrides/app/templates/bin/jets +0 -3
- data/lib/jets/generators/overrides/app/templates/config/application.rb.tt +0 -15
- data/lib/jets/generators/overrides/app/templates/config/database.yml.tt +0 -27
- data/lib/jets/generators/overrides/app/templates/config/environments/development.rb.tt +0 -29
- data/lib/jets/generators/overrides/app/templates/config/environments/production.rb.tt +0 -21
- data/lib/jets/generators/overrides/app/templates/config/environments/test.rb.tt +0 -23
- data/lib/jets/generators/overrides/app/templates/config/initializers/content_security_policy.rb +0 -31
- data/lib/jets/generators/overrides/app/templates/config/initializers/filter_parameter_logging.rb +0 -8
- data/lib/jets/generators/overrides/app/templates/config/initializers/permissions_policy.rb +0 -11
- data/lib/jets/generators/overrides/app/templates/config/routes.rb +0 -13
- data/lib/jets/generators/overrides/app/templates/config.ru +0 -5
- data/lib/jets/generators/overrides/app/templates/db/.gitkeep +0 -0
- data/lib/jets/generators/overrides/app/templates/public/404.html +0 -67
- data/lib/jets/generators/overrides/app/templates/public/422.html +0 -67
- data/lib/jets/generators/overrides/app/templates/public/500.html +0 -66
- data/lib/jets/generators/overrides/app/templates/public/favicon.ico +0 -0
- data/lib/jets/generators/overrides/app/templates/spec/controllers/posts_controller_spec.rb +0 -15
- data/lib/jets/generators/overrides/app/templates/spec/fixtures/payloads/posts-index.json +0 -51
- data/lib/jets/generators/overrides/app/templates/spec/fixtures/payloads/posts-show.json +0 -53
- data/lib/jets/generators/overrides/app/templates/spec/spec_helper.rb.tt +0 -30
- data/lib/jets/generators/overrides/templates/erb/scaffold/_form.html.erb +0 -34
- data/lib/jets/generators/overrides/templates/erb/scaffold/edit.html.erb +0 -6
- data/lib/jets/generators/overrides/templates/erb/scaffold/index.html.erb +0 -22
- data/lib/jets/generators/overrides/templates/erb/scaffold/new.html.erb +0 -5
- data/lib/jets/generators/overrides/templates/erb/scaffold/partial.html.erb +0 -8
- data/lib/jets/generators/overrides/templates/erb/scaffold/show.html.erb +0 -9
- data/lib/jets/generators/overrides/templates/rails/assets/javascript.js +0 -2
- data/lib/jets/generators/overrides/templates/rails/assets/stylesheet.css +0 -4
- data/lib/jets/generators/overrides/templates/rails/scaffold/scaffold.css +0 -80
- data/lib/jets/generators/overrides/templates/rails/scaffold_controller/api_controller.rb.tt +0 -58
- data/lib/jets/generators/overrides/templates/rails/scaffold_controller/controller.rb.tt +0 -67
- data/lib/jets/generators.rb +0 -112
- data/lib/jets/inflections.rb +0 -32
- data/lib/jets/info.rb +0 -116
- data/lib/jets/initializable.rb +0 -95
- data/lib/jets/job/base.rb +0 -52
- data/lib/jets/job/dsl/dynamodb_event.rb +0 -78
- data/lib/jets/job/dsl/event_source_mapping.rb +0 -11
- data/lib/jets/job/dsl/iot_event.rb +0 -24
- data/lib/jets/job/dsl/kinesis_event.rb +0 -47
- data/lib/jets/job/dsl/log_event.rb +0 -15
- data/lib/jets/job/dsl/rule_event.rb +0 -78
- data/lib/jets/job/dsl/s3_event.rb +0 -77
- data/lib/jets/job/dsl/sns_event.rb +0 -54
- data/lib/jets/job/dsl/sqs_event.rb +0 -97
- data/lib/jets/job/helpers/s3_event.rb +0 -50
- data/lib/jets/job/helpers/sns_event.rb +0 -26
- data/lib/jets/job/helpers/sqs_event.rb +0 -26
- data/lib/jets/klass.rb +0 -108
- data/lib/jets/lambda/dsl/warnings.rb +0 -57
- data/lib/jets/mega/hash_converter.rb +0 -25
- data/lib/jets/mega/request/source.rb +0 -20
- data/lib/jets/mega/request.rb +0 -163
- data/lib/jets/overrides/dummy/rails.rb +0 -11
- data/lib/jets/overrides/lambda/marshaller.rb +0 -31
- data/lib/jets/overrides/lambda.rb +0 -1
- data/lib/jets/overrides/puma.rb +0 -10
- data/lib/jets/paths.rb +0 -243
- data/lib/jets/poly/base_executor.rb +0 -125
- data/lib/jets/poly/lambda_executor.rb +0 -16
- data/lib/jets/poly/node_error.rb +0 -8
- data/lib/jets/poly/node_executor.rb +0 -54
- data/lib/jets/poly/python_error.rb +0 -8
- data/lib/jets/poly/python_executor.rb +0 -23
- data/lib/jets/poly.rb +0 -73
- data/lib/jets/preheat.rb +0 -110
- data/lib/jets/processors/deducer.rb +0 -65
- data/lib/jets/processors/main_processor.rb +0 -54
- data/lib/jets/rack/logger.rb +0 -77
- data/lib/jets/router/compat/route_set.rb +0 -177
- data/lib/jets/router/dsl/mount.rb +0 -47
- data/lib/jets/router/dsl.rb +0 -164
- data/lib/jets/router/engine_mount.rb +0 -36
- data/lib/jets/router/help.rb +0 -130
- data/lib/jets/router/helpers/named_routes/add_full_url.rb +0 -13
- data/lib/jets/router/helpers/named_routes/generated.rb +0 -197
- data/lib/jets/router/helpers/named_routes/proxy.rb +0 -66
- data/lib/jets/router/matcher.rb +0 -204
- data/lib/jets/router/resources/base.rb +0 -7
- data/lib/jets/router/resources/filter.rb +0 -15
- data/lib/jets/router/resources/options.rb +0 -15
- data/lib/jets/router/route/after_initialize.rb +0 -64
- data/lib/jets/router/route/as.rb +0 -93
- data/lib/jets/router/route/authorizer.rb +0 -58
- data/lib/jets/router/route/compat.rb +0 -45
- data/lib/jets/router/route/info.rb +0 -74
- data/lib/jets/router/route/node.rb +0 -137
- data/lib/jets/router/route/path.rb +0 -93
- data/lib/jets/router/route.rb +0 -249
- data/lib/jets/router/route_set.rb +0 -214
- data/lib/jets/router/scope.rb +0 -230
- data/lib/jets/router/state.rb +0 -67
- data/lib/jets/router/util.rb +0 -8
- data/lib/jets/router.rb +0 -94
- data/lib/jets/ruby_version_check.rb +0 -15
- data/lib/jets/rule/base.rb +0 -20
- data/lib/jets/rule/dsl.rb +0 -109
- data/lib/jets/secrets.rb +0 -110
- data/lib/jets/spec_helpers/controllers/params.rb +0 -8
- data/lib/jets/spec_helpers/controllers/request.rb +0 -107
- data/lib/jets/spec_helpers/controllers/response.rb +0 -10
- data/lib/jets/spec_helpers/controllers.rb +0 -54
- data/lib/jets/spec_helpers/fixtures.rb +0 -11
- data/lib/jets/spec_helpers.rb +0 -15
- data/lib/jets/stack/builder.rb +0 -44
- data/lib/jets/stack/definition.rb +0 -47
- data/lib/jets/stack/depends/item.rb +0 -26
- data/lib/jets/stack/depends.rb +0 -34
- data/lib/jets/stack/function.rb +0 -71
- data/lib/jets/stack/main/dsl/cloudwatch.rb +0 -19
- data/lib/jets/stack/main/dsl/iam.rb +0 -8
- data/lib/jets/stack/main/dsl/kinesis.rb +0 -15
- data/lib/jets/stack/main/dsl/lambda.rb +0 -90
- data/lib/jets/stack/main/dsl/s3.rb +0 -12
- data/lib/jets/stack/main/dsl/sns.rb +0 -16
- data/lib/jets/stack/main/dsl/sqs.rb +0 -10
- data/lib/jets/stack/main/dsl.rb +0 -17
- data/lib/jets/stack/main.rb +0 -4
- data/lib/jets/stack/output/dsl.rb +0 -19
- data/lib/jets/stack/output.rb +0 -35
- data/lib/jets/stack/parameter/dsl.rb +0 -42
- data/lib/jets/stack/parameter.rb +0 -37
- data/lib/jets/stack/resource/dsl.rb +0 -19
- data/lib/jets/stack/resource.rb +0 -31
- data/lib/jets/stack/s3_event.rb +0 -101
- data/lib/jets/tasks/engine.rake +0 -85
- data/lib/jets/tasks/framework.rake +0 -66
- data/lib/jets/tasks/log.rake +0 -41
- data/lib/jets/tasks/middleware.rake +0 -9
- data/lib/jets/tasks/misc.rake +0 -81
- data/lib/jets/tasks/statistics.rake +0 -37
- data/lib/jets/tasks/tmp.rake +0 -51
- data/lib/jets/tasks/yarn.rake +0 -29
- data/lib/jets/tasks/zeitwerk.rake +0 -61
- data/lib/jets/tasks.rb +0 -18
- data/lib/jets/tmp_loader.rb +0 -53
- data/lib/jets/turbine/configurable.rb +0 -36
- data/lib/jets/turbine/configuration.rb +0 -101
- data/lib/jets/turbine.rb +0 -185
- data/lib/jets/util.rb +0 -40
- /data/lib/jets/{command → cli}/help/projects.md +0 -0
- /data/lib/jets/{command → cli}/help/stacks.md +0 -0
- /data/lib/jets/{command → cli}/help/url.md +0 -0
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
class Jets::Router::Route
|
|
2
|
-
# The Node class groups logic that requires both of route and scope info.
|
|
3
|
-
# It does not really belong in either the Route or Scope class and
|
|
4
|
-
# requires both to do its job. So it gets its own class.
|
|
5
|
-
# This seems to help keep the Route and Scope classes simpler.
|
|
6
|
-
#
|
|
7
|
-
# An instance of this class is made available with each
|
|
8
|
-
# iteration of loop that processes the DSL scopes.
|
|
9
|
-
class Node
|
|
10
|
-
attr_reader :route, :scope, :leaf_scope
|
|
11
|
-
def initialize(route, scope)
|
|
12
|
-
@route, @scope = route, scope # scope is current scope of iteration
|
|
13
|
-
@info = route.info
|
|
14
|
-
@options = route.options
|
|
15
|
-
@leaf_scope = @route.scope # the route scope is the leaf scope
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def append_path?
|
|
19
|
-
has_path? && add_path_segment?
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
def append_param?
|
|
23
|
-
has_param? && add_path_segment?
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
def append_as?
|
|
27
|
-
has_path? && add_path_segment? ||
|
|
28
|
-
scope.from.nil? && scope.as
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
# Accounts for shallow scope. Example:
|
|
32
|
-
#
|
|
33
|
-
# resources :posts, shallow: true do
|
|
34
|
-
# resources :comments do
|
|
35
|
-
# resources :likes
|
|
36
|
-
# end
|
|
37
|
-
# end
|
|
38
|
-
#
|
|
39
|
-
# add_path_segment? = add_path_segment_considering_shallow?
|
|
40
|
-
#
|
|
41
|
-
def add_path_segment?
|
|
42
|
-
if param_action? && shallow_param_action?
|
|
43
|
-
leaf? # only add path segments for leaf
|
|
44
|
-
elsif paramless_action? && shallow_paramless_action?
|
|
45
|
-
leaf? || leaf_scope.real_parent?(scope)
|
|
46
|
-
else
|
|
47
|
-
true # default is to always path preceding path segments
|
|
48
|
-
end
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
def shallow_param_action?
|
|
52
|
-
lookahead_shallow? || leaf_scope.any_parent_shallow?
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
def shallow_paramless_action?
|
|
56
|
-
lookahead_shallow?(parent: true) || scope.any_parent_shallow?
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
def lookahead_shallow?(parent: false)
|
|
60
|
-
next_scope = scope
|
|
61
|
-
while next_scope
|
|
62
|
-
check_scope = parent ? next_scope.parent : next_scope
|
|
63
|
-
# Important to check next_scope == leaf_scope
|
|
64
|
-
# Otherwise it'll collapse path segments for higher scopes also.
|
|
65
|
-
return true if check_scope.shallow? && next_scope == leaf_scope
|
|
66
|
-
next_scope = next_scope.next
|
|
67
|
-
end
|
|
68
|
-
false
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
def has_path?
|
|
72
|
-
scope.resolved_path && !scope.virtual?
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
def has_param?
|
|
76
|
-
return false if scope.root?
|
|
77
|
-
|
|
78
|
-
resolved_param && param_action? ||
|
|
79
|
-
scope.resource_descendent? && !leaf? ||
|
|
80
|
-
scope.resource_sibling? && !leaf?
|
|
81
|
-
end
|
|
82
|
-
|
|
83
|
-
def resolved_as
|
|
84
|
-
as = scope.as || scope.resource_name
|
|
85
|
-
# as = scope.as || scope.resource_name
|
|
86
|
-
if scope.resource_name
|
|
87
|
-
controller = nil # dont need controller. can infer from resources, namespace, etc
|
|
88
|
-
else # direct route method without scope or module only etc
|
|
89
|
-
controller = @info.controller.split('/').last if leaf? #&& as.nil?
|
|
90
|
-
end
|
|
91
|
-
[as, controller].compact.join('_')
|
|
92
|
-
end
|
|
93
|
-
|
|
94
|
-
def param_action?
|
|
95
|
-
@options[:on] == :member || scope.from == :member ||
|
|
96
|
-
%w[edit show update destroy].include?(@info.action)
|
|
97
|
-
end
|
|
98
|
-
|
|
99
|
-
def paramless_action?
|
|
100
|
-
@options[:on] == :collection || scope.from == :collection ||
|
|
101
|
-
%w[index new create].include?(@info.action)
|
|
102
|
-
end
|
|
103
|
-
|
|
104
|
-
def leaf?
|
|
105
|
-
scope == leaf_scope
|
|
106
|
-
end
|
|
107
|
-
|
|
108
|
-
def resolved_path
|
|
109
|
-
scope.resolved_path
|
|
110
|
-
end
|
|
111
|
-
|
|
112
|
-
def resolved_param
|
|
113
|
-
case scope.from
|
|
114
|
-
when :resources, :member
|
|
115
|
-
":#{param}"
|
|
116
|
-
else # :resource, :namespace, :path, :collection
|
|
117
|
-
nil
|
|
118
|
-
end
|
|
119
|
-
end
|
|
120
|
-
|
|
121
|
-
# If a block has pass then we assume the resources will be nested and then prefix
|
|
122
|
-
# the param name with the resource. IE: post_id instead of id
|
|
123
|
-
# This avoids an API Gateway parent sibling variable collision.
|
|
124
|
-
def param
|
|
125
|
-
return scope.options[:param] if scope.options[:param]
|
|
126
|
-
|
|
127
|
-
if leaf? && Jets.config.routes.allow_sibling_conflicts
|
|
128
|
-
"id"
|
|
129
|
-
elsif scope.resource_descendent? ||
|
|
130
|
-
scope.resource_sibling? && scope.colliding_resource_sibling?
|
|
131
|
-
"#{scope.resource_name.to_s.singularize}_id"
|
|
132
|
-
else
|
|
133
|
-
"id"
|
|
134
|
-
end
|
|
135
|
-
end
|
|
136
|
-
end
|
|
137
|
-
end
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
class Jets::Router::Route
|
|
2
|
-
module Path
|
|
3
|
-
# Note: The @options[:path] is missing prefix and is not support via direct create_route.
|
|
4
|
-
# This is because it can be added directly to the path. IE:
|
|
5
|
-
#
|
|
6
|
-
# get "myprefix/posts", to: "posts#index"
|
|
7
|
-
#
|
|
8
|
-
# Also, this helps to keep the method creator logic simpler.
|
|
9
|
-
#
|
|
10
|
-
def path(format=:jets)
|
|
11
|
-
segments = path_prefixes + [path_option]
|
|
12
|
-
segments = add_path_suffix(segments)
|
|
13
|
-
path = segments.reject(&:blank?).join('/')
|
|
14
|
-
format_path(format, path)
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
# When scope used directly. IE: not coming from namespace or resources
|
|
18
|
-
# When coming from namespace or resources, the path is already accounted for.
|
|
19
|
-
def path_prefixes
|
|
20
|
-
list = []
|
|
21
|
-
@scope.from_top.each do |scope|
|
|
22
|
-
node = Node.new(self, scope)
|
|
23
|
-
# Update @path_names as we walk down
|
|
24
|
-
@path_names.merge!(scope.options[:path_names] || {})
|
|
25
|
-
|
|
26
|
-
list << scope.resolved_path if node.append_path?
|
|
27
|
-
list << node.resolved_param if node.append_param?
|
|
28
|
-
end
|
|
29
|
-
list.reject!(&:blank?) # allows for path: '' to remove resource name from path
|
|
30
|
-
list
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def path_option
|
|
34
|
-
node = Node.new(self, @scope)
|
|
35
|
-
path = @options[:path].to_s.delete_prefix('/') # IE: new or edit
|
|
36
|
-
path.sub!(@scope.param_placeholder, ":#{node.resolved_param}")
|
|
37
|
-
path
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
# Accounts for path names options map. Example:
|
|
41
|
-
#
|
|
42
|
-
# {path_names: {new: "sign_up", edit: "edit"}}
|
|
43
|
-
#
|
|
44
|
-
# new posts/new => posts/sign_up
|
|
45
|
-
# edit posts/:id/edit => posts/:id/edit
|
|
46
|
-
#
|
|
47
|
-
def add_path_suffix(all_segments)
|
|
48
|
-
# rip apart last path as segments
|
|
49
|
-
# work with and modify segments to be returned
|
|
50
|
-
segments = all_segments.last.to_s.split('/')
|
|
51
|
-
current_suffix = segments.last
|
|
52
|
-
|
|
53
|
-
new_or_edit = %w[new edit].include?(current_suffix)
|
|
54
|
-
additional_action = @options[:on].is_a?(Symbol) && @options[:on] != :member && @options[:on] != :collection
|
|
55
|
-
will_replace = new_or_edit || additional_action
|
|
56
|
-
|
|
57
|
-
if will_replace
|
|
58
|
-
segments_without_last = all_segments[0..-2]
|
|
59
|
-
# reassemble path with additional on action
|
|
60
|
-
segments_without_last << @options[:on].to_s if additional_action
|
|
61
|
-
# reassemble with new suffix from path_names map
|
|
62
|
-
new_suffix = @path_names[current_suffix.to_sym] || current_suffix
|
|
63
|
-
segments_without_last << new_suffix
|
|
64
|
-
new_last = segments_without_last.join('/')
|
|
65
|
-
segments[-1] = new_last # replace
|
|
66
|
-
segments
|
|
67
|
-
else
|
|
68
|
-
all_segments # original
|
|
69
|
-
end
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
def path_suffixes
|
|
73
|
-
list = []
|
|
74
|
-
list << action_suffix if action_suffix
|
|
75
|
-
list
|
|
76
|
-
end
|
|
77
|
-
|
|
78
|
-
# IE: standard: posts/:id/edit
|
|
79
|
-
# api_gateway: posts/{id}/edit
|
|
80
|
-
def format_path(format, path)
|
|
81
|
-
path = case format
|
|
82
|
-
when :api_gateway
|
|
83
|
-
api_gateway_format(path)
|
|
84
|
-
when :raw
|
|
85
|
-
path
|
|
86
|
-
else # jets format
|
|
87
|
-
ensure_jets_format(path)
|
|
88
|
-
end
|
|
89
|
-
path = "/#{path}" unless path.starts_with?('/') # ensure starts with / be forgiving if / accidentally not included
|
|
90
|
-
path
|
|
91
|
-
end
|
|
92
|
-
end
|
|
93
|
-
end
|
data/lib/jets/router/route.rb
DELETED
|
@@ -1,249 +0,0 @@
|
|
|
1
|
-
# route = Jets::Router::Route.new(
|
|
2
|
-
# path: "posts",
|
|
3
|
-
# http_method: :get,
|
|
4
|
-
# to: "posts#index",
|
|
5
|
-
# )
|
|
6
|
-
module Jets::Router
|
|
7
|
-
class Route
|
|
8
|
-
extend Memoist
|
|
9
|
-
include Compat
|
|
10
|
-
include AfterInitialize
|
|
11
|
-
include As
|
|
12
|
-
include Authorizer
|
|
13
|
-
include Path
|
|
14
|
-
include Util
|
|
15
|
-
|
|
16
|
-
CAPTURE_REGEX = "([^/]*)" # as string
|
|
17
|
-
|
|
18
|
-
attr_reader :options, :scope, :info, :defaults
|
|
19
|
-
attr_accessor :original_engine
|
|
20
|
-
def initialize(options, scope=Scope.new)
|
|
21
|
-
@options = options
|
|
22
|
-
@scope = scope
|
|
23
|
-
@info = Info.new(@options, @scope) # @info.action and @info.controller
|
|
24
|
-
after_initialize
|
|
25
|
-
@path_names = {}
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
def to
|
|
29
|
-
engine || "#{@info.controller}##{@info.action}" # IE: posts#index
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
def engine
|
|
33
|
-
@options[:engine]
|
|
34
|
-
end
|
|
35
|
-
alias rack_app engine
|
|
36
|
-
|
|
37
|
-
def engine?
|
|
38
|
-
!!engine
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
def endpoint
|
|
42
|
-
engine.to_s if engine
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
def resolved_defaults
|
|
46
|
-
defaults = @options[:defaults] || {}
|
|
47
|
-
@scope.resolved_defaults.merge(defaults)
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
def http_method
|
|
51
|
-
@options[:http_method].to_s.upcase
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
def constraints
|
|
55
|
-
@options[:constraints] || @scope.resolved_constraints
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
def internal?
|
|
59
|
-
!!@options[:internal]
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
def homepage?
|
|
63
|
-
path == '/'
|
|
64
|
-
end
|
|
65
|
-
|
|
66
|
-
# IE: PostsController
|
|
67
|
-
# IE: index
|
|
68
|
-
delegate :action, :controller, :is_collection?, :is_member?, to: :@info
|
|
69
|
-
alias action_name action
|
|
70
|
-
|
|
71
|
-
# IE: PostsController
|
|
72
|
-
# Different from @info.action
|
|
73
|
-
def controller_name
|
|
74
|
-
"#{controller.camelize}Controller" if controller
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
# Checks to see if the corresponding controller exists. Useful to validate routes
|
|
78
|
-
# before deploying to CloudFormation and then rolling back.
|
|
79
|
-
def valid?
|
|
80
|
-
controller_class = begin
|
|
81
|
-
controller_name.constantize
|
|
82
|
-
rescue NameError => e
|
|
83
|
-
return false
|
|
84
|
-
end
|
|
85
|
-
controller_class.lambda_functions.include?(action_name.to_sym)
|
|
86
|
-
end
|
|
87
|
-
|
|
88
|
-
# For Jets.config.cfn.build.routes == "one_apigw_method_for_all_routes"
|
|
89
|
-
# Need to build the pathParameters for the API Gateway event.
|
|
90
|
-
def rebuild_path_parameters(event)
|
|
91
|
-
extracted = extract_parameters(event["path"])
|
|
92
|
-
if extracted
|
|
93
|
-
params = event["pathParameters"] || {}
|
|
94
|
-
params.merge(extracted)
|
|
95
|
-
else
|
|
96
|
-
event["pathParameters"] # pass through
|
|
97
|
-
end
|
|
98
|
-
end
|
|
99
|
-
|
|
100
|
-
# Extracts the path parameters from the actual path
|
|
101
|
-
# Only supports extracting 1 parameter. So:
|
|
102
|
-
#
|
|
103
|
-
# request_path: posts/tung/edit
|
|
104
|
-
# route.path: posts/:id/edit
|
|
105
|
-
#
|
|
106
|
-
# Returns:
|
|
107
|
-
# { id: "tung" }
|
|
108
|
-
def extract_parameters(request_path)
|
|
109
|
-
request_path = "/#{request_path}" unless request_path.starts_with?('/') # be more forgiving if / accidentally not included
|
|
110
|
-
request_path = remove_engine_mount_at_path(request_path)
|
|
111
|
-
if path.include?(':')
|
|
112
|
-
extract_parameters_capture(request_path)
|
|
113
|
-
elsif path.include?('*')
|
|
114
|
-
extract_parameters_proxy(request_path)
|
|
115
|
-
else
|
|
116
|
-
# Lambda AWS_PROXY sets null to the input request when there are no path parmeters
|
|
117
|
-
nil
|
|
118
|
-
end
|
|
119
|
-
end
|
|
120
|
-
|
|
121
|
-
def remove_engine_mount_at_path(request_path)
|
|
122
|
-
return request_path unless original_engine
|
|
123
|
-
|
|
124
|
-
mount = Jets::Router::EngineMount.find_by(engine: original_engine)
|
|
125
|
-
return request_path unless mount
|
|
126
|
-
|
|
127
|
-
request_path.sub(mount.at, '')
|
|
128
|
-
end
|
|
129
|
-
|
|
130
|
-
def extract_parameters_proxy(request_path)
|
|
131
|
-
# changes path to a string used for a regexp
|
|
132
|
-
# others/*proxy => others\/(.*)
|
|
133
|
-
# nested/others/*proxy => nested/others\/(.*)
|
|
134
|
-
if path.include?('/')
|
|
135
|
-
leading_path = path.split('/')[0..-2].join('/') # drop last segment
|
|
136
|
-
# leading_path: nested/others
|
|
137
|
-
# capture everything after the leading_path as the value
|
|
138
|
-
regexp = Regexp.new("#{leading_path}/(.*)")
|
|
139
|
-
value = request_path.match(regexp)[1]
|
|
140
|
-
else
|
|
141
|
-
value = request_path
|
|
142
|
-
end
|
|
143
|
-
|
|
144
|
-
# the last segment without the '*' is the key
|
|
145
|
-
proxy_segment = path.split('/').last # last segment is the proxy segment
|
|
146
|
-
# proxy_segment: *proxy
|
|
147
|
-
key = proxy_segment.sub('*','')
|
|
148
|
-
|
|
149
|
-
{ key => value }
|
|
150
|
-
end
|
|
151
|
-
|
|
152
|
-
def extract_parameters_capture(request_path)
|
|
153
|
-
# changes path to a string used for a regexp
|
|
154
|
-
# posts/:id/edit => posts\/(.*)\/edit
|
|
155
|
-
labels = []
|
|
156
|
-
regexp_string = path.split('/').map do |s|
|
|
157
|
-
if s.start_with?(':')
|
|
158
|
-
labels << s.delete_prefix(':')
|
|
159
|
-
CAPTURE_REGEX
|
|
160
|
-
else
|
|
161
|
-
s
|
|
162
|
-
end
|
|
163
|
-
end.join('\/')
|
|
164
|
-
# make sure beginning and end of the string matches
|
|
165
|
-
regexp_string = "^#{regexp_string}$"
|
|
166
|
-
regexp = Regexp.new(regexp_string)
|
|
167
|
-
|
|
168
|
-
values = regexp.match(request_path).captures
|
|
169
|
-
labels.map do |next_label|
|
|
170
|
-
[next_label, values.delete_at(0)]
|
|
171
|
-
end.to_h
|
|
172
|
-
end
|
|
173
|
-
|
|
174
|
-
# Prevents infinite loop when calling route.to_json for state.save("routes", ...)
|
|
175
|
-
def as_json(options= nil)
|
|
176
|
-
data = {
|
|
177
|
-
path: path,
|
|
178
|
-
http_method: http_method,
|
|
179
|
-
to: to,
|
|
180
|
-
}
|
|
181
|
-
data[:engine] = engine if engine
|
|
182
|
-
data[:internal] = internal if internal
|
|
183
|
-
data
|
|
184
|
-
end
|
|
185
|
-
|
|
186
|
-
# To keep "self #{self}" more concise and helpful
|
|
187
|
-
# Use "self #{self.inspect}" more verbose info
|
|
188
|
-
def to_s
|
|
189
|
-
"#<Jets::Router::Route:#{object_id} @options=#{@options}>"
|
|
190
|
-
end
|
|
191
|
-
|
|
192
|
-
# Old notes:
|
|
193
|
-
# For Grape apps, calling ActiveSupport to_json on a Grape class used to cause an infinite loop.
|
|
194
|
-
# Believe Grape fixed this issue. A GrapeApp.to_json now produces a string.
|
|
195
|
-
# No longer need to coerce to a string and back to a class.
|
|
196
|
-
#
|
|
197
|
-
# This is important because Sprocket::Environment.new cannot be coerced into a string or mounting wont work.
|
|
198
|
-
# This is used in sprockets-jets/lib/sprockets/jets/engine.rb
|
|
199
|
-
#
|
|
200
|
-
# Related PR: smarter apigw routes paging calculation #635
|
|
201
|
-
# https://github.com/boltops-tools/jets/pull/635
|
|
202
|
-
# Debugging notes: https://gist.github.com/tongueroo/c9baa7e98d5ad68bbdd770fde4651963
|
|
203
|
-
def mount_class
|
|
204
|
-
@options[:mount_class]
|
|
205
|
-
end
|
|
206
|
-
|
|
207
|
-
# For jets routes help table of routes
|
|
208
|
-
def mount_class_name
|
|
209
|
-
return unless mount_class
|
|
210
|
-
mount_class.class == Class ? mount_class : "#{mount_class.class}.new"
|
|
211
|
-
end
|
|
212
|
-
|
|
213
|
-
private
|
|
214
|
-
def ensure_jets_format(path)
|
|
215
|
-
path.split('/').map do |s|
|
|
216
|
-
if s =~ /^\{/ and s =~ /\+\}$/
|
|
217
|
-
s.sub(/^\{/, '*').sub(/\+\}$/,'') # {proxy+} => *proxy
|
|
218
|
-
elsif s =~ /^\{/ and s =~ /\}$/
|
|
219
|
-
s.sub('{',':').sub(/\}$/,'') # {id} => :id
|
|
220
|
-
else
|
|
221
|
-
s
|
|
222
|
-
end
|
|
223
|
-
end.join('/')
|
|
224
|
-
end
|
|
225
|
-
|
|
226
|
-
def api_gateway_format(path)
|
|
227
|
-
path.split('/')
|
|
228
|
-
.map {|s| transform_capture(s) }
|
|
229
|
-
.map {|s| transform_proxy(s) }
|
|
230
|
-
.join('/')
|
|
231
|
-
end
|
|
232
|
-
|
|
233
|
-
def transform_capture(text)
|
|
234
|
-
if text.starts_with?(':')
|
|
235
|
-
text = text.sub(':','')
|
|
236
|
-
text = "{#{text}}"
|
|
237
|
-
end
|
|
238
|
-
text
|
|
239
|
-
end
|
|
240
|
-
|
|
241
|
-
def transform_proxy(text)
|
|
242
|
-
if text.starts_with?('*')
|
|
243
|
-
text = text.sub('*','')
|
|
244
|
-
text = "{#{text}+}"
|
|
245
|
-
end
|
|
246
|
-
text
|
|
247
|
-
end
|
|
248
|
-
end
|
|
249
|
-
end
|
|
@@ -1,214 +0,0 @@
|
|
|
1
|
-
require 'dsl_evaluator'
|
|
2
|
-
|
|
3
|
-
# The Jets::Router::RouteSet mimics the Rails interface.
|
|
4
|
-
# Jets works in a similar way to Rails.
|
|
5
|
-
# For example the url_helpers:
|
|
6
|
-
#
|
|
7
|
-
# Jets.application.routes.url_helpers
|
|
8
|
-
# => Jets.application.routes.named_routes.path_helpers_module
|
|
9
|
-
# => Jets::Router::Helpers::NamedRoutes::Generated::MainAppHelpers
|
|
10
|
-
#
|
|
11
|
-
# Jets makes less use of anonymous modules. It uses generated named modules
|
|
12
|
-
# to help debugging. Whereas Rails:
|
|
13
|
-
#
|
|
14
|
-
# Rails.application.routes.url_helpers => <Module>
|
|
15
|
-
# Rails.application.routes.named_routes.path_helpers_module => <Module>
|
|
16
|
-
# Rails.application.routes.named_routes.url_helpers_module => <Module>
|
|
17
|
-
#
|
|
18
|
-
# Rails generates an anonymous module for url_helpers that wraps
|
|
19
|
-
# and includes the path_helpers_module and url_helpers_module.
|
|
20
|
-
#
|
|
21
|
-
# Jets tries to exhibit enough of the same as Rails interface to make it
|
|
22
|
-
# compatible with with ActionController and ActionView components.
|
|
23
|
-
#
|
|
24
|
-
module Jets::Router
|
|
25
|
-
class RouteSet
|
|
26
|
-
extend Memoist
|
|
27
|
-
include Compat::RouteSet
|
|
28
|
-
include Dsl
|
|
29
|
-
|
|
30
|
-
# With Jets, this class is not a really a Collection. It's a wrapper
|
|
31
|
-
# around Helpers::NamedRoutes::Generated which does the real work.
|
|
32
|
-
# Naming it NamedRouteCollection to be consistent with Rails and possibly
|
|
33
|
-
# in the future to make them more similar.
|
|
34
|
-
class NamedRouteCollection
|
|
35
|
-
attr_reader :url_helpers_module
|
|
36
|
-
def initialize(route_set)
|
|
37
|
-
@url_helpers_module = Helpers::NamedRoutes::Generated.create_helper_module(route_set)
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
# interface method
|
|
41
|
-
# Rails AbstractController::UrlFor calls this method
|
|
42
|
-
# Reason why this wrapper is needed.
|
|
43
|
-
def helper_names
|
|
44
|
-
url_helpers_module.path_helpers.map(&:to_s) +
|
|
45
|
-
url_helpers_module.url_helpers.map(&:to_s)
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
delegate :remove_methods!, :add_methods!, to: :url_helpers_module
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
attr_reader :routes, :engine
|
|
52
|
-
attr_accessor :draw_paths, :default_scope, :default_url_options,
|
|
53
|
-
:disable_clear_and_finalize
|
|
54
|
-
def initialize(engine=Jets.application)
|
|
55
|
-
@engine = engine
|
|
56
|
-
@engine_class = engine.class
|
|
57
|
-
@default_url_options = {} # {host: "localhost"}
|
|
58
|
-
@routes = []
|
|
59
|
-
@draw_paths = [] # not part of clear! addtional paths: config/routes/admin.rb
|
|
60
|
-
@prepend = [] # not part of clear! Otherwise breaks engines like sprockets-jets
|
|
61
|
-
@append = [] # not part of clear!
|
|
62
|
-
@finalized = false
|
|
63
|
-
@disable_clear_and_finalize = false
|
|
64
|
-
@default_scope = {}
|
|
65
|
-
end
|
|
66
|
-
|
|
67
|
-
# draw is called from config/routes.rb
|
|
68
|
-
# load! is what we just internally to trigger it
|
|
69
|
-
def draw(&block)
|
|
70
|
-
clear! unless @disable_clear_and_finalize
|
|
71
|
-
scope(default_scope) do
|
|
72
|
-
instance_eval(&block)
|
|
73
|
-
end
|
|
74
|
-
finalize! unless @disable_clear_and_finalize
|
|
75
|
-
check_collision!
|
|
76
|
-
end
|
|
77
|
-
|
|
78
|
-
# Be selective about what to clear. Keep other initialized instance variables
|
|
79
|
-
# like @prepend, @append, @default_scope
|
|
80
|
-
# Otherwise can break engines like sprockets-jets that use prepend.
|
|
81
|
-
def clear!
|
|
82
|
-
@finalized = false
|
|
83
|
-
@routes = []
|
|
84
|
-
@scope = Scope.new
|
|
85
|
-
named_routes.remove_methods!
|
|
86
|
-
@prepend.each { |blk| instance_eval(&blk) }
|
|
87
|
-
end
|
|
88
|
-
|
|
89
|
-
# Interface method for plugins.
|
|
90
|
-
# Plugins like kingsman use to hook into Jets after routes are loaded.
|
|
91
|
-
def finalize!
|
|
92
|
-
return if @finalized
|
|
93
|
-
@append.each { |blk| instance_eval(&blk) }
|
|
94
|
-
load_external_paths
|
|
95
|
-
named_routes.add_methods!
|
|
96
|
-
@finalized = true
|
|
97
|
-
end
|
|
98
|
-
|
|
99
|
-
# additonal paths: config/routes/admin.rb
|
|
100
|
-
def load_external_paths
|
|
101
|
-
@draw_paths.each do |draw_path|
|
|
102
|
-
Dir.glob("#{draw_path}/*.rb").each do |route_path|
|
|
103
|
-
instance_eval(File.read(route_path), route_path.to_s)
|
|
104
|
-
end
|
|
105
|
-
end
|
|
106
|
-
end
|
|
107
|
-
|
|
108
|
-
def append(&block)
|
|
109
|
-
@append << block
|
|
110
|
-
end
|
|
111
|
-
|
|
112
|
-
def prepend(&block)
|
|
113
|
-
@prepend << block
|
|
114
|
-
end
|
|
115
|
-
|
|
116
|
-
# Rails interface method
|
|
117
|
-
def eager_load!
|
|
118
|
-
# noop for Jets
|
|
119
|
-
end
|
|
120
|
-
|
|
121
|
-
def url_helpers(supports_path = true)
|
|
122
|
-
@url_helpers ||= named_routes.url_helpers_module
|
|
123
|
-
end
|
|
124
|
-
|
|
125
|
-
def mounted_helpers
|
|
126
|
-
# Calling url_helpers to create the mounted_helpers proxy methods
|
|
127
|
-
# IE: main_app and blorgh
|
|
128
|
-
url_helpers
|
|
129
|
-
@mounted_helpers ||= Helpers::NamedRoutes::Generated::MountedHelpers
|
|
130
|
-
end
|
|
131
|
-
|
|
132
|
-
def define_mounted_helper(name)
|
|
133
|
-
Helpers::NamedRoutes::Generated.define_mounted_helper(name, self)
|
|
134
|
-
end
|
|
135
|
-
|
|
136
|
-
# Note: Jets assigns this to a instance varialbe in the initialize method
|
|
137
|
-
# But Jets cannot do this because we currently eager load internally and
|
|
138
|
-
# that routes draw would not be called in proper order.
|
|
139
|
-
def named_routes
|
|
140
|
-
NamedRouteCollection.new(self)
|
|
141
|
-
end
|
|
142
|
-
memoize :named_routes
|
|
143
|
-
|
|
144
|
-
# Validate routes that deployable
|
|
145
|
-
def check_collision!
|
|
146
|
-
return if Jets.config.cfn.build.routes == "one_apigw_method_for_all_routes"
|
|
147
|
-
paths = self.routes.map(&:path)
|
|
148
|
-
collision = Jets::Cfn::Resource::ApiGateway::RestApi::Routes::Collision.new
|
|
149
|
-
collide = collision.collision?(paths)
|
|
150
|
-
raise collision.exception if collide
|
|
151
|
-
end
|
|
152
|
-
|
|
153
|
-
def one_apigw_method_for_all_routes_warning(options)
|
|
154
|
-
return unless options[:authorizer]
|
|
155
|
-
return unless Jets.config.cfn.build.routes == "one_apigw_method_for_all_routes"
|
|
156
|
-
return if options[:path].starts_with?('*') # *catchall
|
|
157
|
-
return if options[:path] == '' # root
|
|
158
|
-
|
|
159
|
-
puts <<~EOL.color(:yellow)
|
|
160
|
-
WARNING: Authorizer should not be set at individual routes when using
|
|
161
|
-
|
|
162
|
-
config.cfn.build.routes == "one_apigw_method_for_all_routes"
|
|
163
|
-
|
|
164
|
-
You should only set authorizer for the root route and *catchall route.
|
|
165
|
-
The root route uses the root authorizer.
|
|
166
|
-
And all other routes uses the *catchall authorizer.
|
|
167
|
-
Docs: http://rubyonjets.com/docs/routing/authorizers/one-method/
|
|
168
|
-
EOL
|
|
169
|
-
DslEvaluator.print_code(routes_call_line) if routes_call_line
|
|
170
|
-
end
|
|
171
|
-
|
|
172
|
-
def routes_call_line
|
|
173
|
-
caller.find { |l| l.include?('config/routes.rb') }
|
|
174
|
-
end
|
|
175
|
-
|
|
176
|
-
def api_mode?
|
|
177
|
-
Jets.config.mode == 'api' || Jets.config.api_only
|
|
178
|
-
end
|
|
179
|
-
|
|
180
|
-
# Useful for creating API Gateway Resources
|
|
181
|
-
def all_paths
|
|
182
|
-
results = []
|
|
183
|
-
paths = routes.map(&:path)
|
|
184
|
-
paths.each do |p|
|
|
185
|
-
sub_paths = []
|
|
186
|
-
parts = p.split('/')
|
|
187
|
-
until parts.empty?
|
|
188
|
-
parts.pop
|
|
189
|
-
sub_path = parts.join('/')
|
|
190
|
-
sub_paths << sub_path unless sub_path == ''
|
|
191
|
-
end
|
|
192
|
-
results += sub_paths
|
|
193
|
-
end
|
|
194
|
-
@all_paths = (results + paths).sort.uniq
|
|
195
|
-
end
|
|
196
|
-
|
|
197
|
-
# Useful for RouterMatcher
|
|
198
|
-
#
|
|
199
|
-
# Precedence:
|
|
200
|
-
# Routes with wildcards are considered after routes without wildcards
|
|
201
|
-
#
|
|
202
|
-
# Routes with fewer captures are ordered first since both
|
|
203
|
-
# /posts/:post_id/comments/new and /posts/:post_id/comments/:id are equally
|
|
204
|
-
# long
|
|
205
|
-
#
|
|
206
|
-
# Routes with the same amount of captures and wildcards are orderd so that
|
|
207
|
-
# the longest path is considered first since posts/:id and posts/:id/edit
|
|
208
|
-
# can both match.
|
|
209
|
-
def ordered_routes
|
|
210
|
-
length = Proc.new { |r| [r.path.count("*"), r.path.count(":"), r.path.length * -1] }
|
|
211
|
-
routes.sort_by(&length)
|
|
212
|
-
end
|
|
213
|
-
end
|
|
214
|
-
end
|