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,74 +0,0 @@
|
|
1
|
-
class Jets::Commands::Import
|
2
|
-
class Rails < Base
|
3
|
-
# We add jets-rails gem even though it's only activated within the megamode
|
4
|
-
# rackup wrapper script so user can check run bundle install and determine early
|
5
|
-
# if dependencies are met. The jets-rails gem is also added as part of the deploy
|
6
|
-
# process but we add it here also so the user gets earlier possible errors and
|
7
|
-
# can fix before they hit the deploy phase.
|
8
|
-
def configure_gemfile
|
9
|
-
append_to_file 'rack/Gemfile' do
|
10
|
-
%Q|gem "jets-rails"\n|
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
def install
|
15
|
-
bundle_install
|
16
|
-
end
|
17
|
-
|
18
|
-
def configure_routes
|
19
|
-
# comment out current catchall route
|
20
|
-
comment_lines("config/routes.rb", 'any[ (][\'"]\*', verbose: true) # any "*catchall", to: ...
|
21
|
-
|
22
|
-
# Add catchall route for rack
|
23
|
-
insert_into_file "config/routes.rb", :before => /^end/ do
|
24
|
-
<<-CODE
|
25
|
-
# Enables Mega Mode Rails integration
|
26
|
-
any "*catchall", to: "jets/rack#process"
|
27
|
-
CODE
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
def reconfigure_database_yml
|
32
|
-
Jets::Turbo::DatabaseYaml.new.reconfigure
|
33
|
-
end
|
34
|
-
|
35
|
-
def finish_message
|
36
|
-
puts <<~EOL
|
37
|
-
#{"="*30}
|
38
|
-
Congrats! The Rails project from #{@source} has been imported to the rack folder. Here are some next steps:
|
39
|
-
|
40
|
-
# Local Testing
|
41
|
-
|
42
|
-
Check out the config/routes.rb file and noticed how a new catchall route has been added. It looks something like this:
|
43
|
-
|
44
|
-
any "*catchall", to: "jets/rack#process"
|
45
|
-
|
46
|
-
The catchall route passes any route not handled by the Jets app as a request onto the Rails app. You can modified the route to selectively route what you want.
|
47
|
-
|
48
|
-
Please double check that rack/config/database.yml is appropriately configured, it likely needs to be updated.
|
49
|
-
|
50
|
-
Test the application locally. Test that the Rails app in the rack subfolder works independently. You can start the application up with:
|
51
|
-
|
52
|
-
cd rack # cd into the imported Rails project
|
53
|
-
bundle exec rackup
|
54
|
-
|
55
|
-
The rack server starts up on http://localhost:9292
|
56
|
-
|
57
|
-
Once tested, stop that server with CTRL-C.
|
58
|
-
|
59
|
-
Then you can start the jets server from the main jets project:
|
60
|
-
|
61
|
-
cd .. # back to the main jets projet
|
62
|
-
jets server # starts both jets and rack servers
|
63
|
-
|
64
|
-
The jets server starts up on http://localhost:8888 You can stop both servers with CTRL-C.
|
65
|
-
|
66
|
-
# Deploy
|
67
|
-
|
68
|
-
When you are ready deploy to AWS Lambda with:
|
69
|
-
|
70
|
-
jets deploy
|
71
|
-
EOL
|
72
|
-
end
|
73
|
-
end
|
74
|
-
end
|
@@ -1,90 +0,0 @@
|
|
1
|
-
require 'bundler'
|
2
|
-
require 'fileutils'
|
3
|
-
require 'thor'
|
4
|
-
|
5
|
-
class Jets::Commands::Import
|
6
|
-
class Sequence < Thor::Group
|
7
|
-
include Thor::Actions
|
8
|
-
argument :source
|
9
|
-
|
10
|
-
private
|
11
|
-
def clone_project
|
12
|
-
if File.exist?(rack_folder)
|
13
|
-
abort "The folder #{rack_folder} already exists. Please remove it first if you want to import a project."
|
14
|
-
end
|
15
|
-
|
16
|
-
check_git_installed
|
17
|
-
if @options[:submodule]
|
18
|
-
git_submodule
|
19
|
-
else
|
20
|
-
git_clone
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
def git_submodule
|
25
|
-
puts "Adding project as a submodule"
|
26
|
-
run "git submodule add --force #{repo_url} #{rack_folder}"
|
27
|
-
Cheatsheet.create(repo_url)
|
28
|
-
end
|
29
|
-
|
30
|
-
def git_clone
|
31
|
-
command = "git clone #{repo_url} #{rack_folder}"
|
32
|
-
# Thor's run already puts out the command, so no need to puts
|
33
|
-
run command
|
34
|
-
run "rm -rf #{Jets.root}rack/.git"
|
35
|
-
end
|
36
|
-
|
37
|
-
def copy_project
|
38
|
-
puts "Creating rack folder"
|
39
|
-
template_path = File.expand_path(@source)
|
40
|
-
set_source_paths(template_path)
|
41
|
-
begin
|
42
|
-
directory ".", rack_folder, exclude_pattern: %r{.git}
|
43
|
-
rescue Thor::Error => e
|
44
|
-
puts e.message.color(:red)
|
45
|
-
exit 1
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
def set_source_paths(*paths)
|
50
|
-
# Using string with instance_eval because block doesnt have access to
|
51
|
-
# path at runtime.
|
52
|
-
self.class.instance_eval %{
|
53
|
-
def self.source_paths
|
54
|
-
#{paths.flatten.inspect}
|
55
|
-
end
|
56
|
-
}
|
57
|
-
end
|
58
|
-
|
59
|
-
# normalize repo_url
|
60
|
-
def repo_url
|
61
|
-
if repo?
|
62
|
-
@source # leave as is, user has provided full github url
|
63
|
-
else
|
64
|
-
# Defaults to GitHub
|
65
|
-
"https://github.com/#{@source}"
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
def repo?
|
70
|
-
@source.include?('github.com') ||
|
71
|
-
@source.include?('bitbucket.org') ||
|
72
|
-
@source.include?('gitlab.com')
|
73
|
-
end
|
74
|
-
|
75
|
-
def check_git_installed
|
76
|
-
return unless repo_url.include?('http') || repo_url.include?('git@')
|
77
|
-
unless git_installed?
|
78
|
-
abort "Unable to detect git installation on your system. Git needs to be installed in order to clone the project."
|
79
|
-
end
|
80
|
-
end
|
81
|
-
|
82
|
-
def git_installed?
|
83
|
-
system("type git > /dev/null 2>&1")
|
84
|
-
end
|
85
|
-
|
86
|
-
def rack_folder
|
87
|
-
"#{Jets.root}/rack"
|
88
|
-
end
|
89
|
-
end
|
90
|
-
end
|
@@ -1,30 +0,0 @@
|
|
1
|
-
default: &default
|
2
|
-
adapter: <%= @adapter %>
|
3
|
-
<% if @adapter == 'postgresql' -%>
|
4
|
-
encoding: unicode
|
5
|
-
<% else -%>
|
6
|
-
encoding: utf8mb4
|
7
|
-
<% end -%>
|
8
|
-
pool: <%%= ENV["DB_POOL"] || 5 %>
|
9
|
-
database: <%%= ENV['DB_NAME'] || '<%= @database_development %>' %>
|
10
|
-
<% if @adapter == 'postgresql' -%>
|
11
|
-
username: <%%= ENV['DB_USER'] || ENV['USER'] %>
|
12
|
-
<% else -%>
|
13
|
-
username: <%%= ENV['DB_USER'] || 'root' %>
|
14
|
-
<% end -%>
|
15
|
-
password: <%%= ENV['DB_PASS'] %>
|
16
|
-
host: <%%= ENV["DB_HOST"] %>
|
17
|
-
url: <%%= ENV['DATABASE_URL'] %> # takes higher precedence than other settings
|
18
|
-
|
19
|
-
development:
|
20
|
-
<<: *default
|
21
|
-
database: <%%= ENV['DB_NAME'] || '<%= @database_development %>' %>
|
22
|
-
|
23
|
-
test:
|
24
|
-
<<: *default
|
25
|
-
database: <%= @database_test %>
|
26
|
-
|
27
|
-
production:
|
28
|
-
<<: *default
|
29
|
-
database: <%= @database_production %>
|
30
|
-
url: <%%= ENV['DATABASE_URL'] %>
|
@@ -1,89 +0,0 @@
|
|
1
|
-
# Git Submodule Cheatsheet
|
2
|
-
|
3
|
-
Git submodules take a little bit of getting used to. This is a cheatsheet for Git Submodules to help learn how to use them. This file was generated as part of the `jets <%= @import_command %>` command.
|
4
|
-
|
5
|
-
## Cheatsheet Summary
|
6
|
-
|
7
|
-
The important submodule commands are:
|
8
|
-
|
9
|
-
### On fresh clone project
|
10
|
-
|
11
|
-
git clone <%= @jets_project_repo_url %>
|
12
|
-
git submodule init # required on a fresh clone, or update won't do anything
|
13
|
-
git submodule update # syncs submodule rack folder with what parent project has as commits
|
14
|
-
|
15
|
-
### Updating
|
16
|
-
|
17
|
-
After doing a git pull on the Jets main project, you might notice changes to the submodule rack folder, you can update the rack folder with:
|
18
|
-
|
19
|
-
git submodule update # syncs submodule rack folder with what parent project has as commits
|
20
|
-
|
21
|
-
## More Details
|
22
|
-
|
23
|
-
The rest of the guide will explain in a little more detail submodules.
|
24
|
-
|
25
|
-
## What are Git Submodules?
|
26
|
-
|
27
|
-
Git submodules are a way to have a subfolder in your project be managed as a separate git repo. The submodule folder is its own separate git repo and has its own history. The parent git project references a commit from the submodule project to sync up the subfolder accordingly. Using submodules allows you to include a rack subfolder project into your Jets project code base and managed the rack project as a separate git repo.
|
28
|
-
|
29
|
-
By using the `--submodule` option when you run the `jets import` command, Jets imports the rack project to the rack folder as a submodule. This allows you to keep development of the rack project independent from the development of the Jets project. This is a useful setup if you are testing [Jets Mega Mode](http://rubyonjets.com/docs/megamode/) for more extended periods of time.
|
30
|
-
|
31
|
-
We'll show you how to managed and sync the `rack` submodule folder with the parent Jets project folder.
|
32
|
-
|
33
|
-
### rack submodule
|
34
|
-
|
35
|
-
A rack folder was added to your Jets project as a git submodule. Essentially this command was run.
|
36
|
-
|
37
|
-
git submodule add --force <%= @rack_repo_url %> rack
|
38
|
-
|
39
|
-
The rack submodule folder gets immediately synced as a part of that `git submodule add` command. This has already happened as part of the `jets <%= @import_command %>, we're just explaining the underlying command in case you're interested.
|
40
|
-
|
41
|
-
### Fresh Clone
|
42
|
-
|
43
|
-
**IMPORTANT**: On a fresh clone of your project, submodule folders do not automatically update and appear "empty". This can be confusing for people who don't use submodules often. So here are the commands to update and sync the submodule folder:
|
44
|
-
|
45
|
-
git clone <%= @jets_project_repo_url %>
|
46
|
-
git submodule init # important to run init or next update will do nothing
|
47
|
-
git submodule update # after this the rack folder will no longer be empty
|
48
|
-
# and will have code from <%= @rack_repo_url %>
|
49
|
-
|
50
|
-
### Remove submodule
|
51
|
-
|
52
|
-
If you ever decide to remove the submodule from your project, here are the commands.
|
53
|
-
|
54
|
-
git submodule deinit rack
|
55
|
-
git rm rack
|
56
|
-
# then add and commit your changes
|
57
|
-
|
58
|
-
## Updating Projects
|
59
|
-
|
60
|
-
The typical workflow is to go into the rack folder and run `git pull` to update the submodule folder to the latest changes. Then you cd back up to the main Jets project folder and run `git add`. This updates the project submodule commit reference, which then allows others to pull down the changes and resync the submodules to the same commit. We'll go through some examples to help explain:
|
61
|
-
|
62
|
-
### Updating rack folder submodule
|
63
|
-
|
64
|
-
Here's an example where we will update the rack submodule folder to the latest `master` branch. Remember the master branch refers to the `rack` submodule folder of the <%= @rack_repo_url %> in this case.
|
65
|
-
|
66
|
-
cd my-jets-project # root of the Jets project
|
67
|
-
cd rack # in the submodule now, which contains a different repo history
|
68
|
-
git checkout master # on a fresh clone, the submodule folder will point to a specific git sha instead of a branch
|
69
|
-
git pull # get latest changes in master
|
70
|
-
cd .. # back to parent Jets project
|
71
|
-
git status # notice, it'll say: modified: rack (new commits)
|
72
|
-
git add rack # updates the main projects' reference to the submodule git commit
|
73
|
-
git commit -m "update rack submodule"
|
74
|
-
git push # send your changes to everyone else
|
75
|
-
|
76
|
-
Eventually, later another developer will pull down your changes on the Jets project and notice that the submodules have been updated. When he runs a `git pull` and then does a `git status` he'll notice this:
|
77
|
-
|
78
|
-
$ git pull # another developer pulled down the changes
|
79
|
-
$ git st # notice the changes
|
80
|
-
modified: rack (new commits)
|
81
|
-
$ git diff # another way a summary of the changes in the rack project
|
82
|
-
Submodule rack 6b0fb3a..4f6ea3f (rewind):
|
83
|
-
< test commit in rack submodule project
|
84
|
-
|
85
|
-
This is when the developer will need to resync the rack submodule folder. He does it with this:
|
86
|
-
|
87
|
-
git submodule update # updates the rack folder to the commit that the parent is referencing
|
88
|
-
|
89
|
-
That's it!
|
data/lib/jets/commands/import.rb
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
module Jets::Commands
|
2
|
-
class Import < Jets::Commands::Base
|
3
|
-
Jets::Commands::Import::Base.cli_options.each do |args|
|
4
|
-
class_option(*args)
|
5
|
-
end
|
6
|
-
long_desc Help.text('import:rails')
|
7
|
-
register(Jets::Commands::Import::Rails, "rails", "rails", "Imports rails project in the rack subfolder")
|
8
|
-
|
9
|
-
long_desc Help.text('import:rack')
|
10
|
-
register(Jets::Commands::Import::Rack, "rack", "rack", "Imports rack project in the rack subfolder")
|
11
|
-
end
|
12
|
-
end
|
data/lib/jets/commands/main.rb
DELETED
@@ -1,169 +0,0 @@
|
|
1
|
-
require "thor"
|
2
|
-
|
3
|
-
module Jets::Commands
|
4
|
-
class Main < Base
|
5
|
-
|
6
|
-
class_option :noop, type: :boolean
|
7
|
-
|
8
|
-
desc "build", "Builds and packages project for AWS Lambda"
|
9
|
-
long_desc Help.text(:build)
|
10
|
-
option :templates, type: :boolean, default: false, desc: "Only build the CloudFormation templates. Skip code building"
|
11
|
-
def build
|
12
|
-
Build.new(options).run
|
13
|
-
end
|
14
|
-
|
15
|
-
desc "configure [TOKEN]", "configure token and updates ~/.jets/config.yml"
|
16
|
-
long_desc Help.text(:configure)
|
17
|
-
def configure(token=nil)
|
18
|
-
Configure.new(options.merge(token: token)).run
|
19
|
-
end
|
20
|
-
|
21
|
-
desc "deploy [environment]", "Builds and deploys project to AWS Lambda"
|
22
|
-
long_desc Help.text(:deploy)
|
23
|
-
# Note the environment is here to trick the Thor parser to allowing an
|
24
|
-
# environment parameter. It is not actually set here. It is set earlier
|
25
|
-
# in cli.rb: set_jets_env_from_cli_arg!
|
26
|
-
def deploy(environment=nil)
|
27
|
-
Deploy.new(options).run
|
28
|
-
end
|
29
|
-
|
30
|
-
desc "delete", "Delete the Jets project and all its resources"
|
31
|
-
long_desc Help.text(:delete)
|
32
|
-
option :yes, aliases: %w[y], type: :boolean, desc: "Skip are you sure prompt."
|
33
|
-
option :wait, type: :boolean, default: true, desc: "Wait for stack deletion to complete."
|
34
|
-
# Note the environment is here to trick the Thor parser to allowing an
|
35
|
-
# environment parameter. It is not actually set here. It is set earlier
|
36
|
-
# in cli.rb: set_jets_env_from_cli_arg!
|
37
|
-
def delete(environment=nil)
|
38
|
-
Delete.new(options).run
|
39
|
-
end
|
40
|
-
|
41
|
-
desc "server", "Runs a local server that mimics API Gateway for development"
|
42
|
-
long_desc Help.text(:server)
|
43
|
-
option :port, default: "8888", desc: "use PORT"
|
44
|
-
option :host, default: "127.0.0.1", desc: "listen on HOST"
|
45
|
-
def server
|
46
|
-
o = options
|
47
|
-
command = "bundle exec rackup --port #{o[:port]} --host #{o[:host]}"
|
48
|
-
puts "=> #{command}".color(:green)
|
49
|
-
puts Jets::Booter.message
|
50
|
-
Jets::Booter.check_config_ru!
|
51
|
-
Jets::RackServer.start(options) unless ENV['JETS_RACK'] == '0' # rack server runs in background by default
|
52
|
-
Bundler.with_unbundled_env do
|
53
|
-
system(command)
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
desc "routes", "Print out your application routes"
|
58
|
-
long_desc Help.text(:routes)
|
59
|
-
def routes
|
60
|
-
puts Jets::Router.help(Jets::Router.routes)
|
61
|
-
Jets::Router.validate_routes!
|
62
|
-
end
|
63
|
-
|
64
|
-
desc "console [environment]", "REPL console with Jets environment loaded"
|
65
|
-
long_desc Help.text(:console)
|
66
|
-
# Note the environment is here to trick the Thor parser to allowing an
|
67
|
-
# environment parameter. It is not actually set here. It is set earlier
|
68
|
-
# in cli.rb: set_jets_env_from_cli_arg!
|
69
|
-
def console(environment=nil)
|
70
|
-
Console.new(options).run
|
71
|
-
end
|
72
|
-
|
73
|
-
desc "runner", "Run Ruby code in the context of Jets app non-interactively"
|
74
|
-
long_desc Help.text(:runner)
|
75
|
-
def runner(code, args=nil)
|
76
|
-
Runner.run(code, args)
|
77
|
-
end
|
78
|
-
|
79
|
-
desc "dbconsole", "Starts DB REPL console"
|
80
|
-
long_desc Help.text(:dbconsole)
|
81
|
-
def dbconsole
|
82
|
-
Dbconsole.start(*args)
|
83
|
-
end
|
84
|
-
|
85
|
-
# Command is called 'call' because invoke is a Thor keyword.
|
86
|
-
desc "call [function] [event]", "Call a lambda function on AWS or locally"
|
87
|
-
long_desc Help.text(:call)
|
88
|
-
option :invocation_type, default: "RequestResponse", desc: "RequestResponse, Event, or DryRun"
|
89
|
-
option :log_type, default: "Tail", desc: "Works if invocation_type set to RequestResponse"
|
90
|
-
option :qualifier, desc: "Lambda function version or alias name"
|
91
|
-
option :show_log, type: :boolean, desc: "Shows last 4KB of log in the x-amz-log-result header"
|
92
|
-
option :lambda_proxy, type: :boolean, default: true, desc: "Enables automatic Lambda proxy transformation of the event payload"
|
93
|
-
option :guess, type: :boolean, default: true, desc: "Enables guess mode. Uses inference to allows use of all dashes to specify functions. Guess mode verifies that the function exists in the code base."
|
94
|
-
option :local, type: :boolean, desc: "Enables local mode. Instead of invoke the AWS Lambda function, the method gets called locally with current app code. With local mode guess mode is always used."
|
95
|
-
option :retry_limit, type: :numeric, default: nil, desc: "Retry count of invoking function. It work with remote call"
|
96
|
-
option :read_timeout, type: :numeric, default: nil, desc: " The number of seconds to wait for response data. It work with remote call"
|
97
|
-
def call(function_name, payload='')
|
98
|
-
# Printing to stdout can mangle up the response when piping
|
99
|
-
# the value to jq. For example:
|
100
|
-
#
|
101
|
-
# `jets call --local .. | jq`
|
102
|
-
#
|
103
|
-
# By redirecting stderr we can use jq safely.
|
104
|
-
#
|
105
|
-
$stdout.sync = true
|
106
|
-
$stderr.sync = true
|
107
|
-
$stdout = $stderr # jets call operation
|
108
|
-
Call.new(function_name, payload, options).run
|
109
|
-
end
|
110
|
-
|
111
|
-
desc "generate [type] [args]", "Generates things like scaffolds"
|
112
|
-
long_desc Help.text(:generate) # do use Jets::Generator.help as it'll load Rails const
|
113
|
-
def generate(generator, *args)
|
114
|
-
Jets::Generator.invoke(generator, *args)
|
115
|
-
end
|
116
|
-
|
117
|
-
desc "degenerate [type] [args]", "Destroys things like scaffolds"
|
118
|
-
long_desc Help.text(:degenerate) # do use Jets::Generator.help as it'll load Rails const
|
119
|
-
def degenerate(generator, *args)
|
120
|
-
Jets::Generator.revoke(generator, *args)
|
121
|
-
end
|
122
|
-
|
123
|
-
desc "status", "Shows the current status of the Jets app"
|
124
|
-
long_desc Help.text(:status)
|
125
|
-
def status
|
126
|
-
Jets::Cfn::Status.new(options).run
|
127
|
-
end
|
128
|
-
|
129
|
-
desc "url", "App url if routes are defined"
|
130
|
-
long_desc Help.text(:url)
|
131
|
-
def url
|
132
|
-
Jets::Commands::Url.new(options).display
|
133
|
-
end
|
134
|
-
|
135
|
-
desc "secret", "Generates secret"
|
136
|
-
long_desc Help.text(:secret)
|
137
|
-
def secret
|
138
|
-
puts SecureRandom.hex(64)
|
139
|
-
end
|
140
|
-
|
141
|
-
desc "middleware", "Prints list of middleware"
|
142
|
-
long_desc Help.text(:middleware)
|
143
|
-
def middleware
|
144
|
-
stack = Jets.application.middlewares
|
145
|
-
stack.middlewares.each do |middleware|
|
146
|
-
puts "use #{middleware.name}"
|
147
|
-
end
|
148
|
-
puts "run #{Jets.application.endpoint}"
|
149
|
-
end
|
150
|
-
|
151
|
-
desc "upgrade", "Upgrade Jets"
|
152
|
-
long_desc Help.text(:upgrade)
|
153
|
-
def upgrade
|
154
|
-
Jets::Commands::Upgrade.new(options).run
|
155
|
-
end
|
156
|
-
|
157
|
-
desc "version", "Prints Jets version"
|
158
|
-
long_desc Help.text(:version)
|
159
|
-
def version
|
160
|
-
puts Jets.version
|
161
|
-
end
|
162
|
-
|
163
|
-
long_desc Help.text(:new)
|
164
|
-
Jets::Commands::New.cli_options.each do |args|
|
165
|
-
option(*args)
|
166
|
-
end
|
167
|
-
register(Jets::Commands::New, "new", "new", "Creates a starter skeleton jets project")
|
168
|
-
end
|
169
|
-
end
|
@@ -1,58 +0,0 @@
|
|
1
|
-
module Jets::Commands::Markdown
|
2
|
-
class Creator
|
3
|
-
cattr_accessor :mute
|
4
|
-
|
5
|
-
def self.create_all
|
6
|
-
clean
|
7
|
-
new.create_all
|
8
|
-
end
|
9
|
-
|
10
|
-
def self.clean
|
11
|
-
FileUtils.rm_rf("docs/_reference")
|
12
|
-
FileUtils.rm_f("docs/reference.md")
|
13
|
-
end
|
14
|
-
|
15
|
-
def cli_classes
|
16
|
-
Jets::Commands::Base.namespaced_commands.map do |full_command|
|
17
|
-
# IE of full_command: dynamodb:generate
|
18
|
-
Jets::CLI.new([full_command]).lookup(full_command)
|
19
|
-
end.uniq
|
20
|
-
end
|
21
|
-
|
22
|
-
def create_all
|
23
|
-
create_index
|
24
|
-
|
25
|
-
cli_classes.each do |cli_class|
|
26
|
-
# cli_class examples:
|
27
|
-
# Jets::Commands::Main
|
28
|
-
# Jets::Commands::Db
|
29
|
-
# Jets::Commands::Dynamodb::Migrate
|
30
|
-
cli_class.commands.each do |command|
|
31
|
-
command_name = command.first
|
32
|
-
|
33
|
-
page = Page.new(cli_class: cli_class, command_name: command_name)
|
34
|
-
create_page(page)
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
def create_page(page)
|
40
|
-
puts "Creating page: #{page.path}..."
|
41
|
-
FileUtils.mkdir_p(File.dirname(page.path))
|
42
|
-
IO.write(page.path, page.doc)
|
43
|
-
end
|
44
|
-
|
45
|
-
def create_index
|
46
|
-
create_include_reference
|
47
|
-
page = Index.new
|
48
|
-
FileUtils.mkdir_p(File.dirname(page.path))
|
49
|
-
puts "Creating index: #{page.path}"
|
50
|
-
IO.write(page.path, page.doc)
|
51
|
-
end
|
52
|
-
|
53
|
-
def create_include_reference
|
54
|
-
path = "docs/_includes/reference.md"
|
55
|
-
IO.write(path, "Generic tool description. Please edit #{path} with a description.") unless File.exist?(path)
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
module Jets::Commands::Markdown
|
2
|
-
class Index
|
3
|
-
def path
|
4
|
-
"docs/reference.md"
|
5
|
-
end
|
6
|
-
|
7
|
-
def command_list
|
8
|
-
commands = Jets::Commands::Base.namespaced_commands.sort.reject {|c| c.include?('help') }
|
9
|
-
commands.map do |full_command|
|
10
|
-
# Example: [jets deploy]({% link _reference/jets-deploy.md %})
|
11
|
-
link = full_command.gsub(':','-')
|
12
|
-
"* [jets #{full_command}]({% link _reference/jets-#{link}.md %})"
|
13
|
-
end.join("\n")
|
14
|
-
end
|
15
|
-
|
16
|
-
def doc
|
17
|
-
<<-EOL
|
18
|
-
---
|
19
|
-
title: CLI Reference
|
20
|
-
---
|
21
|
-
{% include reference.md %}
|
22
|
-
|
23
|
-
#{command_list}
|
24
|
-
EOL
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
@@ -1,125 +0,0 @@
|
|
1
|
-
module Jets::Commands::Markdown
|
2
|
-
class Page
|
3
|
-
attr_reader :cli_name
|
4
|
-
def initialize(cli_class:, command_name:)
|
5
|
-
@cli_class = cli_class # IE: Jets::Commands::Main
|
6
|
-
@command_name = command_name # IE: generate
|
7
|
-
|
8
|
-
@cli_name = "jets"
|
9
|
-
@command = @cli_class.commands[@command_name]
|
10
|
-
end
|
11
|
-
|
12
|
-
def usage
|
13
|
-
banner = @cli_class.send(:banner, @command) # banner is protected method
|
14
|
-
invoking_command = File.basename($0) # could be rspec, etc
|
15
|
-
banner.sub(invoking_command, cli_name)
|
16
|
-
end
|
17
|
-
|
18
|
-
def full_command
|
19
|
-
[namespace, @command_name].compact.join(':')
|
20
|
-
end
|
21
|
-
|
22
|
-
def namespace
|
23
|
-
ns = @cli_class.to_s.sub('Jets::Commands::','').underscore.gsub('/','-')
|
24
|
-
ns == 'main' ? nil : ns
|
25
|
-
end
|
26
|
-
|
27
|
-
def description
|
28
|
-
@command.description
|
29
|
-
end
|
30
|
-
|
31
|
-
def options
|
32
|
-
shell = Shell.new
|
33
|
-
@cli_class.send(:class_options_help, shell, nil => @command.options.values)
|
34
|
-
text = shell.stdout.string
|
35
|
-
return "" if text.empty? # there are no options
|
36
|
-
|
37
|
-
lines = text.split("\n")[1..-1] # remove first line wihth "Options: "
|
38
|
-
lines.map! do |line|
|
39
|
-
# remove 2 leading spaces
|
40
|
-
line.sub(/^ /, '')
|
41
|
-
end
|
42
|
-
lines.join("\n")
|
43
|
-
end
|
44
|
-
|
45
|
-
# Use command's long description as main description
|
46
|
-
def long_description
|
47
|
-
text = @command.long_description
|
48
|
-
return "" if text.nil? # empty description
|
49
|
-
|
50
|
-
lines = text.split("\n")
|
51
|
-
lines.map do |line|
|
52
|
-
# In the CLI help, we use 2 spaces to designate commands
|
53
|
-
# In Markdown we need 4 spaces.
|
54
|
-
line.sub(/^ \b/, ' ')
|
55
|
-
end.join("\n")
|
56
|
-
end
|
57
|
-
|
58
|
-
def path
|
59
|
-
full_name = [cli_name, namespace, @command_name].compact.join('-')
|
60
|
-
"docs/_reference/#{full_name}.md"
|
61
|
-
end
|
62
|
-
|
63
|
-
def doc
|
64
|
-
<<-EOL
|
65
|
-
#{front_matter}
|
66
|
-
#{usage_markdown}
|
67
|
-
#{long_desc_markdown}
|
68
|
-
#{options_markdown}
|
69
|
-
EOL
|
70
|
-
end
|
71
|
-
|
72
|
-
def front_matter
|
73
|
-
command = [cli_name, full_command].compact.join(' ')
|
74
|
-
<<-EOL
|
75
|
-
---
|
76
|
-
title: #{command}
|
77
|
-
reference: true
|
78
|
-
---
|
79
|
-
EOL
|
80
|
-
end
|
81
|
-
|
82
|
-
def usage_markdown
|
83
|
-
<<-EOL
|
84
|
-
## Usage
|
85
|
-
|
86
|
-
#{usage}
|
87
|
-
EOL
|
88
|
-
end
|
89
|
-
|
90
|
-
def desc_markdown
|
91
|
-
<<-EOL
|
92
|
-
## Description
|
93
|
-
|
94
|
-
#{description}
|
95
|
-
EOL
|
96
|
-
end
|
97
|
-
|
98
|
-
# If the Thor long_description is empty then use the description.
|
99
|
-
def long_desc_markdown
|
100
|
-
return desc_markdown if long_description.empty?
|
101
|
-
|
102
|
-
<<-EOL
|
103
|
-
## Description
|
104
|
-
|
105
|
-
#{description}.
|
106
|
-
|
107
|
-
#{long_description}
|
108
|
-
EOL
|
109
|
-
end
|
110
|
-
|
111
|
-
# handles blank options
|
112
|
-
def options_markdown
|
113
|
-
return '' if options.empty?
|
114
|
-
|
115
|
-
<<-EOL
|
116
|
-
## Options
|
117
|
-
|
118
|
-
```
|
119
|
-
#{options}
|
120
|
-
```
|
121
|
-
EOL
|
122
|
-
end
|
123
|
-
|
124
|
-
end
|
125
|
-
end
|