jets 4.0.10 → 5.0.0
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/.gitignore +5 -1
- data/CHANGELOG.md +53 -0
- data/Gemfile +1 -5
- data/LICENSE.txt +1 -1
- data/README.md +20 -36
- 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 +5 -3
- 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 +27 -0
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/collision/variable_exception.rb +1 -1
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/collision.rb +1 -1
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes.rb +1 -1
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api.rb +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 +20 -19
- 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 +142 -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 +5 -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 +139 -0
- data/lib/jets/generators/overrides/app/templates/.env +10 -0
- data/lib/jets/{commands/templates/skeleton/.gitignore → generators/overrides/app/templates/.gitignore.tt} +2 -1
- data/lib/jets/generators/overrides/app/templates/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 +140 -17
- data/lib/jets/router/resources/options.rb +6 -4
- data/lib/jets/router/route/after_initialize.rb +64 -0
- data/lib/jets/router/route/as.rb +93 -0
- data/lib/jets/router/route/authorizer.rb +1 -0
- data/lib/jets/router/route/compat.rb +45 -0
- data/lib/jets/router/route/info.rb +74 -0
- data/lib/jets/router/route/node.rb +137 -0
- data/lib/jets/router/route/path.rb +93 -0
- data/lib/jets/router/route.rb +109 -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 -336
- data/bin/release +0 -9
- data/lib/jets/application/defaults.rb +0 -230
- 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 -104
- 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,6 +1,6 @@
|
|
|
1
1
|
# CloudFormation SQS Queue docs: https://amzn.to/2MVWk0j
|
|
2
|
-
module Jets::Resource::Sqs
|
|
3
|
-
class Queue < Jets::
|
|
2
|
+
module Jets::Cfn::Resource::Sqs
|
|
3
|
+
class Queue < Jets::Cfn::Base
|
|
4
4
|
def initialize(props={})
|
|
5
5
|
@props = props # associated_properties from dsl.rb
|
|
6
6
|
end
|
|
@@ -8,14 +8,14 @@ module Jets::Resource::Sqs
|
|
|
8
8
|
def definition
|
|
9
9
|
{
|
|
10
10
|
queue_logical_id => {
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
Type: "AWS::SQS::Queue",
|
|
12
|
+
Properties: @props,
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
def queue_logical_id
|
|
18
|
-
"{namespace}
|
|
18
|
+
"{namespace}SqsQueue"
|
|
19
19
|
end
|
|
20
20
|
end
|
|
21
21
|
end
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
class Jets::Resource
|
|
1
|
+
class Jets::Cfn::Resource
|
|
2
2
|
class Standardizer
|
|
3
|
+
include Jets::Util::Camelize
|
|
4
|
+
|
|
3
5
|
attr_reader :definition
|
|
4
6
|
def initialize(*definition)
|
|
5
7
|
@definition = definition.flatten
|
|
@@ -9,30 +11,27 @@ class Jets::Resource
|
|
|
9
11
|
camelize(standarize(@definition))
|
|
10
12
|
end
|
|
11
13
|
|
|
12
|
-
def camelize(attributes)
|
|
13
|
-
Jets::Camelizer.transform(attributes)
|
|
14
|
-
end
|
|
15
|
-
|
|
16
14
|
def standarize(definition)
|
|
15
|
+
definition = camelize(definition)
|
|
17
16
|
first, second, third, _ = definition
|
|
18
17
|
if definition.size == 1 && first.is_a?(Hash) # long form
|
|
19
18
|
first # pass through
|
|
20
19
|
elsif definition.size == 2 && second.is_a?(Hash) # medium form
|
|
21
20
|
logical_id, attributes = first, second
|
|
22
|
-
attributes.delete(:
|
|
21
|
+
attributes.delete(:Properties) if attributes[:Properties].nil? || attributes[:Properties].empty?
|
|
23
22
|
{ logical_id => attributes }
|
|
24
23
|
elsif definition.size == 2 && second.is_a?(String) # short form
|
|
25
24
|
logical_id, type = first, second
|
|
26
25
|
{ logical_id => {
|
|
27
|
-
|
|
26
|
+
Type: type
|
|
28
27
|
}}
|
|
29
28
|
elsif definition.size == 3 && (second.is_a?(String) || second.is_a?(NilClass))# short form
|
|
30
29
|
logical_id, type, properties = first, second, third
|
|
31
30
|
template = { logical_id => {
|
|
32
|
-
|
|
31
|
+
Type: type
|
|
33
32
|
}}
|
|
34
33
|
attributes = template.values.first
|
|
35
|
-
attributes[:
|
|
34
|
+
attributes[:Properties] = properties unless properties.empty?
|
|
36
35
|
template
|
|
37
36
|
else # Dont understand this form
|
|
38
37
|
raise "Invalid form provided. definition #{definition.inspect}"
|
data/lib/jets/cfn/ship.rb
CHANGED
|
@@ -48,10 +48,20 @@ module Jets::Cfn
|
|
|
48
48
|
clean_deploy_logs
|
|
49
49
|
show_api_endpoint
|
|
50
50
|
show_custom_domain
|
|
51
|
+
create_deployment_record
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def create_deployment_record
|
|
55
|
+
return if @options[:stack_type] == :minimal
|
|
56
|
+
resp = Jets::Cfn::Deployment.new(@options.merge(stack_name: @parent_stack_name)).create
|
|
57
|
+
if resp
|
|
58
|
+
version = resp["version"]
|
|
59
|
+
Jets::Cfn::Upload.new.upload_cfn_templates(version) if version
|
|
60
|
+
end
|
|
51
61
|
end
|
|
52
62
|
|
|
53
63
|
def set_resource_tags
|
|
54
|
-
@tags = Jets.config.resource_tags.map { |key, value| { key: key, value: value } }
|
|
64
|
+
@tags = Jets.config.cfn.build.resource_tags.map { |key, value| { key: key, value: value } }
|
|
55
65
|
end
|
|
56
66
|
|
|
57
67
|
def save_stack
|
|
@@ -83,11 +93,11 @@ module Jets::Cfn
|
|
|
83
93
|
capabilities: capabilities, # ["CAPABILITY_IAM", "CAPABILITY_NAMED_IAM"]
|
|
84
94
|
# disable_rollback: !@options[:rollback],
|
|
85
95
|
tags: @tags,
|
|
86
|
-
}.merge!(template.
|
|
96
|
+
}.merge!(template.stack_option)
|
|
87
97
|
end
|
|
88
98
|
|
|
89
99
|
def template
|
|
90
|
-
@template ||=
|
|
100
|
+
@template ||= Template.new(Jets::Names.parent_template_path, @options)
|
|
91
101
|
end
|
|
92
102
|
|
|
93
103
|
# check for /(_COMPLETE|_FAILED)$/ status
|
|
@@ -96,9 +106,7 @@ module Jets::Cfn
|
|
|
96
106
|
end
|
|
97
107
|
|
|
98
108
|
def save_apigw_state
|
|
99
|
-
|
|
100
|
-
state.save("pages", Jets::Cfn::Builders::PageBuilder.pages)
|
|
101
|
-
state.save("routes", Jets::Router.routes)
|
|
109
|
+
Jets::Router::State.save_apigw_state
|
|
102
110
|
end
|
|
103
111
|
|
|
104
112
|
def prewarm
|
|
@@ -120,7 +128,7 @@ module Jets::Cfn
|
|
|
120
128
|
|
|
121
129
|
def endpoint_unavailable?
|
|
122
130
|
return true unless @options[:stack_type] == :full # s3 bucket is available
|
|
123
|
-
return true if Jets::Router.
|
|
131
|
+
return true if Jets::Router.no_routes?
|
|
124
132
|
_, status = stack_status
|
|
125
133
|
return true if status.include?("ROLLBACK")
|
|
126
134
|
return true unless api_gateway
|
|
@@ -154,12 +162,12 @@ module Jets::Cfn
|
|
|
154
162
|
def show_custom_domain
|
|
155
163
|
return unless endpoint_available? && Jets.custom_domain? && Jets.config.domain.route53
|
|
156
164
|
|
|
157
|
-
domain_name = Jets::Resource::ApiGateway::DomainName.new
|
|
165
|
+
domain_name = Jets::Cfn::Resource::ApiGateway::DomainName.new
|
|
158
166
|
# Looks funny but its right.
|
|
159
|
-
# domain_name is a method on the Jets::Resource::ApiGateway::Domain instance
|
|
167
|
+
# domain_name is a method on the Jets::Cfn::Resource::ApiGateway::Domain instance
|
|
160
168
|
url = "https://#{domain_name.domain_name}"
|
|
161
169
|
puts "Custom Domain: #{url}"
|
|
162
|
-
puts "App Domain:
|
|
170
|
+
puts "App Domain: https://#{Jets.config.app.domain}" if Jets.config.app.domain
|
|
163
171
|
end
|
|
164
172
|
|
|
165
173
|
# All CloudFormation states listed here:
|
|
@@ -183,19 +191,12 @@ module Jets::Cfn
|
|
|
183
191
|
end
|
|
184
192
|
|
|
185
193
|
def capabilities
|
|
186
|
-
["CAPABILITY_IAM", "CAPABILITY_NAMED_IAM"]
|
|
187
|
-
# return @options[:capabilities] if @options[:capabilities]
|
|
188
|
-
# if @options[:iam]
|
|
189
|
-
# ["CAPABILITY_IAM", "CAPABILITY_NAMED_IAM"]
|
|
190
|
-
# end
|
|
194
|
+
["CAPABILITY_IAM", "CAPABILITY_NAMED_IAM"]
|
|
191
195
|
end
|
|
192
196
|
|
|
193
197
|
# Upload both code and child templates to s3
|
|
194
198
|
def upload_to_s3
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
uploader = Upload.new(@options[:s3_bucket])
|
|
198
|
-
uploader.upload
|
|
199
|
+
Upload.new.upload
|
|
199
200
|
end
|
|
200
201
|
end
|
|
201
202
|
end
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
module Jets::Cfn
|
|
2
|
+
class Template
|
|
3
|
+
include Jets::AwsServices
|
|
4
|
+
|
|
5
|
+
attr_reader :path
|
|
6
|
+
|
|
7
|
+
def initialize(path, options={})
|
|
8
|
+
@path = path
|
|
9
|
+
@options = options
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def body
|
|
13
|
+
@body ||= IO.read(path)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def url
|
|
17
|
+
@url ||= upload_file_to_s3
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def stack_option
|
|
21
|
+
if upload_to_s3?
|
|
22
|
+
from_s3
|
|
23
|
+
else
|
|
24
|
+
from_path
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
private
|
|
29
|
+
def upload_to_s3?
|
|
30
|
+
return false if @options[:stack_type] == :minimal # bucket not yet available
|
|
31
|
+
bucket_name.present?
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def bucket_name
|
|
35
|
+
Jets.s3_bucket
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def from_s3
|
|
39
|
+
{
|
|
40
|
+
template_url: url
|
|
41
|
+
}
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def from_path
|
|
45
|
+
{
|
|
46
|
+
template_body: body
|
|
47
|
+
}
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def upload_file_to_s3
|
|
51
|
+
obj = s3_resource.bucket(bucket_name).object(s3_key)
|
|
52
|
+
obj.upload_file(path)
|
|
53
|
+
|
|
54
|
+
"https://s3.amazonaws.com/#{bucket_name}/#{s3_key}"
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def s3_key
|
|
58
|
+
@s3_key ||= "jets/cfn-templates/#{File.basename(path)}"
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
class << self
|
|
62
|
+
# Caches reduce filesystem IO calls
|
|
63
|
+
@@cache = {}
|
|
64
|
+
def load_file(path)
|
|
65
|
+
if @@cache[path]
|
|
66
|
+
@@cache[path]
|
|
67
|
+
else
|
|
68
|
+
@@cache[path] = Jets::Util::Yamler.load_file(path).deep_symbolize_keys
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
# Jets::Cfn::Template.lookup_logical_id(template_name, key)
|
|
73
|
+
# Jets::Cfn::Template.lookup_logical_id("api-resources", "UpApiResource")
|
|
74
|
+
def lookup_logical_id(template_name, key)
|
|
75
|
+
expr = "#{Jets::Names.templates_folder}/#{template_name}-*"
|
|
76
|
+
template_paths = Dir.glob(expr).sort.to_a
|
|
77
|
+
found_template = template_paths.detect do |path|
|
|
78
|
+
next unless File.file?(path)
|
|
79
|
+
|
|
80
|
+
template = Jets::Cfn::Template.load_file(path)
|
|
81
|
+
template[:Outputs].keys.include?(key.to_sym)
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
name = File.basename(found_template).sub(/\.yml$/,'')
|
|
85
|
+
name.underscore.camelize # IE: ApiResources1
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
end
|
data/lib/jets/cfn/upload.rb
CHANGED
|
@@ -1,17 +1,11 @@
|
|
|
1
|
-
require '
|
|
1
|
+
require 'active_support/number_helper'
|
|
2
2
|
require 'digest'
|
|
3
3
|
require 'rack/mime'
|
|
4
4
|
|
|
5
5
|
module Jets::Cfn
|
|
6
6
|
class Upload
|
|
7
7
|
include Jets::AwsServices
|
|
8
|
-
include
|
|
9
|
-
|
|
10
|
-
attr_reader :bucket_name
|
|
11
|
-
|
|
12
|
-
def initialize(bucket_name)
|
|
13
|
-
@bucket_name = bucket_name
|
|
14
|
-
end
|
|
8
|
+
include ActiveSupport::NumberHelper # number_to_human_size
|
|
15
9
|
|
|
16
10
|
def upload
|
|
17
11
|
upload_cfn_templates
|
|
@@ -19,14 +13,25 @@ module Jets::Cfn
|
|
|
19
13
|
upload_assets
|
|
20
14
|
end
|
|
21
15
|
|
|
22
|
-
def
|
|
23
|
-
|
|
24
|
-
|
|
16
|
+
def bucket_name
|
|
17
|
+
Jets.s3_bucket
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def upload_cfn_templates(version=nil)
|
|
21
|
+
puts "Uploading CloudFormation templates to S3." unless version # hide message when version is passed in
|
|
22
|
+
expression = "#{Jets::Names.templates_folder}/*"
|
|
23
|
+
if version # outside of each loop to avoid repeating
|
|
24
|
+
version = "versions/#{version}"
|
|
25
|
+
else
|
|
26
|
+
checksum = Jets::Builders::Md5.checksums["stage/code"]
|
|
27
|
+
version = "shas/#{checksum}"
|
|
28
|
+
end
|
|
29
|
+
checksum = Jets::Builders::Md5.checksums["stage/code"]
|
|
25
30
|
Dir.glob(expression).each do |path|
|
|
26
31
|
next unless File.file?(path)
|
|
27
|
-
|
|
28
|
-
key = "jets/cfn-templates/#{File.basename(path)}"
|
|
32
|
+
key = ["jets/cfn-templates", version, File.basename(path)].compact.join('/')
|
|
29
33
|
obj = s3_resource.bucket(bucket_name).object(key)
|
|
34
|
+
puts "Uploading #{path} to s3://#{bucket_name}/#{key}".color(:green) if ENV['JETS_DEBUG']
|
|
30
35
|
obj.upload_file(path)
|
|
31
36
|
end
|
|
32
37
|
end
|
|
@@ -60,17 +65,11 @@ module Jets::Cfn
|
|
|
60
65
|
|
|
61
66
|
def upload_public_assets
|
|
62
67
|
public_folders = %w[public]
|
|
63
|
-
public_folders = add_rack_assets(public_folders)
|
|
64
68
|
public_folders.each do |folder|
|
|
65
69
|
upload_asset_folder(folder)
|
|
66
70
|
end
|
|
67
71
|
end
|
|
68
72
|
|
|
69
|
-
def add_rack_assets(public_folders)
|
|
70
|
-
return public_folders unless Jets.rack?
|
|
71
|
-
public_folders + %w[rack/public]
|
|
72
|
-
end
|
|
73
|
-
|
|
74
73
|
def upload_asset_folder(folder)
|
|
75
74
|
expression = "#{Jets.root}/#{folder}/**/*"
|
|
76
75
|
group_size = 10
|
|
@@ -88,12 +87,17 @@ module Jets::Cfn
|
|
|
88
87
|
end
|
|
89
88
|
|
|
90
89
|
def upload_to_s3(full_path)
|
|
91
|
-
|
|
90
|
+
if identical_on_s3?(full_path) && !ENV['JETS_ASSET_UPLOAD_FORCE']
|
|
91
|
+
puts "Asset is identical on s3: #{full_path}" if ENV['JETS_DEBUG_ASSETS']
|
|
92
|
+
return
|
|
93
|
+
end
|
|
92
94
|
|
|
93
95
|
key = s3_key(full_path)
|
|
94
96
|
obj = s3_resource.bucket(bucket_name).object(key)
|
|
95
97
|
content_type = content_type_headers(full_path)
|
|
96
|
-
|
|
98
|
+
if ENV['JETS_DEBUG_ASSETS']
|
|
99
|
+
puts "Uploading and setting content type for s3://#{bucket_name}/#{key} content_type #{content_type[:content_type].inspect}"
|
|
100
|
+
end
|
|
97
101
|
obj.upload_file(full_path, { acl: "public-read", cache_control: cache_control }.merge(content_type))
|
|
98
102
|
end
|
|
99
103
|
|
|
@@ -152,6 +156,5 @@ module Jets::Cfn
|
|
|
152
156
|
"#{minutes.to_i}m #{seconds.to_i}s"
|
|
153
157
|
end
|
|
154
158
|
end
|
|
155
|
-
|
|
156
159
|
end
|
|
157
|
-
end
|
|
160
|
+
end
|
data/lib/jets/cli.rb
CHANGED
|
@@ -1,215 +1,33 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
if version_requested?
|
|
20
|
-
puts Jets.version
|
|
21
|
-
return
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
# Need to boot jets at this point for commands like: jets routes, deploy, console, etc to work
|
|
25
|
-
boot_jets
|
|
26
|
-
command_class = lookup(full_command)
|
|
27
|
-
if command_class
|
|
28
|
-
command_class.perform(full_command, thor_args)
|
|
29
|
-
else
|
|
30
|
-
main_help
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
# The commands new and help do not call Jets.boot. Main reason is that Jets.boot should be run in a Jets project.
|
|
35
|
-
#
|
|
36
|
-
# * jets new - need to generate a project outside a project folder.
|
|
37
|
-
# * jets help - don't need to be in a project folder general help.
|
|
38
|
-
#
|
|
39
|
-
# When you are inside a project folder though, more help commands are available and displayed.
|
|
40
|
-
#
|
|
41
|
-
def boot_jets
|
|
42
|
-
set_jets_env_from_cli_arg!
|
|
43
|
-
command = thor_args.first
|
|
44
|
-
unless %w[new help].include?(command)
|
|
45
|
-
Jets::Turbo.new.charge # handles Afterburner mode
|
|
46
|
-
Jets.boot
|
|
47
|
-
end
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
def version_requested?
|
|
51
|
-
# jets --version
|
|
52
|
-
# jets -v
|
|
53
|
-
version_flags = ["--version", "-v"]
|
|
54
|
-
@given_args.length == 1 && !(@given_args & version_flags).empty?
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
# Adjust JETS_ENV before boot_jets is called for the `jets deploy` command. Must do this early in the process
|
|
58
|
-
# before Jets.boot because because `bundler_require` is called as part of the bootup process. It sets the Jets.env
|
|
59
|
-
# to whatever the JETS_ENV is at the time to require the right bundler group.
|
|
60
|
-
#
|
|
61
|
-
# Defaults to development when not set.
|
|
62
|
-
def set_jets_env_from_cli_arg!
|
|
63
|
-
# Pretty tricky, we need to use the raw @given_args as thor_args eventually calls Commands::Base#eager_load!
|
|
64
|
-
# which uses Jets.env before we get a chance to override ENV['JETS_ENV']
|
|
65
|
-
command, env = @given_args[0..1]
|
|
66
|
-
|
|
67
|
-
return unless %w[deploy delete console c].include?(command)
|
|
68
|
-
env = nil if env&.starts_with?('-')
|
|
69
|
-
return unless env
|
|
70
|
-
ENV['JETS_ENV'] = env ? env : 'development'
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
# thor_args normalized the args Array to work with our Thor command
|
|
74
|
-
# subclasses.
|
|
75
|
-
# 1. The namespace is stripe
|
|
76
|
-
# 2. Help is shifted in front if a help flag is detected
|
|
77
|
-
def thor_args
|
|
78
|
-
args = @given_args.clone
|
|
79
|
-
|
|
80
|
-
# jets generate is a special command requires doesn't puts out the help menu automatically when
|
|
81
|
-
# `jets generate` is called without additional args. We'll take it over early and fix it here.
|
|
82
|
-
generate = full_command == "generate"
|
|
83
|
-
|
|
84
|
-
if generate && ((args.size == 1 || help_flags.include?(args.last)) || args.size == 2)
|
|
85
|
-
puts Jets::Generator.help
|
|
86
|
-
exit
|
|
87
|
-
end
|
|
88
|
-
|
|
89
|
-
help_args = args & help_flags
|
|
90
|
-
unless help_args.empty?
|
|
91
|
-
# Allow using help flags at the end of the command to trigger help menu
|
|
92
|
-
args -= help_flags # remove "help" and help flags from args
|
|
93
|
-
args[0] = meth # first command will always be the meth now since
|
|
94
|
-
# we removed the help flags
|
|
95
|
-
args.unshift("help")
|
|
96
|
-
args.compact!
|
|
97
|
-
return args
|
|
98
|
-
end
|
|
99
|
-
|
|
100
|
-
# reassigns the command without the namespace if reached here
|
|
101
|
-
args[0] = meth
|
|
102
|
-
args.compact
|
|
103
|
-
end
|
|
104
|
-
|
|
105
|
-
def meth
|
|
106
|
-
return nil unless full_command
|
|
107
|
-
|
|
108
|
-
if full_command.include?(':')
|
|
109
|
-
full_command.split(':').pop
|
|
110
|
-
else
|
|
111
|
-
full_command
|
|
112
|
-
end
|
|
113
|
-
end
|
|
114
|
-
|
|
115
|
-
ALIASES = {
|
|
116
|
-
"g" => "generate",
|
|
117
|
-
"c" => "console",
|
|
118
|
-
"s" => "server",
|
|
119
|
-
"db" => "dbconsole",
|
|
120
|
-
}
|
|
121
|
-
def full_command
|
|
122
|
-
# Removes any args that starts with -, those are option args.
|
|
123
|
-
# Also remove "help" flag.
|
|
124
|
-
args = @given_args.reject {|o| o =~ /^-/ } - help_flags
|
|
125
|
-
command = args[0] # first argument should always be the command
|
|
126
|
-
command = ALIASES[command] || command
|
|
127
|
-
Jets::Commands::Base.autocomplete(command)
|
|
128
|
-
end
|
|
129
|
-
|
|
130
|
-
# 1. look up Thor tasks
|
|
131
|
-
# 2. look up Rake tasks
|
|
132
|
-
# 3. help menu with all commands when both Thor and Rake tasks are not found
|
|
133
|
-
def lookup(full_command)
|
|
134
|
-
thor_task_found = Jets::Commands::Base.namespaced_commands.include?(full_command)
|
|
135
|
-
if thor_task_found
|
|
136
|
-
return Jets::Commands::Base.klass_from_namespace(namespace)
|
|
137
|
-
end
|
|
138
|
-
|
|
139
|
-
return unless jets_project?
|
|
140
|
-
|
|
141
|
-
Jets::Commands::RakeCommand if rake_task_found
|
|
142
|
-
end
|
|
143
|
-
|
|
144
|
-
def rake_task_found
|
|
145
|
-
return false unless full_command # can be nil for subcommands and would break jets help without this check
|
|
146
|
-
bracket_regex = /\[.*/ # matches everything after the first [
|
|
147
|
-
command = full_command.sub(bracket_regex, '') # remove everything after the first [
|
|
148
|
-
namespaced_commands = Jets::Commands::RakeCommand.namespaced_commands.map {|x| x.sub(bracket_regex, '') }
|
|
149
|
-
namespaced_commands.include?(command)
|
|
150
|
-
end
|
|
151
|
-
|
|
152
|
-
def jets_project?
|
|
153
|
-
File.exist?("config/application.rb")
|
|
154
|
-
end
|
|
155
|
-
|
|
156
|
-
# ["-h", "-?", "--help", "-D", "help"]
|
|
157
|
-
def help_flags
|
|
158
|
-
Thor::HELP_MAPPINGS + ["help"]
|
|
159
|
-
end
|
|
160
|
-
|
|
161
|
-
def namespace
|
|
162
|
-
return nil unless full_command
|
|
163
|
-
|
|
164
|
-
if full_command.include?(':')
|
|
165
|
-
words = full_command.split(':')
|
|
166
|
-
words.pop
|
|
167
|
-
words.join(':')
|
|
168
|
-
end
|
|
169
|
-
end
|
|
170
|
-
|
|
171
|
-
def main_help
|
|
172
|
-
shell = Thor::Shell::Basic.new
|
|
173
|
-
shell.say "Commands:"
|
|
174
|
-
shell.print_table(thor_list, :indent => 2, :truncate => true)
|
|
175
|
-
|
|
176
|
-
if jets_project? && !rake_list.empty?
|
|
177
|
-
shell.say "\nCommands via rake:"
|
|
178
|
-
shell.print_table(rake_list, :indent => 2, :truncate => true)
|
|
179
|
-
end
|
|
180
|
-
|
|
181
|
-
shell.say "\n"
|
|
182
|
-
shell.say main_help_body
|
|
183
|
-
end
|
|
184
|
-
|
|
185
|
-
def thor_list
|
|
186
|
-
Jets::Commands::Base.help_list(show_all_tasks)
|
|
187
|
-
end
|
|
188
|
-
|
|
189
|
-
def rake_list
|
|
190
|
-
list = Jets::Commands::RakeCommand.formatted_rake_tasks(show_all_tasks)
|
|
191
|
-
list.map do |array|
|
|
192
|
-
array[0] = "jets #{array[0]}"
|
|
193
|
-
array
|
|
194
|
-
end
|
|
195
|
-
end
|
|
196
|
-
|
|
197
|
-
def show_all_tasks
|
|
198
|
-
@given_args.include?("--all") || @given_args.include?("-A")
|
|
199
|
-
end
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "jets/app_loader"
|
|
4
|
+
|
|
5
|
+
# If we are inside a Jets application this method performs an exec and thus
|
|
6
|
+
# the rest of this script is not run.
|
|
7
|
+
# exec_app either runs bin/jets or an inline version of it.
|
|
8
|
+
Jets::AppLoader.exec_app
|
|
9
|
+
|
|
10
|
+
# Allow running jets with local source code when bin/jets does not exist
|
|
11
|
+
# Useful for development: jets build
|
|
12
|
+
# Also allows jets to work without a bin/jets file in the project.
|
|
13
|
+
if File.exist?("config/application.rb")
|
|
14
|
+
APP_PATH = File.expand_path("config/application", Dir.pwd)
|
|
15
|
+
require "jets"
|
|
16
|
+
require "jets/commands"
|
|
17
|
+
return
|
|
18
|
+
end
|
|
200
19
|
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
Add -h to any of the commands for more help. Examples:
|
|
20
|
+
# The rest of the script runs if outside of Jets application. IE:
|
|
21
|
+
# jets new demo
|
|
204
22
|
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
jets deploy -h
|
|
208
|
-
jets status -h
|
|
209
|
-
jets dynamodb:create -h
|
|
210
|
-
jets db:create -h
|
|
23
|
+
require "jets/ruby_version_check"
|
|
24
|
+
Signal.trap("INT") { puts; exit(1) }
|
|
211
25
|
|
|
212
|
-
|
|
213
|
-
end
|
|
26
|
+
require "jets/command"
|
|
214
27
|
|
|
28
|
+
if ARGV.first == "plugin"
|
|
29
|
+
ARGV.shift
|
|
30
|
+
Jets::Command.invoke :plugin, ARGV
|
|
31
|
+
else
|
|
32
|
+
Jets::Command.invoke :application, ARGV
|
|
215
33
|
end
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Jets
|
|
4
|
+
module Command
|
|
5
|
+
module Actions
|
|
6
|
+
# Change to the application's path if there is no <tt>config.ru</tt> file in current directory.
|
|
7
|
+
# This allows us to run <tt>jets server</tt> from other directories, but still get
|
|
8
|
+
# the main <tt>config.ru</tt> and properly set the <tt>tmp</tt> directory.
|
|
9
|
+
def set_application_directory!
|
|
10
|
+
Dir.chdir(File.expand_path("../..", APP_PATH)) unless File.exist?(File.expand_path("config.ru"))
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def require_application_and_environment!
|
|
14
|
+
Jets.boot
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def require_application!
|
|
18
|
+
require ENGINE_PATH if defined?(ENGINE_PATH)
|
|
19
|
+
|
|
20
|
+
if defined?(APP_PATH)
|
|
21
|
+
require APP_PATH
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
if defined?(ENGINE_PATH)
|
|
26
|
+
def load_tasks
|
|
27
|
+
Rake.application.init("jets")
|
|
28
|
+
Rake.application.load_rakefile
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def load_generators
|
|
32
|
+
engine = ::Jets::Engine.find(ENGINE_ROOT)
|
|
33
|
+
Jets::Generators.namespace = engine.railtie_namespace
|
|
34
|
+
engine.load_generators
|
|
35
|
+
end
|
|
36
|
+
else
|
|
37
|
+
def load_tasks
|
|
38
|
+
Jets.boot # hack
|
|
39
|
+
Jets.application.load_tasks
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def load_generators
|
|
43
|
+
Jets.application.load_generators
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
module Jets
|
|
2
|
+
module Command
|
|
3
|
+
module ApiHelpers # :nodoc:
|
|
4
|
+
extend ActiveSupport::Concern
|
|
5
|
+
|
|
6
|
+
include Jets::Api
|
|
7
|
+
|
|
8
|
+
def no_token_exit!
|
|
9
|
+
return if Jets::Api.token
|
|
10
|
+
puts "ERROR: This command requires Jets Api".color(:red)
|
|
11
|
+
puts "Please run `jets configure` first"
|
|
12
|
+
exit 1
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def check_for_error_message!(resp)
|
|
16
|
+
# IE: {"error":"Invalid token. Please check your token in ~/.jets/config.yml"}
|
|
17
|
+
if resp && resp["error"]
|
|
18
|
+
$stderr.puts "ERROR: #{resp["error"]}"
|
|
19
|
+
exit 1
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def paging_params
|
|
24
|
+
Jets.boot
|
|
25
|
+
params = {}
|
|
26
|
+
params[:page] = @options[:page] if @options[:page]
|
|
27
|
+
params[:order] = @options[:order] if @options[:order]
|
|
28
|
+
params
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
module ClassMethods
|
|
32
|
+
def paging_options(defaults={})
|
|
33
|
+
Proc.new do
|
|
34
|
+
option :page, aliases: :p, type: :numeric, desc: "Page number"
|
|
35
|
+
option :order, default: defaults[:order] || 'asc', desc: "Order: asc or desc"
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|