jets 4.0.8 → 5.0.0.beta1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +5 -1
- data/CHANGELOG.md +57 -0
- data/Gemfile +1 -5
- data/LICENSE.txt +1 -1
- data/Rakefile +3 -3
- 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/{lib/jets → engines}/internal/app/functions/jets/base_path.rb +2 -1
- data/{lib/jets → engines}/internal/app/functions/jets/base_path_mapping.rb +26 -6
- data/engines/internal/app/jobs/jets/preheat_job.rb +67 -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 +14 -11
- 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 -198
- 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_services/stack_status.rb +1 -1
- data/lib/jets/backtrace_cleaner.rb +27 -0
- data/lib/jets/booter.rb +29 -176
- data/lib/jets/builders/code_builder.rb +45 -117
- data/lib/jets/builders/code_size.rb +1 -0
- data/lib/jets/builders/gem_replacer.rb +5 -6
- data/lib/jets/builders/handler_generator.rb +34 -14
- 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 +17 -6
- 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} +10 -20
- data/lib/jets/cfn/{builders/api_gateway_builder.rb → builder/api/gateway.rb} +14 -37
- 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/{builders → builder}/interface.rb +45 -51
- 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/{builders/parent_builder.rb → builder/parent.rb} +54 -54
- 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} +4 -3
- data/lib/jets/cfn/{builders → builder}/util/source.rb +1 -1
- data/lib/jets/{commands/build.rb → cfn/builder.rb} +50 -78
- data/lib/jets/cfn/deployment.rb +45 -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} +3 -3
- 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 +1 -1
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/logical_id.rb +1 -1
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/change/base.rb +4 -2
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/change/media_types.rb +2 -2
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/change/page.rb +5 -5
- 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 +21 -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 +12 -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/{resource → cfn/resource}/iam/base_role_definition.rb +15 -15
- 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/{resource → cfn/resource}/iam/policy.rb +8 -8
- 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 +4 -5
- 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 +25 -18
- data/lib/jets/cfn/template.rb +89 -0
- data/lib/jets/cfn/upload.rb +26 -23
- data/lib/jets/cli.rb +28 -210
- data/lib/jets/command/actions.rb +49 -0
- data/lib/jets/command/api_helpers.rb +41 -0
- data/lib/jets/command/aws_helpers.rb +26 -0
- data/lib/jets/command/base.rb +204 -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/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 +37 -0
- data/lib/jets/command/help/rollback.md +5 -0
- data/lib/jets/command/help/routes.md +15 -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.rb +133 -0
- data/lib/jets/commands/application/application_command.rb +40 -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 +4 -4
- 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 +1 -1
- 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 +155 -0
- data/lib/jets/commands/{deploy.rb → deploy/deploy_command.rb} +28 -47
- 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 +72 -0
- data/lib/jets/commands/rollback/rollback_command.rb +41 -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 +9 -0
- data/lib/jets/commands/{url.rb → url/url_command.rb} +37 -14
- 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} +40 -15
- 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 -24
- 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 +136 -51
- 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 +2 -2
- data/lib/jets/dotenv.rb +2 -1
- 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/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/{generator/templates/active_job/job/templates/job.rb.tt → generators/job/templates/event_types/scheduled.rb.tt} +3 -3
- data/lib/jets/generators/job/templates/event_types/sns.rb.tt +9 -0
- data/lib/jets/generators/job/templates/event_types/sqs.rb.tt +9 -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 +143 -0
- data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/.gitignore +2 -1
- data/lib/jets/generators/overrides/app/templates/Gemfile.tt +25 -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 +19 -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/info.rb +116 -0
- data/lib/jets/initializable.rb +95 -0
- data/lib/jets/job/base.rb +3 -2
- data/lib/jets/job/dsl/dynamodb_event.rb +19 -9
- 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 +5 -5
- 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 +1 -1
- data/lib/jets/job/dsl/sns_event.rb +6 -6
- data/lib/jets/job/dsl/sqs_event.rb +11 -11
- 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 +64 -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/request/source.rb +1 -2
- data/lib/jets/mega/request.rb +4 -4
- data/lib/jets/names.rb +31 -15
- 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 +12 -25
- 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 +135 -16
- 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 -106
- data/lib/jets/router/route_set.rb +214 -0
- data/lib/jets/router/scope.rb +204 -69
- data/lib/jets/router/state.rb +36 -16
- data/lib/jets/router/util.rb +1 -31
- data/lib/jets/router.rb +64 -162
- 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 +2 -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 -20
- data/lib/jets/stack/main/dsl/sqs.rb +2 -2
- data/lib/jets/stack/output/lookup.rb +1 -1
- 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/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/version.rb +1 -1
- data/lib/jets.rb +7 -15
- metadata +427 -337
- data/bin/release +0 -9
- data/lib/jets/application/defaults.rb +0 -228
- 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_resources_builder.rb +0 -44
- data/lib/jets/cfn/builders/base_child_builder.rb +0 -88
- 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/job_builder.rb +0 -14
- data/lib/jets/cfn/builders/page_builder.rb +0 -80
- 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 -184
- data/lib/jets/commands/clean.rb +0 -19
- data/lib/jets/commands/configure.rb +0 -51
- data/lib/jets/commands/console.rb +0 -18
- 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/routes.md +0 -16
- 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 -169
- 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 -72
- 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/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/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/helpers/jets/mailers_helper.rb +0 -9
- data/lib/jets/internal/app/jobs/jets/preheat_job.rb +0 -57
- 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/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/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/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/gems/check.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/runner.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,134 +0,0 @@
|
|
1
|
-
# Thanks: Rails dbconsole_command.rb
|
2
|
-
module Jets::Commands
|
3
|
-
class Dbconsole
|
4
|
-
extend Memoist
|
5
|
-
|
6
|
-
def self.start(*args)
|
7
|
-
new(*args).start
|
8
|
-
end
|
9
|
-
|
10
|
-
def initialize(options = {})
|
11
|
-
defaults = {"include_password" => true}
|
12
|
-
@options = defaults.merge(options)
|
13
|
-
end
|
14
|
-
|
15
|
-
def start
|
16
|
-
ENV["RAILS_ENV"] ||= @options[:environment] || environment
|
17
|
-
|
18
|
-
case config["adapter"]
|
19
|
-
when /^(jdbc)?mysql/
|
20
|
-
args = {
|
21
|
-
"host" => "--host",
|
22
|
-
"port" => "--port",
|
23
|
-
"socket" => "--socket",
|
24
|
-
"username" => "--user",
|
25
|
-
"encoding" => "--default-character-set",
|
26
|
-
"sslca" => "--ssl-ca",
|
27
|
-
"sslcert" => "--ssl-cert",
|
28
|
-
"sslcapath" => "--ssl-capath",
|
29
|
-
"sslcipher" => "--ssl-cipher",
|
30
|
-
"sslkey" => "--ssl-key"
|
31
|
-
}.map { |opt, arg| "#{arg}=#{config[opt]}" if config[opt] }.compact
|
32
|
-
|
33
|
-
if config["password"] && @options["include_password"]
|
34
|
-
args << "--password=#{config['password']}"
|
35
|
-
elsif config["password"] && !config["password"].to_s.empty?
|
36
|
-
args << "-p"
|
37
|
-
end
|
38
|
-
|
39
|
-
args << config["database"]
|
40
|
-
|
41
|
-
find_cmd_and_exec(["mysql", "mysql5"], *args)
|
42
|
-
|
43
|
-
when /^postgres|^postgis/
|
44
|
-
ENV["PGUSER"] = config["username"] if config["username"]
|
45
|
-
ENV["PGHOST"] = config["host"] if config["host"]
|
46
|
-
ENV["PGPORT"] = config["port"].to_s if config["port"]
|
47
|
-
ENV["PGPASSWORD"] = config["password"].to_s if config["password"] && @options["include_password"]
|
48
|
-
find_cmd_and_exec("psql", config["database"])
|
49
|
-
|
50
|
-
when "sqlite3"
|
51
|
-
args = []
|
52
|
-
|
53
|
-
args << "-#{@options['mode']}" if @options["mode"]
|
54
|
-
args << "-header" if @options["header"]
|
55
|
-
args << File.expand_path(config["database"], Jets.root)
|
56
|
-
|
57
|
-
find_cmd_and_exec("sqlite3", *args)
|
58
|
-
|
59
|
-
when "oracle", "oracle_enhanced"
|
60
|
-
logon = ""
|
61
|
-
|
62
|
-
if config["username"]
|
63
|
-
logon = config["username"]
|
64
|
-
logon << "/#{config['password']}" if config["password"] && @options["include_password"]
|
65
|
-
logon << "@#{config['database']}" if config["database"]
|
66
|
-
end
|
67
|
-
|
68
|
-
find_cmd_and_exec("sqlplus", logon)
|
69
|
-
|
70
|
-
when "sqlserver"
|
71
|
-
args = []
|
72
|
-
|
73
|
-
args += ["-D", "#{config['database']}"] if config["database"]
|
74
|
-
args += ["-U", "#{config['username']}"] if config["username"]
|
75
|
-
args += ["-P", "#{config['password']}"] if config["password"]
|
76
|
-
|
77
|
-
if config["host"]
|
78
|
-
host_arg = "#{config['host']}"
|
79
|
-
host_arg << ":#{config['port']}" if config["port"]
|
80
|
-
args += ["-S", host_arg]
|
81
|
-
end
|
82
|
-
|
83
|
-
find_cmd_and_exec("sqsh", *args)
|
84
|
-
|
85
|
-
else
|
86
|
-
abort "Unknown command-line client for #{config['database']}."
|
87
|
-
end
|
88
|
-
end
|
89
|
-
|
90
|
-
def config
|
91
|
-
configs = configurations.configs_for(env_name: environment)
|
92
|
-
if configs.blank?
|
93
|
-
raise ActiveRecord::AdapterNotSpecified, "'#{environment}' database is not configured. Available configuration: #{configurations.inspect}"
|
94
|
-
else
|
95
|
-
configs.first.configuration_hash.dup.stringify_keys!
|
96
|
-
end
|
97
|
-
end
|
98
|
-
memoize :config
|
99
|
-
|
100
|
-
def environment
|
101
|
-
Jets.env.to_s
|
102
|
-
end
|
103
|
-
|
104
|
-
private
|
105
|
-
def configurations # :doc:
|
106
|
-
db_config = Jets.application.config.database
|
107
|
-
ActiveRecord::Base.configurations = db_config
|
108
|
-
ActiveRecord::Base.configurations
|
109
|
-
end
|
110
|
-
|
111
|
-
def find_cmd_and_exec(commands, *args) # :doc:
|
112
|
-
commands = Array(commands)
|
113
|
-
|
114
|
-
dirs_on_path = ENV["PATH"].to_s.split(File::PATH_SEPARATOR)
|
115
|
-
unless (ext = RbConfig::CONFIG["EXEEXT"]).empty?
|
116
|
-
commands = commands.map { |cmd| "#{cmd}#{ext}" }
|
117
|
-
end
|
118
|
-
|
119
|
-
full_path_command = nil
|
120
|
-
found = commands.detect do |cmd|
|
121
|
-
dirs_on_path.detect do |path|
|
122
|
-
full_path_command = File.join(path, cmd)
|
123
|
-
File.file?(full_path_command) && File.executable?(full_path_command)
|
124
|
-
end
|
125
|
-
end
|
126
|
-
|
127
|
-
if found
|
128
|
-
exec full_path_command, *args
|
129
|
-
else
|
130
|
-
abort("Couldn't find database client: #{commands.join(', ')}. Check your $PATH and try again.")
|
131
|
-
end
|
132
|
-
end
|
133
|
-
end
|
134
|
-
end
|
data/lib/jets/commands/delete.rb
DELETED
@@ -1,136 +0,0 @@
|
|
1
|
-
class Jets::Commands::Delete
|
2
|
-
include Jets::AwsServices
|
3
|
-
|
4
|
-
def initialize(options)
|
5
|
-
@options = options
|
6
|
-
end
|
7
|
-
|
8
|
-
def run
|
9
|
-
puts("Deleting project...")
|
10
|
-
return if @options[:noop]
|
11
|
-
|
12
|
-
are_you_sure?
|
13
|
-
|
14
|
-
confirm_project_exists
|
15
|
-
|
16
|
-
# Must first remove all objects from s3 bucket in order to delete stack
|
17
|
-
puts "First, deleting objects in s3 bucket #{s3_bucket_name}" if s3_bucket_name
|
18
|
-
empty_s3_bucket
|
19
|
-
|
20
|
-
stack_in_progress?(parent_stack_name)
|
21
|
-
|
22
|
-
cfn.delete_stack(stack_name: parent_stack_name)
|
23
|
-
puts "Deleting #{Jets.config.project_namespace.color(:green)}..."
|
24
|
-
|
25
|
-
wait_for_stack if @options[:wait]
|
26
|
-
|
27
|
-
delete_logs
|
28
|
-
|
29
|
-
puts "Project #{Jets.config.project_namespace.color(:green)} deleted!"
|
30
|
-
end
|
31
|
-
|
32
|
-
def wait_for_stack
|
33
|
-
status = Jets::Cfn::Status.new(@options)
|
34
|
-
start_time = Time.now
|
35
|
-
status.wait
|
36
|
-
took = Time.now - start_time
|
37
|
-
puts "Time took for deletion: #{status.pretty_time(took).color(:green)}."
|
38
|
-
end
|
39
|
-
|
40
|
-
def delete_logs
|
41
|
-
puts "Deleting CloudWatch logs"
|
42
|
-
log = Jets::Commands::Clean::Log.new(mute: true, yes: true)
|
43
|
-
log.clean
|
44
|
-
end
|
45
|
-
|
46
|
-
def confirm_project_exists
|
47
|
-
cfn.describe_stacks(stack_name: parent_stack_name)
|
48
|
-
end
|
49
|
-
|
50
|
-
def empty_s3_bucket
|
51
|
-
return unless s3_bucket_name # Happens when minimal stack fails to build
|
52
|
-
return unless bucket_exists?(s3_bucket_name)
|
53
|
-
|
54
|
-
resp = s3.list_objects(bucket: s3_bucket_name)
|
55
|
-
if resp.contents.size > 0
|
56
|
-
# IE: objects = [{key: "objectkey1"}, {key: "objectkey2"}]
|
57
|
-
objects = resp.contents.map { |item| {key: item.key} }
|
58
|
-
s3.delete_objects(
|
59
|
-
bucket: s3_bucket_name,
|
60
|
-
delete: {
|
61
|
-
objects: objects,
|
62
|
-
quiet: false,
|
63
|
-
}
|
64
|
-
)
|
65
|
-
empty_s3_bucket # keep deleting objects until bucket is empty
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
def s3_bucket_name
|
70
|
-
return @s3_bucket_name if defined?(@s3_bucket_name)
|
71
|
-
|
72
|
-
resp = cfn.describe_stacks(stack_name: parent_stack_name)
|
73
|
-
outputs = resp.stacks[0].outputs
|
74
|
-
if outputs.empty?
|
75
|
-
@s3_bucket_name = false
|
76
|
-
else
|
77
|
-
@s3_bucket_name = outputs.find {|o| o.output_key == 'S3Bucket'}.output_value
|
78
|
-
end
|
79
|
-
end
|
80
|
-
|
81
|
-
# Thanks: https://docs.aws.amazon.com/sdk-for-ruby/v3/developer-guide/s3-example-does-bucket-exist.html
|
82
|
-
def bucket_exists?(bucket_name)
|
83
|
-
bucket_exists = false
|
84
|
-
begin
|
85
|
-
resp = s3.head_bucket(bucket: bucket_name, use_accelerate_endpoint: false)
|
86
|
-
bucket_exists = true
|
87
|
-
rescue
|
88
|
-
end
|
89
|
-
bucket_exists
|
90
|
-
end
|
91
|
-
|
92
|
-
def parent_stack_name
|
93
|
-
Jets::Names.parent_stack_name
|
94
|
-
end
|
95
|
-
|
96
|
-
def are_you_sure?
|
97
|
-
if @options[:yes]
|
98
|
-
sure = 'y'
|
99
|
-
else
|
100
|
-
puts "Are you sure you want to want to delete the #{Jets.config.project_namespace.color(:green)} project? (y/N)"
|
101
|
-
sure = $stdin.gets
|
102
|
-
end
|
103
|
-
|
104
|
-
unless sure =~ /^y/
|
105
|
-
puts "Phew! Jets #{Jets.config.project_namespace.color(:green)} project was not deleted."
|
106
|
-
exit 0
|
107
|
-
end
|
108
|
-
end
|
109
|
-
|
110
|
-
# All CloudFormation states listed here: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-describing-stacks.html
|
111
|
-
#
|
112
|
-
# Returns resp so we can use it to grab data about the stack without calling api again.
|
113
|
-
def check_deleteable_status
|
114
|
-
return true if !stack_exists?(@parent_stack_name)
|
115
|
-
|
116
|
-
# Assumes stack exists
|
117
|
-
resp = cfn.describe_stacks(stack_name: @parent_stack_name)
|
118
|
-
status = resp.stacks[0].stack_status
|
119
|
-
|
120
|
-
return true if status == 'ROLLBACK_COMPLETE'
|
121
|
-
|
122
|
-
if status =~ /_IN_PROGRESS$/
|
123
|
-
puts "The '#{@parent_stack_name}' stack status is #{status}. " \
|
124
|
-
"It is not in an updateable status. Please wait until the stack is ready and try again.".color(:red)
|
125
|
-
exit 0
|
126
|
-
elsif resp.stacks[0].outputs.empty?
|
127
|
-
# This Happens when the miminal stack fails at the very beginning.
|
128
|
-
# There is no s3 bucket at all. User should delete the stack.
|
129
|
-
puts "The minimal stack failed to create. Please delete the stack first and try again. " \
|
130
|
-
"You can delete the CloudFormation stack or use the `jets delete` command"
|
131
|
-
exit 0
|
132
|
-
else
|
133
|
-
true
|
134
|
-
end
|
135
|
-
end
|
136
|
-
end
|
@@ -1,9 +0,0 @@
|
|
1
|
-
class Jets::Commands::Dynamodb::Migrate < Jets::Commands::Base
|
2
|
-
desc "down", "Runs migrations down"
|
3
|
-
# desc "migrate:down [path]", "Runs migrations down"
|
4
|
-
# long_desc Help.migrate
|
5
|
-
def down#(path)
|
6
|
-
# Migrate.new(path, options).run
|
7
|
-
puts "Jets::Commands::Dynamodb::Down ran"
|
8
|
-
end
|
9
|
-
end
|
@@ -1,36 +0,0 @@
|
|
1
|
-
begin
|
2
|
-
require "dynomite"
|
3
|
-
rescue LoadError # Commands::Base.eager_load
|
4
|
-
nil
|
5
|
-
end
|
6
|
-
|
7
|
-
class Jets::Commands::Dynamodb::Migrator
|
8
|
-
def initialize(path, options)
|
9
|
-
@path = path
|
10
|
-
@options = options
|
11
|
-
end
|
12
|
-
|
13
|
-
def run
|
14
|
-
puts "Running database migrations"
|
15
|
-
return if @options[:noop]
|
16
|
-
migrate
|
17
|
-
end
|
18
|
-
|
19
|
-
def migrate
|
20
|
-
path = "#{Jets.root}/#{@path}"
|
21
|
-
unless File.exist?(path)
|
22
|
-
puts "Unable to find the migration file: #{path}"
|
23
|
-
exit 1 unless Jets.env.test?
|
24
|
-
end
|
25
|
-
|
26
|
-
require path
|
27
|
-
migration_class = get_migration_class
|
28
|
-
migration_class.new.up
|
29
|
-
end
|
30
|
-
|
31
|
-
def get_migration_class
|
32
|
-
filename = File.basename(@path, '.rb')
|
33
|
-
filename = filename.sub(/\d+[-_]/, '') # strip leading timestsamp
|
34
|
-
filename.camelize.constantize
|
35
|
-
end
|
36
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
module Jets::Commands
|
2
|
-
class Dynamodb < Jets::Commands::Base
|
3
|
-
desc "migrate [path]", "Runs migrations"
|
4
|
-
long_desc Help.text('dynamodb:migrate')
|
5
|
-
def migrate(path)
|
6
|
-
Migrator.new(path, options).run
|
7
|
-
end
|
8
|
-
|
9
|
-
desc "generate [name]", "Creates a migration for a DynamoDB table"
|
10
|
-
long_desc Help.text('dynamodb:generate')
|
11
|
-
option :partition_key, default: "id:string:hash", desc: "table's partition key"
|
12
|
-
option :sort_key, default: nil, desc: "table's sort key"
|
13
|
-
option :table_name, desc: "override the the conventional table name"
|
14
|
-
option :table_action, desc: "create_table or update_table. Defaults to convention based on the name of the migration."
|
15
|
-
def generate(name)
|
16
|
-
Dynomite::Migration::Generator.new(name, options).generate
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
data/lib/jets/commands/gems.rb
DELETED
@@ -1,13 +0,0 @@
|
|
1
|
-
module Jets::Commands
|
2
|
-
class Gems < Jets::Commands::Base
|
3
|
-
desc "check", "Check if pre-built Lambda gems are available from the sources"
|
4
|
-
long_desc Help.text("gems:check")
|
5
|
-
option :verbose, type: :boolean, desc: "Verbose mode"
|
6
|
-
def check
|
7
|
-
check = Jets::Gems::Check.new(@options)
|
8
|
-
check.run! # exits early if missing gems found
|
9
|
-
# If reach here, means all gems are ok.
|
10
|
-
puts "Congrats! All gems are available in as pre-built Lambda gems 👍"
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
@@ -1,69 +0,0 @@
|
|
1
|
-
## Remote mode
|
2
|
-
|
3
|
-
Invoke the lambda function on AWS. The `jets call` command does a few extra things for your convenience:
|
4
|
-
|
5
|
-
It adds the function namespace to the function name. So, you pass in `posts_controller-index` and the Lambda function is `demo-dev-posts_controller-index`.
|
6
|
-
|
7
|
-
CLI Name | Lambda Function
|
8
|
-
--- | ---
|
9
|
-
posts_controller-index | demo-dev-posts_controller-index
|
10
|
-
|
11
|
-
The `jets call` command can also print out the last 4KB of the lambda logs with the `--show-logs` option. The logging output is directed to stderr and the response output from the lambda function itself is directed to stdout so you can safely pipe the results of the call command to other tools like `jq`.
|
12
|
-
|
13
|
-
For [controllers](http://rubyonjets.com/docs/controllers/), the event you pass at the CLI is automatically transformed into [Lambda Proxy](https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html) payload that contains the params as the `queryStringParameters`. For example:
|
14
|
-
|
15
|
-
{"test":1}
|
16
|
-
|
17
|
-
Gets changed to:
|
18
|
-
|
19
|
-
{"queryStringParameters":{"test":1}}
|
20
|
-
|
21
|
-
This spares you from assembling the event payload manually to the payload that Jets controllers normally receive. If you would like to disable this Lambda Proxy transformation then use the `--no-lambda-proxy` flag.
|
22
|
-
|
23
|
-
For [jobs](http://rubyonjets.com/docs/jobs/), the event is passed through untouched.
|
24
|
-
|
25
|
-
## Examples
|
26
|
-
|
27
|
-
jets call hard_job-drive '{"test":1}'
|
28
|
-
jets call hard_job-drive '{"test":1}' | jq .
|
29
|
-
jets call hard_job-drive file://event.json | jq . # load event with a file
|
30
|
-
jets call posts_controller-index # event payload is optional
|
31
|
-
jets call posts_controller-index '{"path":"/posts"}' --show-log | jq .
|
32
|
-
jets call posts_controller-index 'file://event.json' --show-log | jq .
|
33
|
-
|
34
|
-
The equivalent AWS Lambda CLI command:
|
35
|
-
|
36
|
-
aws lambda invoke --function-name demo-dev-hard_job-dig --payload '{"path":"/posts","test":1}' outfile.txt
|
37
|
-
cat outfile.txt | jq '.'
|
38
|
-
|
39
|
-
aws lambda invoke --function-name demo-dev-posts_controller-index --payload '{"queryStringParameters":{"path":"/posts",test":1}}' outfile.txt
|
40
|
-
cat outfile.txt | jq '.'
|
41
|
-
|
42
|
-
For convenience, you can also provide the function name with only dashes and `jets call` figures out what function you intend to call. Examples:
|
43
|
-
|
44
|
-
jets call posts-controller-index
|
45
|
-
jets call admin-related-pages-controller-index
|
46
|
-
|
47
|
-
Are the same as:
|
48
|
-
|
49
|
-
aws lambda invoke --function-name demo-dev-posts_controller-index
|
50
|
-
aws lambda invoke --function-name demo-dev-admin/related_pages_controller-index
|
51
|
-
|
52
|
-
Jets figures out what functions to call by evaluating the app code and finds if the controller and method exists. If you want to turn guess mode off and want to always explicitly provide the method name use the `--no-guess` option. The function name will then have to match the lambda function without the namespace. Example:
|
53
|
-
|
54
|
-
jets call admin-related_pages_controller-index --no-guess
|
55
|
-
|
56
|
-
If you want to call a function which runs too long time, you can set `read_timeout`.
|
57
|
-
|
58
|
-
jets call some_long_job-index --read_timeout 900
|
59
|
-
|
60
|
-
And you can set `retry_limit`. If you don't want to retry you can set 0.
|
61
|
-
|
62
|
-
jets call some_long_job-index --retry_limit 0
|
63
|
-
|
64
|
-
## Local mode
|
65
|
-
|
66
|
-
Instead of calling AWS lambda remote, you can also have `jets call` use the code directly on your machine. To enable this, use the `--local` flag. Example:
|
67
|
-
|
68
|
-
jets call hard_job-drive --local
|
69
|
-
|
@@ -1,52 +0,0 @@
|
|
1
|
-
Generates a migration file which can be used to create a DynamoDB table. To run the migration file use `jets dynamodb:migrate`.
|
2
|
-
|
3
|
-
The table name will have a namespace. For example, if your project is called `demo`, the environment is `development`, and you create a table called `posts`. The DynamoDB full table name will be `demo-dev-posts`. You can change this behavior by editing your `config/dynamodb.yml` and adjusting the `table_namespace` value.
|
4
|
-
|
5
|
-
DynamoDB tables support certain types of attribute types. The CLI will parse the `--partition-key` option and use the second part of the option to map it to the underlying DynamoDB type using this mapping.
|
6
|
-
|
7
|
-
```ruby
|
8
|
-
ATTRIBUTE_TYPE_MAP = {
|
9
|
-
'string' => 'S',
|
10
|
-
'number' => 'N',
|
11
|
-
'binary' => 'B',
|
12
|
-
's' => 'S',
|
13
|
-
'n' => 'N',
|
14
|
-
'b' => 'B',
|
15
|
-
}
|
16
|
-
```
|
17
|
-
|
18
|
-
For example, `--partition-key id:string` maps 'string' to 's'. More info on DynamoDB types is available at the ruby aws-sdk docs: [Aws::DynamoDB::Types::AttributeDefinition](https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/DynamoDB/Types/AttributeDefinition.html)
|
19
|
-
|
20
|
-
## Examples
|
21
|
-
|
22
|
-
$ jets dynamodb:generate create_posts --partition-key id # default attribute type is string
|
23
|
-
$ jets dynamodb:generate create_posts --partition-key id:number # attribute type will be number
|
24
|
-
$ jets dynamodb:generate create_comments --partition-key post_id:string --sort-key created_at:string
|
25
|
-
|
26
|
-
## Running migrations
|
27
|
-
|
28
|
-
$ jets dynamodb:migrate path/to/migration
|
29
|
-
$ jets dynamodb:migrate dynamodb/migrate/20171112162404-create_articles_migration.rb
|
30
|
-
|
31
|
-
To add global secondary indexes:
|
32
|
-
|
33
|
-
$ jets dynamodb:generate update_comments --partition-key user_id:string --sort-key created_at:string
|
34
|
-
|
35
|
-
To run:
|
36
|
-
|
37
|
-
$ jets dynamodb:migrate dynamodb/migrate/20171112161530-create_posts_migration.rb
|
38
|
-
|
39
|
-
## Conventions
|
40
|
-
|
41
|
-
A create_table or update_table migration file is generated based name you provide. If `update` is included in the name then an update_table migration table is generated. If `create` is included in the name then a create_table migration table is generated.
|
42
|
-
|
43
|
-
The table_name is also inferred from the migration name you provide. Examples:
|
44
|
-
|
45
|
-
$ jets dynamodb:generate create_posts # table_name: posts
|
46
|
-
$ jets dynamodb:generate update_comments # table_name: comments
|
47
|
-
|
48
|
-
You can override both of these conventions:
|
49
|
-
|
50
|
-
$ jets dynamodb:generate create_my_posts --table-name posts
|
51
|
-
$ jets dynamodb:generate my_posts --table-action create_table --table-name posts
|
52
|
-
$ jets dynamodb:generate my_posts --table-action update_table --table-name posts
|
@@ -1,16 +0,0 @@
|
|
1
|
-
## Example
|
2
|
-
|
3
|
-
$ jets routes
|
4
|
-
+--------+----------------+--------------------+
|
5
|
-
| Verb | Path | Controller#action |
|
6
|
-
+--------+----------------+--------------------+
|
7
|
-
| GET | posts | posts#index |
|
8
|
-
| GET | posts/new | posts#new |
|
9
|
-
| GET | posts/:id | posts#show |
|
10
|
-
| POST | posts | posts#create |
|
11
|
-
| GET | posts/:id/edit | posts#edit |
|
12
|
-
| PUT | posts/:id | posts#update |
|
13
|
-
| DELETE | posts/:id | posts#delete |
|
14
|
-
| ANY | *catchall | jets/public#show |
|
15
|
-
+--------+----------------+--------------------+
|
16
|
-
$
|
data/lib/jets/commands/help.rb
DELETED
@@ -1,49 +0,0 @@
|
|
1
|
-
class Jets::Commands::Import
|
2
|
-
class Base < Sequence
|
3
|
-
# Ugly, but when the class_option is only defined in the Thor::Group class
|
4
|
-
# it doesnt show up with jets new help :(
|
5
|
-
# If anyone knows how to fix this let me know.
|
6
|
-
def self.cli_options
|
7
|
-
[
|
8
|
-
[:submodule, type: :boolean, default: false, desc: "Imports the project as a submodule"],
|
9
|
-
]
|
10
|
-
end
|
11
|
-
cli_options.each { |args| class_option(*args) }
|
12
|
-
|
13
|
-
# Since setup is public it will automatically run in the subclasses
|
14
|
-
def setup
|
15
|
-
start_message
|
16
|
-
create_rack_folder
|
17
|
-
configure_ruby
|
18
|
-
create_rackup_wrappers
|
19
|
-
end
|
20
|
-
|
21
|
-
private
|
22
|
-
def start_message
|
23
|
-
puts "Importing app into the rack folder..."
|
24
|
-
end
|
25
|
-
|
26
|
-
def create_rack_folder
|
27
|
-
repo? ? clone_project : copy_project
|
28
|
-
end
|
29
|
-
|
30
|
-
def configure_ruby
|
31
|
-
gsub_file 'rack/Gemfile', /^ruby(.*)/, '# ruby\1' # comment out ruby declaration
|
32
|
-
create_file "rack/.ruby-version", RUBY_VERSION, force: true
|
33
|
-
end
|
34
|
-
|
35
|
-
def create_rackup_wrappers
|
36
|
-
path = File.expand_path("../../builders/rackup_wrappers", File.dirname(__FILE__))
|
37
|
-
Dir.glob("#{path}/*").each do |p|
|
38
|
-
FileUtils.cp(p, "#{rack_folder}/bin/")
|
39
|
-
end
|
40
|
-
chmod "#{rack_folder}/bin/rackup", 0755
|
41
|
-
end
|
42
|
-
|
43
|
-
def bundle_install
|
44
|
-
Bundler.with_unbundled_env do
|
45
|
-
run "cd rack && bundle install"
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
@@ -1,35 +0,0 @@
|
|
1
|
-
class Jets::Commands::Import
|
2
|
-
class Cheatsheet
|
3
|
-
def self.create(rack_repo_url)
|
4
|
-
new(rack_repo_url).create
|
5
|
-
end
|
6
|
-
|
7
|
-
def initialize(rack_repo_url)
|
8
|
-
@rack_repo_url = rack_repo_url
|
9
|
-
end
|
10
|
-
|
11
|
-
def create
|
12
|
-
path = File.expand_path("./templates/", File.dirname(__FILE__)) + "/submodules-cheatsheet.md"
|
13
|
-
basename = File.basename(path)
|
14
|
-
dest = "#{Jets.root}/#{basename}"
|
15
|
-
cheatsheet = Jets::Erb.result(path, cheatsheet_vars)
|
16
|
-
FileUtils.mkdir_p(File.dirname(dest))
|
17
|
-
IO.write(dest, cheatsheet)
|
18
|
-
puts "Created #{basename} to help with using submodules."
|
19
|
-
end
|
20
|
-
|
21
|
-
def cheatsheet_vars
|
22
|
-
import_command = ARGV[0]
|
23
|
-
{
|
24
|
-
import_command: import_command,
|
25
|
-
rack_repo_url: @rack_repo_url,
|
26
|
-
jets_project_repo_url: jets_project_repo_url,
|
27
|
-
}
|
28
|
-
end
|
29
|
-
|
30
|
-
def jets_project_repo_url
|
31
|
-
# Thanks: https://stackoverflow.com/questions/4089430/how-can-i-determine-the-url-that-a-local-git-repository-was-originally-cloned-fr/4089452
|
32
|
-
`git config --get remote.origin.url`.strip rescue 'https://github.com/user/repo'
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
@@ -1,16 +0,0 @@
|
|
1
|
-
class Jets::Commands::Import
|
2
|
-
class Rack < Base
|
3
|
-
def install
|
4
|
-
bundle_install
|
5
|
-
end
|
6
|
-
|
7
|
-
def finish_message
|
8
|
-
puts <<~EOL
|
9
|
-
#{"="*30}
|
10
|
-
Congrats! The Rack project from #{@source} has been imported to the rack folder.
|
11
|
-
|
12
|
-
Note, generic rack projects will likely need some adjustments to take into account API Gateway stages and logging. For more info refer to [Mega Mode Considerations](http://rubyonjets.com//megamode-details/).
|
13
|
-
EOL
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|