jets 4.0.17 → 5.0.0.beta1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (616) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +5 -1
  3. data/CHANGELOG.md +52 -23
  4. data/Gemfile +1 -5
  5. data/LICENSE.txt +1 -1
  6. data/Rakefile +3 -3
  7. data/engines/internal/app/controllers/jets/application_controller.rb +28 -0
  8. data/engines/internal/app/controllers/jets/bare_controller.rb +6 -0
  9. data/engines/internal/app/controllers/jets/health_controller.rb +55 -0
  10. data/engines/internal/app/controllers/jets/info_controller.rb +45 -0
  11. data/{lib/jets → engines}/internal/app/controllers/jets/mailers_controller.rb +12 -14
  12. data/{lib/jets → engines}/internal/app/controllers/jets/mount_controller.rb +6 -10
  13. data/{lib/jets → engines}/internal/app/controllers/jets/public_controller.rb +6 -2
  14. data/engines/internal/app/controllers/jets/welcome_controller.rb +9 -0
  15. data/{lib/jets → engines}/internal/app/functions/jets/base_path.rb +2 -1
  16. data/{lib/jets → engines}/internal/app/functions/jets/base_path_mapping.rb +26 -6
  17. data/engines/internal/app/jobs/jets/preheat_job.rb +67 -0
  18. data/engines/internal/app/views/jets/info/properties.html.erb +1 -0
  19. data/engines/internal/app/views/jets/info/routes.html.erb +10 -0
  20. data/{lib/jets → engines}/internal/app/views/jets/mailers/email.html.erb +37 -17
  21. data/engines/internal/app/views/jets/mailers/index.html.erb +8 -0
  22. data/engines/internal/app/views/jets/mailers/mailer.html.erb +6 -0
  23. data/{lib/jets/commands/templates/skeleton/public/index.html.tt → engines/internal/app/views/jets/welcome/index.html.erb} +8 -4
  24. data/engines/internal/app/views/layouts/application.html.erb +51 -0
  25. data/engines/internal/lib/internal/actiondispatch.rb +39 -0
  26. data/engines/internal/lib/internal/actionmailer.rb +51 -0
  27. data/engines/internal/lib/internal/actionview.rb +152 -0
  28. data/engines/internal/lib/internal/activerecord.rb +37 -0
  29. data/engines/internal/lib/internal/activesupport.rb +47 -0
  30. data/engines/internal/lib/internal/engine.rb +13 -0
  31. data/engines/internal/lib/internal/i18n_engine.rb +19 -0
  32. data/engines/internal/lib/internal/jets_controller.rb +46 -0
  33. data/engines/internal/lib/internal/overrides/debug_exceptions.rb +40 -0
  34. data/engines/internal/lib/internal/templates/rescues/_trace.html.erb +62 -0
  35. data/engines/internal/lib/internal/templates/rescues/_trace.text.erb +9 -0
  36. data/engines/internal/lib/internal/turbines/asset_tag_helper.rb +70 -0
  37. data/engines/internal/lib/internal/turbines/helpers.rb +18 -0
  38. data/engines/internal/lib/internal/turbines/routes_helpers.rb +42 -0
  39. data/exe/jets +1 -10
  40. data/jets.gemspec +29 -27
  41. data/lib/jets/app_loader.rb +77 -0
  42. data/lib/jets/application/bootstrap.rb +100 -0
  43. data/lib/jets/application/configuration/defaults.rb +256 -0
  44. data/lib/jets/application/configuration.rb +494 -0
  45. data/lib/jets/application/default_middleware_stack.rb +140 -0
  46. data/lib/jets/application/dummy_erb_compiler.rb +18 -0
  47. data/lib/jets/application/finisher.rb +266 -0
  48. data/lib/jets/application/routes_reloader.rb +80 -0
  49. data/lib/jets/application.rb +515 -198
  50. data/lib/jets/authorizer/base.rb +1 -0
  51. data/lib/jets/authorizer/dsl.rb +15 -11
  52. data/lib/jets/authorizer/helpers/iam_helper.rb +13 -11
  53. data/lib/jets/autoloaders/gem.rb +70 -0
  54. data/lib/jets/autoloaders/inflector.rb +21 -0
  55. data/lib/jets/autoloaders.rb +38 -101
  56. data/lib/jets/aws_services/stack_status.rb +1 -1
  57. data/lib/jets/backtrace_cleaner.rb +27 -0
  58. data/lib/jets/booter.rb +29 -176
  59. data/lib/jets/builders/code_builder.rb +45 -117
  60. data/lib/jets/builders/code_size.rb +1 -0
  61. data/lib/jets/builders/gem_replacer.rb +5 -6
  62. data/lib/jets/builders/handler_generator.rb +34 -14
  63. data/lib/jets/builders/lambda_layer.rb +2 -7
  64. data/lib/jets/builders/purger.rb +1 -1
  65. data/lib/jets/builders/rack_packager.rb +1 -1
  66. data/lib/jets/builders/ruby_packager.rb +32 -21
  67. data/lib/jets/builders/shim_vars/app.rb +10 -6
  68. data/lib/jets/builders/templates/handlers/one_lambda_for_all_controllers.rb +33 -0
  69. data/lib/jets/builders/templates/handlers/one_lambda_per_controller.rb +20 -0
  70. data/lib/jets/builders/templates/{handler.rb → handlers/one_lambda_per_method.rb} +6 -0
  71. data/lib/jets/bundle.rb +2 -9
  72. data/lib/jets/cfn/base.rb +82 -0
  73. data/lib/jets/cfn/builder/api/base.rb +12 -0
  74. data/lib/jets/cfn/{builders/api_deployment_builder.rb → builder/api/deployment.rb} +10 -20
  75. data/lib/jets/cfn/{builders/api_gateway_builder.rb → builder/api/gateway.rb} +14 -37
  76. data/lib/jets/cfn/builder/api/mapping.rb +54 -0
  77. data/lib/jets/cfn/builder/api/methods.rb +72 -0
  78. data/lib/jets/cfn/builder/api/paged.rb +30 -0
  79. data/lib/jets/cfn/builder/api/pages/base.rb +105 -0
  80. data/lib/jets/cfn/builder/api/pages/methods.rb +17 -0
  81. data/lib/jets/cfn/builder/api/pages/page.rb +19 -0
  82. data/lib/jets/cfn/builder/api/pages/resources.rb +21 -0
  83. data/lib/jets/cfn/builder/api/resources.rb +40 -0
  84. data/lib/jets/cfn/{builders/authorizer_builder.rb → builder/authorizer.rb} +16 -19
  85. data/lib/jets/cfn/builder/controller.rb +28 -0
  86. data/lib/jets/cfn/builder/function.rb +9 -0
  87. data/lib/jets/cfn/{builders → builder}/interface.rb +45 -51
  88. data/lib/jets/cfn/builder/job.rb +10 -0
  89. data/lib/jets/cfn/builder/nested.rb +130 -0
  90. data/lib/jets/cfn/builder/one_controller.rb +53 -0
  91. data/lib/jets/cfn/{builders/parent_builder → builder/parent}/stagger.rb +1 -1
  92. data/lib/jets/cfn/{builders/parent_builder.rb → builder/parent.rb} +54 -54
  93. data/lib/jets/cfn/builder/post_process.rb +25 -0
  94. data/lib/jets/cfn/{builders/rule_builder.rb → builder/rule.rb} +4 -8
  95. data/lib/jets/cfn/{builders/shared_builder.rb → builder/shared.rb} +4 -3
  96. data/lib/jets/cfn/{builders → builder}/util/source.rb +1 -1
  97. data/lib/jets/{commands/build.rb → cfn/builder.rb} +50 -78
  98. data/lib/jets/cfn/deployment.rb +45 -0
  99. data/lib/jets/cfn/download.rb +39 -0
  100. data/lib/jets/cfn/params/api/base.rb +39 -0
  101. data/lib/jets/cfn/params/api/cors.rb +10 -0
  102. data/lib/jets/cfn/params/api/methods.rb +69 -0
  103. data/lib/jets/cfn/params/api/resources.rb +28 -0
  104. data/lib/jets/{resource/child_stack/common_parameters.rb → cfn/params/common.rb} +3 -3
  105. data/lib/jets/{resource → cfn/resource}/api_gateway/authorizer.rb +21 -21
  106. data/lib/jets/cfn/resource/api_gateway/base_path/function.rb +57 -0
  107. data/lib/jets/{resource → cfn/resource}/api_gateway/base_path/mapping.rb +13 -12
  108. data/lib/jets/cfn/resource/api_gateway/base_path/role.rb +70 -0
  109. data/lib/jets/{resource → cfn/resource}/api_gateway/deployment.rb +13 -20
  110. data/lib/jets/{resource → cfn/resource}/api_gateway/domain_name.rb +11 -11
  111. data/lib/jets/{resource → cfn/resource}/api_gateway/method/authorization.rb +1 -1
  112. data/lib/jets/cfn/resource/api_gateway/method.rb +92 -0
  113. data/lib/jets/{resource → cfn/resource}/api_gateway/resource.rb +14 -10
  114. data/lib/jets/cfn/resource/api_gateway/resource_id.rb +25 -0
  115. data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/change_detection.rb +1 -1
  116. data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/logical_id/message.rb +1 -1
  117. data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/logical_id.rb +1 -1
  118. data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/change/base.rb +4 -3
  119. data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/change/media_types.rb +2 -2
  120. data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/change/page.rb +5 -5
  121. data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/change/to.rb +8 -3
  122. data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/change/variable.rb +2 -2
  123. data/lib/jets/cfn/resource/api_gateway/rest_api/routes/change.rb +21 -0
  124. data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/collision/variable_exception.rb +1 -1
  125. data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/collision.rb +1 -1
  126. data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes.rb +1 -1
  127. data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api.rb +12 -12
  128. data/lib/jets/{resource → cfn/resource}/associated.rb +1 -1
  129. data/lib/jets/{resource → cfn/resource}/config/config_rule.rb +18 -18
  130. data/lib/jets/{resource → cfn/resource}/config/managed_rule.rb +5 -5
  131. data/lib/jets/{resource → cfn/resource}/events/rule.rb +10 -10
  132. data/lib/jets/{resource → cfn/resource}/iam/application_role.rb +4 -4
  133. data/lib/jets/{resource → cfn/resource}/iam/base_role_definition.rb +15 -15
  134. data/lib/jets/{resource → cfn/resource}/iam/class_role.rb +5 -5
  135. data/lib/jets/{resource → cfn/resource}/iam/function_role.rb +6 -6
  136. data/lib/jets/{resource → cfn/resource}/iam/managed_policy.rb +1 -1
  137. data/lib/jets/{resource → cfn/resource}/iam/policy.rb +8 -8
  138. data/lib/jets/{resource → cfn/resource}/iam/policy_document.rb +10 -9
  139. data/lib/jets/{resource → cfn/resource}/iot/topic_rule.rb +10 -10
  140. data/lib/jets/{resource → cfn/resource}/lambda/event_source_mapping.rb +9 -9
  141. data/lib/jets/cfn/resource/lambda/function/controller.rb +21 -0
  142. data/lib/jets/{resource → cfn/resource}/lambda/function/environment.rb +4 -5
  143. data/lib/jets/cfn/resource/lambda/function.rb +266 -0
  144. data/lib/jets/{resource → cfn/resource}/lambda/gem_layer.rb +2 -2
  145. data/lib/jets/{resource → cfn/resource}/lambda/layer_version.rb +10 -10
  146. data/lib/jets/cfn/resource/lambda/permission.rb +51 -0
  147. data/lib/jets/cfn/resource/logs/subscription_filter.rb +31 -0
  148. data/lib/jets/cfn/resource/nested/api/base.rb +4 -0
  149. data/lib/jets/cfn/resource/nested/api/deployment.rb +53 -0
  150. data/lib/jets/cfn/resource/nested/api/gateway.rb +15 -0
  151. data/lib/jets/cfn/resource/nested/api/mapping.rb +33 -0
  152. data/lib/jets/cfn/resource/nested/api/methods.rb +30 -0
  153. data/lib/jets/cfn/resource/nested/api/page.rb +8 -0
  154. data/lib/jets/cfn/resource/nested/api/resources.rb +22 -0
  155. data/lib/jets/{resource/child_stack → cfn/resource/nested}/app_class.rb +15 -48
  156. data/lib/jets/{resource/child_stack → cfn/resource/nested}/authorizer.rb +8 -14
  157. data/lib/jets/cfn/resource/nested/base.rb +38 -0
  158. data/lib/jets/cfn/resource/nested/one_controller.rb +48 -0
  159. data/lib/jets/{resource/child_stack → cfn/resource/nested}/shared.rb +10 -16
  160. data/lib/jets/cfn/resource/one/function.rb +66 -0
  161. data/lib/jets/cfn/resource/one/permission.rb +17 -0
  162. data/lib/jets/{resource → cfn/resource}/replacer.rb +26 -27
  163. data/lib/jets/{resource → cfn/resource}/route53/record_set.rb +18 -18
  164. data/lib/jets/{resource → cfn/resource}/s3/bucket.rb +4 -4
  165. data/lib/jets/cfn/resource/s3/jets_bucket.rb +68 -0
  166. data/lib/jets/{resource → cfn/resource}/sns/subscription.rb +8 -8
  167. data/lib/jets/{resource → cfn/resource}/sns/topic.rb +10 -10
  168. data/lib/jets/{resource → cfn/resource}/sns/topic_policy.rb +13 -13
  169. data/lib/jets/{resource → cfn/resource}/sqs/queue.rb +5 -5
  170. data/lib/jets/{resource → cfn/resource}/standardizer.rb +8 -9
  171. data/lib/jets/cfn/resource.rb +8 -0
  172. data/lib/jets/cfn/ship.rb +20 -19
  173. data/lib/jets/cfn/template.rb +89 -0
  174. data/lib/jets/cfn/upload.rb +40 -37
  175. data/lib/jets/cli.rb +28 -210
  176. data/lib/jets/command/actions.rb +49 -0
  177. data/lib/jets/command/api_helpers.rb +41 -0
  178. data/lib/jets/command/aws_helpers.rb +26 -0
  179. data/lib/jets/command/base.rb +204 -0
  180. data/lib/jets/command/behavior.rb +83 -0
  181. data/lib/jets/command/environment_argument.rb +42 -0
  182. data/lib/jets/command/help/call.md +48 -0
  183. data/lib/jets/{commands → command}/help/deploy.md +1 -1
  184. data/lib/jets/command/help/logs.md +21 -0
  185. data/lib/jets/{commands → command}/help/new.md +3 -4
  186. data/lib/jets/command/help/projects.md +6 -0
  187. data/lib/jets/command/help/releases.md +37 -0
  188. data/lib/jets/command/help/rollback.md +5 -0
  189. data/lib/jets/command/help/routes.md +15 -0
  190. data/lib/jets/command/help/stacks.md +6 -0
  191. data/lib/jets/command/help.rb +17 -0
  192. data/lib/jets/command/helpers/editor.rb +35 -0
  193. data/lib/jets/command.rb +133 -0
  194. data/lib/jets/commands/application/application_command.rb +40 -0
  195. data/lib/jets/commands/build/build_command.rb +33 -0
  196. data/lib/jets/commands/call/anonymous_guesser.rb +1 -1
  197. data/lib/jets/commands/call/autoload_guesser.rb +2 -2
  198. data/lib/jets/commands/call/base_guesser.rb +4 -4
  199. data/lib/jets/commands/call/call_command.rb +27 -0
  200. data/lib/jets/commands/call/caller.rb +184 -0
  201. data/lib/jets/commands/call/guesser.rb +1 -1
  202. data/lib/jets/commands/clean/base.rb +1 -1
  203. data/lib/jets/commands/clean/build.rb +1 -1
  204. data/lib/jets/commands/clean/clean_command.rb +15 -0
  205. data/lib/jets/commands/clean/log.rb +1 -1
  206. data/lib/jets/commands/configure/configure_command.rb +9 -0
  207. data/lib/jets/commands/console/console_command.rb +38 -0
  208. data/lib/jets/commands/credentials/USAGE +103 -0
  209. data/lib/jets/commands/credentials/credentials_command/diffing.rb +51 -0
  210. data/lib/jets/commands/credentials/credentials_command.rb +139 -0
  211. data/lib/jets/commands/db/system/change/change_command.rb +24 -0
  212. data/lib/jets/commands/dbconsole/dbconsole_command.rb +184 -0
  213. data/lib/jets/commands/degenerate/degenerate_command.rb +21 -0
  214. data/lib/jets/commands/delete/delete_command.rb +155 -0
  215. data/lib/jets/commands/{deploy.rb → deploy/deploy_command.rb} +28 -47
  216. data/lib/jets/commands/dev/dev_command.rb +19 -0
  217. data/lib/jets/commands/{dotenv.rb → dotenv/dotenv_command.rb} +2 -2
  218. data/lib/jets/commands/encrypted/USAGE +46 -0
  219. data/lib/jets/commands/encrypted/encrypted_command.rb +87 -0
  220. data/lib/jets/commands/gems/gems_command.rb +14 -0
  221. data/lib/jets/commands/generate/generate_command.rb +95 -0
  222. data/lib/jets/commands/help/USAGE +20 -0
  223. data/lib/jets/commands/help/help_command.rb +15 -0
  224. data/lib/jets/commands/initializers/initializers_command.rb +19 -0
  225. data/lib/jets/commands/logs/logs_command.rb +45 -0
  226. data/lib/jets/commands/new/new_command.rb +19 -0
  227. data/lib/jets/commands/notes/notes_command.rb +30 -0
  228. data/lib/jets/commands/plugin/plugin_command.rb +45 -0
  229. data/lib/jets/commands/projects/projects_command.rb +30 -0
  230. data/lib/jets/commands/rake/rake_command.rb +59 -0
  231. data/lib/jets/commands/releases/releases_command.rb +72 -0
  232. data/lib/jets/commands/rollback/rollback_command.rb +41 -0
  233. data/lib/jets/commands/routes/routes_command.rb +19 -0
  234. data/lib/jets/commands/runner/runner_command.rb +60 -0
  235. data/lib/jets/commands/server/server_command.rb +291 -0
  236. data/lib/jets/commands/stacks/stacks_command.rb +39 -0
  237. data/lib/jets/commands/status/status_command.rb +9 -0
  238. data/lib/jets/commands/{url.rb → url/url_command.rb} +37 -14
  239. data/lib/jets/commands/version/version_command.rb +11 -0
  240. data/lib/jets/commands.rb +17 -0
  241. data/lib/jets/configuration.rb +166 -0
  242. data/lib/jets/controller/base.rb +105 -183
  243. data/lib/jets/controller/compat/abstract_controller/base.rb +126 -0
  244. data/lib/jets/controller/compat/action_controller/metal.rb +99 -0
  245. data/lib/jets/controller/compat/caching.rb +13 -0
  246. data/lib/jets/controller/compat/future.rb +13 -0
  247. data/lib/jets/controller/compat/route_set.rb +47 -0
  248. data/lib/jets/controller/decorate/apigw_stage.rb +39 -0
  249. data/lib/jets/controller/{authorization.rb → decorate/authorization.rb} +1 -1
  250. data/lib/jets/controller/decorate/logging.rb +90 -0
  251. data/lib/jets/controller/decorate/redirecting.rb +16 -0
  252. data/lib/jets/controller/decorate/url_for.rb +10 -0
  253. data/lib/jets/controller/{rack/adapter.rb → handler/apigw.rb} +36 -37
  254. data/lib/jets/controller/handler.rb +41 -0
  255. data/lib/jets/controller/middleware/main.rb +16 -8
  256. data/lib/jets/controller/middleware/{local/api_gateway.rb → mimic/apigw.rb} +40 -15
  257. data/lib/jets/controller/middleware/mimic/lambda_context.rb +44 -0
  258. data/lib/jets/controller/middleware/{local.rb → mimic.rb} +36 -51
  259. data/lib/jets/controller/rack_adapter/action.rb +35 -0
  260. data/lib/jets/controller/{rack → rack_adapter}/env.rb +39 -24
  261. data/lib/jets/controller/request/compat/params.rb +144 -0
  262. data/lib/jets/controller/request/compat/request.rb +125 -0
  263. data/lib/jets/controller/request.rb +35 -18
  264. data/lib/jets/controller/response/compat/response.rb +67 -0
  265. data/lib/jets/controller/response.rb +91 -8
  266. data/lib/jets/core.rb +136 -51
  267. data/lib/jets/core_ext/kernel.rb +2 -2
  268. data/lib/jets/core_ext/symbol.rb +5 -0
  269. data/lib/jets/core_ext.rb +4 -0
  270. data/lib/jets/dev_caching.rb +44 -0
  271. data/lib/jets/dotenv/ssm.rb +2 -2
  272. data/lib/jets/dotenv.rb +2 -1
  273. data/lib/jets/engine/configuration.rb +96 -0
  274. data/lib/jets/engine/turbines.rb +23 -0
  275. data/lib/jets/engine.rb +380 -0
  276. data/lib/jets/exception_reporting.rb +43 -0
  277. data/lib/jets/generators/job/job_generator.rb +41 -0
  278. data/lib/jets/generators/job/templates/event_types/dynamodb.rb.tt +8 -0
  279. data/lib/jets/generators/job/templates/event_types/iot.rb.tt +8 -0
  280. data/lib/jets/generators/job/templates/event_types/kinesis.rb.tt +9 -0
  281. data/lib/jets/generators/job/templates/event_types/log.rb.tt +9 -0
  282. data/lib/jets/generators/job/templates/event_types/rule.rb.tt +23 -0
  283. data/lib/jets/generators/job/templates/event_types/s3.rb.tt +11 -0
  284. data/lib/jets/{generator/templates/active_job/job/templates/job.rb.tt → generators/job/templates/event_types/scheduled.rb.tt} +3 -3
  285. data/lib/jets/generators/job/templates/event_types/sns.rb.tt +9 -0
  286. data/lib/jets/generators/job/templates/event_types/sqs.rb.tt +9 -0
  287. data/lib/jets/generators/overrides/app/USAGE +38 -0
  288. data/lib/jets/generators/overrides/app/app_generator.rb +148 -0
  289. data/lib/jets/generators/overrides/app/helpers.rb +143 -0
  290. data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/.gitignore +2 -1
  291. data/lib/jets/generators/overrides/app/templates/Gemfile.tt +25 -0
  292. data/lib/jets/generators/overrides/app/templates/Rakefile +2 -0
  293. data/lib/jets/generators/overrides/app/templates/app/assets/config/manifest.js +3 -0
  294. data/lib/jets/generators/overrides/app/templates/app/assets/stylesheets/application.css +15 -0
  295. data/lib/jets/generators/overrides/app/templates/app/javascript/application.js +5 -0
  296. data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/app/models/application_record.rb +1 -1
  297. data/lib/jets/generators/overrides/app/templates/app/views/layouts/application.html.erb.tt +30 -0
  298. data/lib/jets/generators/overrides/app/templates/bin/jets +3 -0
  299. data/lib/jets/generators/overrides/app/templates/config/application.rb.tt +15 -0
  300. data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/config/database.yml.tt +1 -1
  301. data/lib/jets/generators/overrides/app/templates/config/environments/development.rb.tt +29 -0
  302. data/lib/jets/generators/overrides/app/templates/config/environments/production.rb.tt +19 -0
  303. data/lib/jets/generators/overrides/app/templates/config/environments/test.rb.tt +23 -0
  304. data/lib/jets/generators/overrides/app/templates/config/initializers/content_security_policy.rb +31 -0
  305. data/lib/jets/generators/overrides/app/templates/config/initializers/filter_parameter_logging.rb +8 -0
  306. data/lib/jets/generators/overrides/app/templates/config/initializers/permissions_policy.rb +11 -0
  307. data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/config/routes.rb +5 -1
  308. data/lib/jets/generators/overrides/app/templates/db/.gitkeep +0 -0
  309. data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/public/404.html +6 -6
  310. data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/public/422.html +6 -6
  311. data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/public/500.html +6 -6
  312. data/lib/jets/generators/overrides/templates/erb/scaffold/index.html.erb +22 -0
  313. data/lib/jets/generators/overrides/templates/erb/scaffold/partial.html.erb +8 -0
  314. data/lib/jets/{generator/templates/rails/scaffold_controller/api_controller.rb → generators/overrides/templates/rails/scaffold_controller/api_controller.rb.tt} +5 -9
  315. data/lib/jets/generators/overrides/templates/rails/scaffold_controller/controller.rb.tt +67 -0
  316. data/lib/jets/generators.rb +112 -0
  317. data/lib/jets/info.rb +116 -0
  318. data/lib/jets/initializable.rb +95 -0
  319. data/lib/jets/job/base.rb +3 -2
  320. data/lib/jets/job/dsl/dynamodb_event.rb +19 -9
  321. data/lib/jets/job/dsl/event_source_mapping.rb +1 -1
  322. data/lib/jets/job/dsl/iot_event.rb +6 -6
  323. data/lib/jets/job/dsl/kinesis_event.rb +5 -5
  324. data/lib/jets/job/dsl/log_event.rb +2 -2
  325. data/lib/jets/job/dsl/rule_event.rb +7 -4
  326. data/lib/jets/job/dsl/s3_event.rb +1 -1
  327. data/lib/jets/job/dsl/sns_event.rb +6 -6
  328. data/lib/jets/job/dsl/sqs_event.rb +11 -11
  329. data/lib/jets/klass.rb +5 -6
  330. data/lib/jets/lambda/definition.rb +118 -0
  331. data/lib/jets/lambda/dsl/warnings.rb +57 -0
  332. data/lib/jets/lambda/dsl.rb +64 -53
  333. data/lib/jets/lambda/function.rb +3 -3
  334. data/lib/jets/lambda/function_constructor.rb +6 -6
  335. data/lib/jets/lambda/functions.rb +36 -1
  336. data/lib/jets/mega/request/source.rb +1 -2
  337. data/lib/jets/mega/request.rb +4 -4
  338. data/lib/jets/names.rb +31 -15
  339. data/lib/jets/overrides/dummy/rails.rb +11 -0
  340. data/lib/jets/overrides/lambda/marshaller.rb +10 -0
  341. data/lib/jets/overrides/puma.rb +10 -0
  342. data/lib/jets/paths.rb +243 -0
  343. data/lib/jets/{poly_fun → poly}/base_executor.rb +13 -13
  344. data/lib/jets/{poly_fun → poly}/lambda_executor.rb +2 -2
  345. data/lib/jets/{poly_fun → poly}/node_error.rb +1 -1
  346. data/lib/jets/{poly_fun → poly}/node_executor.rb +4 -4
  347. data/lib/jets/{poly_fun → poly}/python_error.rb +1 -1
  348. data/lib/jets/{poly_fun → poly}/python_executor.rb +2 -2
  349. data/lib/jets/{poly_fun.rb → poly.rb} +12 -12
  350. data/lib/jets/preheat.rb +12 -25
  351. data/lib/jets/processors/deducer.rb +2 -2
  352. data/lib/jets/processors/main_processor.rb +6 -13
  353. data/lib/jets/rack/logger.rb +77 -0
  354. data/lib/jets/router/compat/route_set.rb +177 -0
  355. data/lib/jets/router/dsl/mount.rb +40 -6
  356. data/lib/jets/router/dsl.rb +125 -105
  357. data/lib/jets/router/engine_mount.rb +36 -0
  358. data/lib/jets/router/help.rb +130 -0
  359. data/lib/jets/router/helpers/named_routes/add_full_url.rb +13 -0
  360. data/lib/jets/router/helpers/named_routes/generated.rb +197 -0
  361. data/lib/jets/router/helpers/named_routes/proxy.rb +66 -0
  362. data/lib/jets/router/matcher.rb +135 -16
  363. data/lib/jets/router/resources/options.rb +6 -4
  364. data/lib/jets/router/route/after_initialize.rb +64 -0
  365. data/lib/jets/router/route/as.rb +93 -0
  366. data/lib/jets/router/route/authorizer.rb +1 -0
  367. data/lib/jets/router/route/compat.rb +45 -0
  368. data/lib/jets/router/route/info.rb +74 -0
  369. data/lib/jets/router/route/node.rb +137 -0
  370. data/lib/jets/router/route/path.rb +93 -0
  371. data/lib/jets/router/route.rb +109 -106
  372. data/lib/jets/router/route_set.rb +214 -0
  373. data/lib/jets/router/scope.rb +204 -69
  374. data/lib/jets/router/state.rb +36 -16
  375. data/lib/jets/router/util.rb +1 -31
  376. data/lib/jets/router.rb +64 -162
  377. data/lib/jets/ruby_version_check.rb +15 -0
  378. data/lib/jets/rule/base.rb +1 -0
  379. data/lib/jets/rule/dsl.rb +7 -7
  380. data/lib/jets/secrets.rb +110 -0
  381. data/lib/jets/spec_helpers/controllers/request.rb +22 -16
  382. data/lib/jets/spec_helpers/controllers.rb +32 -24
  383. data/lib/jets/spec_helpers.rb +0 -6
  384. data/lib/jets/stack/builder.rb +3 -2
  385. data/lib/jets/stack/definition.rb +1 -4
  386. data/lib/jets/stack/function.rb +2 -2
  387. data/lib/jets/stack/main/dsl/cloudwatch.rb +4 -4
  388. data/lib/jets/stack/main/dsl/kinesis.rb +2 -2
  389. data/lib/jets/stack/main/dsl/lambda.rb +26 -20
  390. data/lib/jets/stack/main/dsl/sqs.rb +2 -2
  391. data/lib/jets/stack/output/lookup.rb +1 -1
  392. data/lib/jets/stack/output.rb +2 -2
  393. data/lib/jets/stack/parameter.rb +2 -2
  394. data/lib/jets/stack/resource.rb +3 -3
  395. data/lib/jets/stack/s3_event.rb +51 -37
  396. data/lib/jets/stack.rb +1 -1
  397. data/lib/jets/tasks/engine.rake +85 -0
  398. data/lib/jets/tasks/framework.rake +66 -0
  399. data/lib/jets/tasks/log.rake +41 -0
  400. data/lib/jets/tasks/middleware.rake +9 -0
  401. data/lib/jets/tasks/misc.rake +81 -0
  402. data/lib/jets/tasks/statistics.rake +37 -0
  403. data/lib/jets/tasks/tmp.rake +51 -0
  404. data/lib/jets/tasks/yarn.rake +29 -0
  405. data/lib/jets/tasks/zeitwerk.rake +61 -0
  406. data/lib/jets/tasks.rb +18 -0
  407. data/lib/jets/turbine/configurable.rb +36 -0
  408. data/lib/jets/turbine/configuration.rb +101 -0
  409. data/lib/jets/turbine.rb +164 -20
  410. data/lib/jets/util/camelize.rb +24 -0
  411. data/lib/jets/version.rb +1 -1
  412. data/lib/jets.rb +7 -16
  413. metadata +410 -362
  414. data/bin/release +0 -9
  415. data/lib/jets/application/defaults.rb +0 -230
  416. data/lib/jets/builders/reconfigure_rails/config/initializers/jets.rb +0 -16
  417. data/lib/jets/builders/reconfigure_rails.rb +0 -114
  418. data/lib/jets/cfn/builders/api_resources_builder.rb +0 -44
  419. data/lib/jets/cfn/builders/base_child_builder.rb +0 -88
  420. data/lib/jets/cfn/builders/controller_builder.rb +0 -50
  421. data/lib/jets/cfn/builders/function_builder.rb +0 -14
  422. data/lib/jets/cfn/builders/job_builder.rb +0 -14
  423. data/lib/jets/cfn/builders/page_builder.rb +0 -80
  424. data/lib/jets/cfn/built_template.rb +0 -15
  425. data/lib/jets/cfn/template_source.rb +0 -64
  426. data/lib/jets/commands/base.rb +0 -145
  427. data/lib/jets/commands/call.rb +0 -185
  428. data/lib/jets/commands/clean.rb +0 -19
  429. data/lib/jets/commands/configure.rb +0 -51
  430. data/lib/jets/commands/console.rb +0 -18
  431. data/lib/jets/commands/db/environment-task.rake +0 -3
  432. data/lib/jets/commands/db/tasks/dummy/app.rb +0 -25
  433. data/lib/jets/commands/db/tasks/dummy/config.rb +0 -14
  434. data/lib/jets/commands/db/tasks.rb +0 -34
  435. data/lib/jets/commands/db.rb +0 -13
  436. data/lib/jets/commands/dbconsole.rb +0 -134
  437. data/lib/jets/commands/delete.rb +0 -136
  438. data/lib/jets/commands/dynamodb/migrate.rb +0 -9
  439. data/lib/jets/commands/dynamodb/migrator.rb +0 -36
  440. data/lib/jets/commands/dynamodb.rb +0 -19
  441. data/lib/jets/commands/gems.rb +0 -13
  442. data/lib/jets/commands/help/call.md +0 -69
  443. data/lib/jets/commands/help/dynamodb/generate.md +0 -52
  444. data/lib/jets/commands/help/dynamodb/migrate.md +0 -4
  445. data/lib/jets/commands/help/routes.md +0 -16
  446. data/lib/jets/commands/help.rb +0 -9
  447. data/lib/jets/commands/import/base.rb +0 -49
  448. data/lib/jets/commands/import/cheatsheet.rb +0 -35
  449. data/lib/jets/commands/import/rack.rb +0 -16
  450. data/lib/jets/commands/import/rails.rb +0 -74
  451. data/lib/jets/commands/import/sequence.rb +0 -90
  452. data/lib/jets/commands/import/templates/config/database.yml +0 -30
  453. data/lib/jets/commands/import/templates/submodules-cheatsheet.md +0 -89
  454. data/lib/jets/commands/import.rb +0 -12
  455. data/lib/jets/commands/main.rb +0 -169
  456. data/lib/jets/commands/markdown/creator.rb +0 -58
  457. data/lib/jets/commands/markdown/index.rb +0 -27
  458. data/lib/jets/commands/markdown/page.rb +0 -125
  459. data/lib/jets/commands/markdown/shell.rb +0 -11
  460. data/lib/jets/commands/new.rb +0 -173
  461. data/lib/jets/commands/rake_command.rb +0 -61
  462. data/lib/jets/commands/rake_tasks.rb +0 -50
  463. data/lib/jets/commands/runner.rb +0 -16
  464. data/lib/jets/commands/sequence.rb +0 -104
  465. data/lib/jets/commands/stack_info.rb +0 -30
  466. data/lib/jets/commands/templates/skeleton/.env.development.tt +0 -3
  467. data/lib/jets/commands/templates/skeleton/.env.test +0 -3
  468. data/lib/jets/commands/templates/skeleton/.env.tt +0 -3
  469. data/lib/jets/commands/templates/skeleton/.jetskeep +0 -1
  470. data/lib/jets/commands/templates/skeleton/Gemfile.tt +0 -40
  471. data/lib/jets/commands/templates/skeleton/Procfile +0 -7
  472. data/lib/jets/commands/templates/skeleton/Rakefile +0 -2
  473. data/lib/jets/commands/templates/skeleton/app/models/application_item.rb +0 -2
  474. data/lib/jets/commands/templates/skeleton/app/views/layouts/application.html.erb.tt +0 -26
  475. data/lib/jets/commands/templates/skeleton/config/application.rb.tt +0 -72
  476. data/lib/jets/commands/templates/skeleton/config/dynamodb.yml +0 -22
  477. data/lib/jets/commands/templates/skeleton/config/environments/development.rb +0 -7
  478. data/lib/jets/commands/templates/skeleton/config/environments/production.rb +0 -9
  479. data/lib/jets/commands/templates/skeleton/config/environments/test.rb +0 -7
  480. data/lib/jets/commands/templates/webpacker/app/javascript/packs/application.js.tt +0 -23
  481. data/lib/jets/commands/templates/webpacker/app/javascript/packs/theme.scss.tt +0 -24
  482. data/lib/jets/commands/upgrade/templates/bin/webpack +0 -20
  483. data/lib/jets/commands/upgrade/templates/bin/webpack-dev-server +0 -19
  484. data/lib/jets/commands/upgrade/version1.rb +0 -136
  485. data/lib/jets/commands/upgrade.rb +0 -105
  486. data/lib/jets/commands/webpacker_template.rb +0 -18
  487. data/lib/jets/controller/callbacks.rb +0 -73
  488. data/lib/jets/controller/cookies/jar.rb +0 -269
  489. data/lib/jets/controller/cookies.rb +0 -38
  490. data/lib/jets/controller/error/invalid_authenticity_token.rb +0 -6
  491. data/lib/jets/controller/error.rb +0 -4
  492. data/lib/jets/controller/forgery_protection.rb +0 -43
  493. data/lib/jets/controller/layout.rb +0 -17
  494. data/lib/jets/controller/middleware/cors.rb +0 -60
  495. data/lib/jets/controller/middleware/local/mimic_aws_call.rb +0 -38
  496. data/lib/jets/controller/middleware/local/route_matcher.rb +0 -22
  497. data/lib/jets/controller/middleware/reloader.rb +0 -15
  498. data/lib/jets/controller/parameters_filter.rb +0 -29
  499. data/lib/jets/controller/params.rb +0 -117
  500. data/lib/jets/controller/redirection.rb +0 -61
  501. data/lib/jets/controller/rendering/rack_renderer.rb +0 -267
  502. data/lib/jets/controller/rendering.rb +0 -96
  503. data/lib/jets/controller/stage.rb +0 -34
  504. data/lib/jets/controller.rb +0 -3
  505. data/lib/jets/db.rb +0 -15
  506. data/lib/jets/generator/templates/erb/controller/view.html.erb +0 -2
  507. data/lib/jets/generator/templates/erb/scaffold/index.html.erb +0 -29
  508. data/lib/jets/generator/templates/rails/controller/controller.rb +0 -13
  509. data/lib/jets/generator/templates/rails/helper/helper.rb +0 -4
  510. data/lib/jets/generator/templates/rails/scaffold_controller/controller.rb +0 -67
  511. data/lib/jets/generator.rb +0 -112
  512. data/lib/jets/internal/app/controllers/jets/bare_controller.rb +0 -16
  513. data/lib/jets/internal/app/controllers/jets/rack_controller.rb +0 -12
  514. data/lib/jets/internal/app/helpers/jets/mailers_helper.rb +0 -9
  515. data/lib/jets/internal/app/jobs/jets/preheat_job.rb +0 -52
  516. data/lib/jets/internal/app/views/jets/mailers/index.html.erb +0 -8
  517. data/lib/jets/internal/app/views/jets/mailers/mailer.html.erb +0 -6
  518. data/lib/jets/internal/turbines/jets/mailer.rb +0 -52
  519. data/lib/jets/lambda/task.rb +0 -111
  520. data/lib/jets/logger.rb +0 -21
  521. data/lib/jets/middleware/configurator.rb +0 -84
  522. data/lib/jets/middleware/default_stack.rb +0 -53
  523. data/lib/jets/middleware/layer.rb +0 -34
  524. data/lib/jets/middleware/stack.rb +0 -77
  525. data/lib/jets/middleware.rb +0 -33
  526. data/lib/jets/overrides/rails/action_controller.rb +0 -13
  527. data/lib/jets/overrides/rails/asset_tag_helper.rb +0 -114
  528. data/lib/jets/overrides/rails/common_methods.rb +0 -13
  529. data/lib/jets/overrides/rails/migration_checker.rb +0 -34
  530. data/lib/jets/overrides/rails/rendering_helper.rb +0 -27
  531. data/lib/jets/overrides/rails/url_helper.rb +0 -88
  532. data/lib/jets/overrides/rails.rb +0 -6
  533. data/lib/jets/rack_server.rb +0 -86
  534. data/lib/jets/resource/api_gateway/base_path/function.rb +0 -49
  535. data/lib/jets/resource/api_gateway/base_path/role.rb +0 -76
  536. data/lib/jets/resource/api_gateway/cors.rb +0 -61
  537. data/lib/jets/resource/api_gateway/method.rb +0 -102
  538. data/lib/jets/resource/api_gateway/rest_api/routes/change.rb +0 -16
  539. data/lib/jets/resource/base.rb +0 -28
  540. data/lib/jets/resource/child_stack/api_deployment.rb +0 -58
  541. data/lib/jets/resource/child_stack/api_gateway.rb +0 -23
  542. data/lib/jets/resource/child_stack/api_resource/page.rb +0 -20
  543. data/lib/jets/resource/child_stack/api_resource.rb +0 -54
  544. data/lib/jets/resource/child_stack/base.rb +0 -24
  545. data/lib/jets/resource/lambda/function.rb +0 -221
  546. data/lib/jets/resource/logs/subscription_filter.rb +0 -31
  547. data/lib/jets/resource/permission.rb +0 -45
  548. data/lib/jets/resource.rb +0 -71
  549. data/lib/jets/router/error.rb +0 -4
  550. data/lib/jets/router/finder.rb +0 -47
  551. data/lib/jets/router/helpers/core_helper.rb +0 -27
  552. data/lib/jets/router/helpers/named_routes_helper.rb +0 -8
  553. data/lib/jets/router/helpers.rb +0 -4
  554. data/lib/jets/router/method_creator/code.rb +0 -99
  555. data/lib/jets/router/method_creator/edit.rb +0 -12
  556. data/lib/jets/router/method_creator/generic.rb +0 -11
  557. data/lib/jets/router/method_creator/index.rb +0 -48
  558. data/lib/jets/router/method_creator/new.rb +0 -12
  559. data/lib/jets/router/method_creator/root.rb +0 -15
  560. data/lib/jets/router/method_creator/show.rb +0 -12
  561. data/lib/jets/router/method_creator.rb +0 -50
  562. data/lib/jets/turbo/database_yaml.rb +0 -41
  563. data/lib/jets/turbo/project/.gitignore +0 -12
  564. data/lib/jets/turbo/project/.jetskeep +0 -1
  565. data/lib/jets/turbo/project/Gemfile +0 -16
  566. data/lib/jets/turbo/project/Rakefile +0 -2
  567. data/lib/jets/turbo/project/app/controllers/application_controller.rb +0 -2
  568. data/lib/jets/turbo/project/app/helpers/application_helper.rb +0 -2
  569. data/lib/jets/turbo/project/app/jobs/application_job.rb +0 -4
  570. data/lib/jets/turbo/project/config/application.rb +0 -5
  571. data/lib/jets/turbo/project/config/routes.rb +0 -4
  572. data/lib/jets/turbo/project/config.ru +0 -5
  573. data/lib/jets/turbo/rails.rb +0 -127
  574. data/lib/jets/turbo/templates/config/database.yml +0 -30
  575. data/lib/jets/turbo.rb +0 -56
  576. data/readme/prerelease.md +0 -6
  577. data/readme/testing.md +0 -60
  578. /data/{lib/jets → engines}/internal/app/shared/functions/jets/s3_bucket_config.rb +0 -0
  579. /data/lib/jets/{commands → command}/help/build.md +0 -0
  580. /data/lib/jets/{commands → command}/help/clean/build.md +0 -0
  581. /data/lib/jets/{commands → command}/help/clean/log.md +0 -0
  582. /data/lib/jets/{commands → command}/help/console.md +0 -0
  583. /data/lib/jets/{commands → command}/help/db/generate.md +0 -0
  584. /data/lib/jets/{commands → command}/help/dbconsole.md +0 -0
  585. /data/lib/jets/{commands → command}/help/degenerate.md +0 -0
  586. /data/lib/jets/{commands → command}/help/delete.md +0 -0
  587. /data/lib/jets/{commands → command}/help/gems/check.md +0 -0
  588. /data/lib/jets/{commands → command}/help/generate.md +0 -0
  589. /data/lib/jets/{commands → command}/help/import/rack.md +0 -0
  590. /data/lib/jets/{commands → command}/help/import/rails.md +0 -0
  591. /data/lib/jets/{commands → command}/help/runner.md +0 -0
  592. /data/lib/jets/{commands → command}/help/server.md +0 -0
  593. /data/lib/jets/{commands → command}/help/status.md +0 -0
  594. /data/lib/jets/{commands → command}/help/upgrade.md +0 -0
  595. /data/lib/jets/{commands → command}/help/url.md +0 -0
  596. /data/lib/jets/{generator/templates/active_job → generators}/job/templates/application_job.rb.tt +0 -0
  597. /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/.rspec +0 -0
  598. /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/README.md +0 -0
  599. /data/{.gitmodules → lib/jets/generators/overrides/app/templates/app/assets/images/.keep} +0 -0
  600. /data/lib/jets/{commands/templates/skeleton/db/.gitkeep → generators/overrides/app/templates/app/assets/javascripts/.keep} +0 -0
  601. /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/app/controllers/application_controller.rb +0 -0
  602. /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/app/helpers/application_helper.rb +0 -0
  603. /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/app/jobs/application_job.rb +0 -0
  604. /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/config.ru +0 -0
  605. /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/public/favicon.ico +0 -0
  606. /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/spec/controllers/posts_controller_spec.rb +0 -0
  607. /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/spec/fixtures/payloads/posts-index.json +0 -0
  608. /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/spec/fixtures/payloads/posts-show.json +0 -0
  609. /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/spec/spec_helper.rb.tt +0 -0
  610. /data/lib/jets/{generator → generators/overrides}/templates/erb/scaffold/_form.html.erb +0 -0
  611. /data/lib/jets/{generator → generators/overrides}/templates/erb/scaffold/edit.html.erb +0 -0
  612. /data/lib/jets/{generator → generators/overrides}/templates/erb/scaffold/new.html.erb +0 -0
  613. /data/lib/jets/{generator → generators/overrides}/templates/erb/scaffold/show.html.erb +0 -0
  614. /data/lib/jets/{generator → generators/overrides}/templates/rails/assets/javascript.js +0 -0
  615. /data/lib/jets/{generator → generators/overrides}/templates/rails/assets/stylesheet.css +0 -0
  616. /data/lib/jets/{generator → generators/overrides}/templates/rails/scaffold/scaffold.css +0 -0
@@ -27,16 +27,19 @@ module Jets::Job::Dsl
27
27
  end
28
28
 
29
29
  def schedule_job(expression, props={})
30
- props = props.merge(schedule_expression: expression)
30
+ props = props.merge(ScheduleExpression: expression)
31
31
  rule_event(props)
32
32
  end
33
33
 
34
34
  def rule_event(props={})
35
+ # detail should all be lowercase: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html
36
+ # source should also all be lowercase
35
37
  if props.key?(:detail)
38
+ # :description should be lowercased. It's a convenience property, and belongs at a higher level
36
39
  description = props.key?(:description) ? props.delete(:description) : rule_description
37
- rule_props = { event_pattern: props, description: description }
40
+ rule_props = { EventPattern: props, Description: description }
38
41
  else # if props.key?(:event_pattern)
39
- props[:description] ||= rule_description
42
+ props[:Description] ||= rule_description
40
43
  rule_props = props
41
44
  end
42
45
 
@@ -52,7 +55,7 @@ module Jets::Job::Dsl
52
55
  end
53
56
 
54
57
  def events_rule_definition
55
- resource = Jets::Resource::Events::Rule.new(associated_properties)
58
+ resource = Jets::Cfn::Resource::Events::Rule.new(associated_properties)
56
59
  resource.definition # returns a definition to be added by associated_resources
57
60
  end
58
61
 
@@ -2,7 +2,7 @@ module Jets::Job::Dsl
2
2
  module S3Event
3
3
  def s3_event(bucket_name, props={})
4
4
  stack_name = declare_s3_bucket_resources(bucket_name) # only set up once per bucket
5
- declare_sns_subscription(topic_arn: "!Ref #{stack_name}SnsTopic") # set up subscription every time
5
+ declare_sns_subscription(TopicArn: "!Ref #{stack_name}SnsTopic") # set up subscription every time
6
6
  end
7
7
 
8
8
  # Returns stack_name
@@ -4,22 +4,22 @@ module Jets::Job::Dsl
4
4
  if topic_name.to_s =~ /generate/
5
5
  declare_sns_topic(props.delete(:topic_properties))
6
6
  topic_arn = "!Ref {namespace}SnsTopic"
7
- props.merge!(topic_arn: topic_arn)
7
+ props.merge!(TopicArn: topic_arn)
8
8
  declare_sns_subscription(props)
9
9
  elsif topic_name.include?('!Ref') # reference shared resource
10
10
  topic_arn = topic_name # contains !Ref
11
- props.merge!(topic_arn: topic_arn)
11
+ props.merge!(TopicArn: topic_arn)
12
12
  declare_sns_subscription(props)
13
13
  else # existing topic: short name or full arn
14
14
  topic_arn = full_sns_topic_arn(topic_name)
15
- props.merge!(topic_arn: topic_arn)
15
+ props.merge!(TopicArn: topic_arn)
16
16
  declare_sns_subscription(props)
17
17
  end
18
18
  end
19
19
 
20
20
  def declare_sns_topic(props={})
21
21
  props ||= {} # props.delete(:topic_properties) can be nil
22
- r = Jets::Resource::Sns::Topic.new(props)
22
+ r = Jets::Cfn::Resource::Sns::Topic.new(props)
23
23
  with_fresh_properties do
24
24
  resource(r.definition) # add associated resource immediately
25
25
  end
@@ -27,14 +27,14 @@ module Jets::Job::Dsl
27
27
 
28
28
  def declare_sns_topic_policy(props={})
29
29
  props ||= {} # options.delete(:topic_policy_properties) can be nil
30
- r = Jets::Resource::Sns::TopicPolicy.new(props)
30
+ r = Jets::Cfn::Resource::Sns::TopicPolicy.new(props)
31
31
  with_fresh_properties do
32
32
  resource(r.definition) # add associated resource immediately
33
33
  end
34
34
  end
35
35
 
36
36
  def declare_sns_subscription(props={})
37
- r = Jets::Resource::Sns::Subscription.new(props)
37
+ r = Jets::Cfn::Resource::Sns::Subscription.new(props)
38
38
  with_fresh_properties do
39
39
  resource(r.definition) # add associated resource immediately
40
40
  end
@@ -20,14 +20,14 @@
20
20
  # class_timeout 30 # must be less than or equal to the SQS queue default timeout
21
21
  #
22
22
  # event_source_mapping(
23
- # event_source_arn: "arn:aws:sqs:us-west-2:112233445566:hello-queue",
23
+ # EventSourceArn: "arn:aws:sqs:us-west-2:112233445566:hello-queue",
24
24
  # )
25
25
  # iam_policy(
26
- # action: ["sqs:ReceiveMessage",
27
- # "sqs:DeleteMessage",
28
- # "sqs:GetQueueAttributes"],
29
- # effect: "Allow",
30
- # resource: "arn:aws:sqs:us-west-2:112233445566:hello-queue",
26
+ # Action: ["sqs:ReceiveMessage",
27
+ # "sqs:DeleteMessage",
28
+ # "sqs:GetQueueAttributes"],
29
+ # Effect: "Allow",
30
+ # Resource: "arn:aws:sqs:us-west-2:112233445566:hello-queue",
31
31
  # )
32
32
  # def dig
33
33
  # puts "dig event #{JSON.dump(event)}"
@@ -57,7 +57,7 @@ module Jets::Job::Dsl
57
57
 
58
58
  props = options # by this time options only has EventSourceMapping properties
59
59
  default = {
60
- event_source_arn: queue_arn
60
+ EventSourceArn: queue_arn
61
61
  }
62
62
  props = default.merge(props)
63
63
 
@@ -66,7 +66,7 @@ module Jets::Job::Dsl
66
66
 
67
67
  def declare_sqs_queue(props)
68
68
  props ||= {} # since options.delete(:queue_properties) can be nil
69
- r = Jets::Resource::Sqs::Queue.new(props)
69
+ r = Jets::Cfn::Resource::Sqs::Queue.new(props)
70
70
  with_fresh_properties do
71
71
  resource(r.definition) # add associated resource immediately
72
72
  end
@@ -85,11 +85,11 @@ module Jets::Job::Dsl
85
85
 
86
86
  def default_sqs_iam_policy(queue_name_arn='*')
87
87
  {
88
- action: ["sqs:ReceiveMessage",
88
+ Action: ["sqs:ReceiveMessage",
89
89
  "sqs:DeleteMessage",
90
90
  "sqs:GetQueueAttributes"],
91
- effect: "Allow",
92
- resource: queue_name_arn,
91
+ Effect: "Allow",
92
+ Resource: queue_name_arn,
93
93
  }
94
94
  end
95
95
  end
data/lib/jets/klass.rb CHANGED
@@ -17,10 +17,10 @@
17
17
  # Jets::Klass.from_path("app/functions/hello_function.rb")
18
18
  # Jets::Klass.from_path("app/shared/functions/whatever.rb")
19
19
  #
20
- # Jets::Klass.from_task(task)
20
+ # Jets::Klass.from_definition(definition)
21
21
  #
22
- # The from_task method takes a Jets::Lambda::Task as an argument and is useful
23
- # for the CloudFormation child stack generation there the registered task info
22
+ # The from_definition method takes a Jets::Lambda::Definition as an argument and is useful
23
+ # for the CloudFormation child stack generation there the registered definition info
24
24
  # is available but the path info is now.
25
25
  class Jets::Klass
26
26
  class << self
@@ -46,8 +46,8 @@ class Jets::Klass
46
46
  end
47
47
 
48
48
  APP_TYPES = %w[controller job rule authorizer]
49
- def from_task(task)
50
- class_name = task.class_name
49
+ def from_definition(definition)
50
+ class_name = definition.class_name
51
51
  filename = class_name.underscore
52
52
 
53
53
  # Examples of filename: posts_controller, hard_job, security_rule, main_authorizer
@@ -89,7 +89,6 @@ class Jets::Klass
89
89
  def modularize(class_name)
90
90
  leaves = []
91
91
  mods = class_name.split('::')[0..-2] # drop the last word
92
- # puts "mods: #{mods}"
93
92
  return Object if mods.empty?
94
93
 
95
94
  leaves = []
@@ -0,0 +1,118 @@
1
+ module Jets::Lambda
2
+ class Definition
3
+ include Jets::Util::Camelize
4
+
5
+ attr_accessor :class_name, :type
6
+ attr_reader :meth, :properties, :iam_policy, :managed_iam_policy, :lang, :associated_resources
7
+ def initialize(class_name, meth, options={})
8
+ @class_name = class_name.to_s
9
+ @meth = meth
10
+ @options = options
11
+ @type = options[:type] || get_type # controller, job, or function
12
+ @properties = camelize(options[:properties]) || {}
13
+ @iam_policy = options[:iam_policy]
14
+ @managed_iam_policy = options[:managed_iam_policy]
15
+ @lang = options[:lang] || :ruby
16
+ @associated_resources = options[:associated_resources] || {}
17
+ @replacements = options[:replacements] || {} # added to baseline replacements
18
+ end
19
+
20
+ def name
21
+ @meth
22
+ end
23
+
24
+ def public_meth?
25
+ # For anonymous classes (app/functions/hello.rb) the class name will be blank.
26
+ # These types of classes are treated specially and has only one handler method
27
+ # that is registered. So we know it is public.
28
+ return true if @class_name.nil? || @class_name == ''
29
+
30
+ # Consider all polymorphic methods public for now
31
+ return true if @lang != :ruby
32
+
33
+ klass = @class_name.constantize
34
+ public_methods = klass.public_instance_methods
35
+ public_methods.include?(meth.to_sym)
36
+ end
37
+
38
+ def build_function_iam?
39
+ !!(@iam_policy || @managed_iam_policy)
40
+ end
41
+
42
+ @@lang_exts = {
43
+ ruby: '.rb',
44
+ python: '.py',
45
+ node: '.js',
46
+ }
47
+ def lang_ext
48
+ @@lang_exts[@lang]
49
+ end
50
+
51
+ # The get_type method works for controller and job classes.
52
+ #
53
+ # Usually able to get the type from the class name. Examples:
54
+ #
55
+ # PostsController => controller
56
+ # HardJob => job
57
+ #
58
+ # However, for function types, we are not able to get the type for multiple of
59
+ # reasons. First, function types are allowed to be named with or without
60
+ # _function. Examples:
61
+ #
62
+ # path => class => type
63
+ # app/functions/hello.rb => Hello => function
64
+ # app/functions/hello_function.rb => HelloFunction => function
65
+ #
66
+ # The second reason is that functions are not regular ruby classes. Instead they
67
+ # are anonymous classes created with Class.new. When classes are created with
68
+ # Class.new the method_added hook has "" (blank string) as the self class name.
69
+ # We add the class_type to the task later on as we are constructing the class
70
+ # as part of the Class.new logic.
71
+ #
72
+ # For controller and job standard ruby classes though it can easily be
73
+ # determinated as part of initialization. So we get the type for convenience then.
74
+ #
75
+ # For anonymous function classes, we just set to nil and will later fix in
76
+ # FunctionConstructor.
77
+ #
78
+ # Returns: "controller", "job" or nil
79
+ def get_type
80
+ unless @class_name.empty? # when anonymous class is created with Class.new
81
+ @class_name.underscore.split('_').last # controller, job or rule
82
+ end
83
+ end
84
+
85
+ def full_handler(handler_function)
86
+ "#{handler_base}.#{handler_function}"
87
+ end
88
+
89
+ def handler_path
90
+ "#{handler_base}#{lang_ext}"
91
+ end
92
+
93
+ def handler_base
94
+ base = "handlers/#{@type.pluralize}/#{@class_name.underscore}"
95
+ base += "/#{@lang}" if @lang != :ruby
96
+ base += "/#{@meth}"
97
+ end
98
+
99
+ def poly_src_path
100
+ handler_path.sub("handlers/", "app/")
101
+ end
102
+
103
+ def replacements
104
+ # Merge in the custom replacements specific to each app class: ConfigRule, Job, etc.
105
+ base_replacements.merge(@replacements)
106
+ end
107
+
108
+ def base_replacements
109
+ { namespace: namespace }
110
+ end
111
+
112
+ def namespace
113
+ ns = @class_name.gsub('::','').camelize
114
+ ns += @meth.to_s.camelize if @meth
115
+ ns
116
+ end
117
+ end
118
+ end
@@ -0,0 +1,57 @@
1
+ module Jets::Lambda::Dsl
2
+ module Warnings
3
+ def iam_policy_unused_warning(managed=false)
4
+ return unless show_iam_policy_unused_warning?
5
+
6
+ managed_prefix = managed ? "managed_" : ""
7
+ use_instead = case Jets.config.cfn.build.controllers
8
+ when "one_lambda_per_contoller"
9
+ "class_#{managed_prefix}iam_policy"
10
+ when "one_lambda_for_all_controllers"
11
+ "class_#{managed_prefix}iam_policy in the ApplicationController"
12
+ end
13
+ puts <<~EOL.color(:yellow)
14
+ WARNING: #{managed_prefix}iam_policy is not respected when config.cfn.build.controllers is not set to "one_lambda_per_controller"
15
+ Current setting: config.cfn.build.controllers = "#{Jets.config.cfn.build.controllers}"
16
+ Please use #{use_instead} instead.
17
+ Docs: #{iam_docs_url(managed)}
18
+ EOL
19
+
20
+ DslEvaluator.print_code(app_call_line) if app_call_line
21
+ end
22
+
23
+ def class_iam_policy_unused_warning(managed=false)
24
+ return unless Jets.config.cfn.build.controllers == "one_lambda_for_all_controllers"
25
+ return if self.to_s == "ApplicationController" # ApplicationController not defined in job mode
26
+ return if self == Jets::PreheatJob
27
+
28
+ managed_prefix = managed ? "managed_" : ""
29
+ puts <<~EOL.color(:yellow)
30
+ WARNING: class_#{managed_prefix}iam_policy is not respected when
31
+ config.cfn.build.controllers is not set to "one_lambda_per_controller" or "one_lambda_per_method"
32
+ Current setting: config.cfn.build.controllers = "#{Jets.config.cfn.build.controllers}"
33
+ Please use class_#{managed_prefix}iam_policy in the ApplicationController instead.
34
+ Docs: #{iam_docs_url(managed)}
35
+ EOL
36
+
37
+ DslEvaluator.print_code(app_call_line) if app_call_line
38
+ end
39
+
40
+ def show_iam_policy_unused_warning?
41
+ Jets.config.cfn.build.controllers != "one_lambda_per_method" &&
42
+ self.name.include?("Controller")
43
+ end
44
+
45
+ def iam_docs_url(managed)
46
+ if managed
47
+ "http://rubyonjets.com/docs/managed-iam-policies/"
48
+ else
49
+ "http://rubyonjets.com/docs/iam-policies/"
50
+ end
51
+ end
52
+
53
+ def app_call_line
54
+ caller.find { |l| l.include?('app/controllers') }
55
+ end
56
+ end
57
+ end
@@ -2,6 +2,8 @@
2
2
  #
3
3
  # default_associated_resource_definition
4
4
  #
5
+ require "dsl_evaluator" # for DslEvaluator.print_code only
6
+
5
7
  module Jets::Lambda::Dsl
6
8
  extend ActiveSupport::Concern
7
9
 
@@ -12,6 +14,7 @@ module Jets::Lambda::Dsl
12
14
  included do
13
15
  class << self
14
16
  extend Memoist
17
+ include Warnings
15
18
 
16
19
  def class_properties(options=nil)
17
20
  if options
@@ -31,23 +34,23 @@ module Jets::Lambda::Dsl
31
34
 
32
35
  def class_environment(hash)
33
36
  environment = standardize_env(hash)
34
- class_properties(environment: environment)
37
+ class_properties(Environment: environment)
35
38
  end
36
39
  alias_method :class_env, :class_environment
37
40
 
38
41
  def environment(hash)
39
42
  environment = standardize_env(hash)
40
- properties(environment: environment)
43
+ properties(Environment: environment)
41
44
  end
42
45
  alias_method :env, :environment
43
46
 
44
47
  # Allows user to pass in hash with or without the :variables key.
45
48
  def standardize_env(hash)
46
- return hash if hash.key?(:variables)
49
+ return hash if hash.key?(:Variables)
47
50
 
48
51
  environment = {}
49
- environment[:variables] ||= {}
50
- environment[:variables].merge!(hash)
52
+ environment[:Variables] ||= {}
53
+ environment[:Variables].merge!(hash)
51
54
  environment
52
55
  end
53
56
 
@@ -99,7 +102,9 @@ module Jets::Lambda::Dsl
99
102
  if definitions.empty?
100
103
  @iam_policy
101
104
  else
102
- @iam_policy = definitions.flatten
105
+ iam_policy_unused_warning(managed=false)
106
+ @iam_policy ||= []
107
+ @iam_policy += definitions.flatten
103
108
  end
104
109
  end
105
110
 
@@ -108,7 +113,9 @@ module Jets::Lambda::Dsl
108
113
  if definitions.empty?
109
114
  @class_iam_policy
110
115
  else
111
- @class_iam_policy = definitions.flatten
116
+ class_iam_policy_unused_warning(managed=false)
117
+ @class_iam_policy ||= []
118
+ @class_iam_policy += definitions.flatten
112
119
  end
113
120
  end
114
121
 
@@ -117,7 +124,9 @@ module Jets::Lambda::Dsl
117
124
  if definitions.empty?
118
125
  @managed_iam_policy
119
126
  else
120
- @managed_iam_policy = definitions.flatten
127
+ iam_policy_unused_warning(managed=true)
128
+ @managed_iam_policy ||= []
129
+ @managed_iam_policy += definitions.flatten
121
130
  end
122
131
  end
123
132
 
@@ -126,7 +135,9 @@ module Jets::Lambda::Dsl
126
135
  if definitions.empty?
127
136
  @class_managed_iam_policy
128
137
  else
129
- @class_managed_iam_policy = definitions.flatten
138
+ class_iam_policy_unused_warning(managed=true)
139
+ @class_managed_iam_policy ||= []
140
+ @class_managed_iam_policy += definitions.flatten
130
141
  end
131
142
  end
132
143
 
@@ -142,7 +153,7 @@ module Jets::Lambda::Dsl
142
153
  @associated_resources || []
143
154
  else
144
155
  @associated_resources ||= []
145
- associated_resource = Jets::Resource::Associated.new(definitions)
156
+ associated_resource = Jets::Cfn::Resource::Associated.new(definitions)
146
157
  associated_resource.multiple_resources = @multiple_resources
147
158
  @associated_resources << associated_resource
148
159
  @associated_resources.flatten!
@@ -208,7 +219,7 @@ module Jets::Lambda::Dsl
208
219
 
209
220
  logical_id = logical_id.to_s.sub(/\d+$/,'')
210
221
  new_definition = { "#{logical_id}#{n}" => attributes }
211
- numbered_resources << Jets::Resource::Associated.new(new_definition)
222
+ numbered_resources << Jets::Cfn::Resource::Associated.new(new_definition)
212
223
  n += 1
213
224
  end
214
225
  @associated_resources = numbered_resources
@@ -248,13 +259,13 @@ module Jets::Lambda::Dsl
248
259
  return if %w[initialize method_missing].include?(meth.to_s)
249
260
  return unless public_method_defined?(meth)
250
261
 
251
- register_task(meth)
262
+ register_definition(meth)
252
263
  end
253
264
 
254
- def register_task(meth, lang=:ruby)
265
+ def register_definition(meth, lang=:ruby)
255
266
  # Note: for anonymous classes like for app/functions self.name is ""
256
267
  # We adjust the class name when we build the functions later in
257
- # FunctionContstructor#adjust_tasks.
268
+ # FunctionContstructor#adjust_definitions.
258
269
 
259
270
  # At this point we can use the current associated_properties and defined the
260
271
  # associated resource with the Lambda function.
@@ -268,7 +279,7 @@ module Jets::Lambda::Dsl
268
279
  add_logical_id_counter
269
280
  end
270
281
 
271
- all_tasks[meth] = Jets::Lambda::Task.new(self.name, meth,
282
+ all_definitions[meth] = Jets::Lambda::Definition.new(self.name, meth,
272
283
  properties: @properties, # lambda function properties
273
284
  iam_policy: @iam_policy,
274
285
  managed_iam_policy: @managed_iam_policy,
@@ -279,7 +290,7 @@ module Jets::Lambda::Dsl
279
290
  # Done storing options, clear out for the next added method.
280
291
  clear_properties
281
292
  # Important to clear @properties at the end of registering outside of
282
- # register_task because register_task is overridden in Jets::Job::Dsl
293
+ # register_definition because register_definition is overridden in Jets::Job::Dsl
283
294
  #
284
295
  # Jets::Job::Base < Jets::Lambda::Functions
285
296
  #
@@ -302,28 +313,28 @@ module Jets::Lambda::Dsl
302
313
  @associated_properties = nil
303
314
  end
304
315
 
305
- # Returns the all tasks for this class with their method names as keys.
316
+ # Returns the all definitions for this class with their method names as keys.
306
317
  #
307
318
  # ==== Returns
308
- # OrderedHash:: An ordered hash with tasks names as keys and Task
319
+ # OrderedHash:: An ordered hash with definitions names as keys and definition
309
320
  # objects as values.
310
321
  #
311
- def all_tasks
312
- @all_tasks ||= ActiveSupport::OrderedHash.new
322
+ def all_definitions
323
+ @all_definitions ||= ActiveSupport::OrderedHash.new
313
324
  end
314
- # Do not call all tasks outside this class, instead use: tasks or lambda functions
315
- private :all_tasks
325
+ # Do not call all definitions outside this class, instead use: definitions or lambda functions
326
+ private :all_definitions
316
327
 
317
- # Goes up the class inheritance chain to build the tasks.
328
+ # Goes up the class inheritance chain to build the definitions.
318
329
  #
319
330
  # Example heirarchy:
320
331
  #
321
332
  # Jets::Lambda::Functions > Jets::Controller::Base > ApplicationController ...
322
333
  # > PostsController > ChildPostsController
323
334
  #
324
- # Do not include tasks from the direct subclasses of Jets::Lambda::Functions
335
+ # Do not include definitions from the direct subclasses of Jets::Lambda::Functions
325
336
  # because those classes are abstract. Dont want those methods to be included.
326
- def find_all_tasks(options={})
337
+ def find_all_definitions(options={})
327
338
  public = options[:public].nil? ? true : options[:public]
328
339
  klass = self
329
340
  direct_subclasses = Jets::Lambda::Functions.subclasses
@@ -331,53 +342,53 @@ module Jets::Lambda::Dsl
331
342
 
332
343
  # Go up class inheritance and builds lookup structure in memory
333
344
  until direct_subclasses.include?(klass)
334
- lookup << klass.send(:all_tasks) # one place we want to call private all_tasks method
345
+ lookup << klass.send(:all_definitions) # one place we want to call private all_definitions method
335
346
  klass = klass.superclass
336
347
  end
337
- merged_tasks = ActiveSupport::OrderedHash.new
338
- # Go back down the class inheritance chain in reverse order and merge the tasks
339
- lookup.reverse.each do |tasks_hash|
340
- # tasks_hash is a result of all_tasks. Example: PostsController.all_tasks
341
- merged_tasks.merge!(tasks_hash)
348
+ merged_definitions = ActiveSupport::OrderedHash.new
349
+ # Go back down the class inheritance chain in reverse order and merge the definitions
350
+ lookup.reverse.each do |definitions_hash|
351
+ # definitions_hash is a result of all_definitions. Example: PostsController.all_definitions
352
+ merged_definitions.merge!(definitions_hash)
342
353
  end
343
354
 
344
355
  # The cfn builders required the right final child class to build the lambda functions correctly.
345
- merged_tasks.each do |meth, task|
356
+ merged_definitions.each do |meth, definition|
346
357
  # Override the class name for the cfn builders
347
- task = task.clone # do not stomp over current tasks since things are usually looked by reference
348
- task.instance_variable_set(:@class_name, self.name)
349
- merged_tasks[meth] = task
358
+ definition = definition.clone # do not stomp over current definitions since things are usually looked by reference
359
+ definition.instance_variable_set(:@class_name, self.name)
360
+ merged_definitions[meth] = definition
350
361
  end
351
362
 
352
363
  # Methods can be made private with the :private keyword after the method has been defined.
353
364
  # To account for this, loop back thorugh all the methods and check if the method is indeed public.
354
- tasks = ActiveSupport::OrderedHash.new
355
- merged_tasks.each do |meth, task|
365
+ definitions = ActiveSupport::OrderedHash.new
366
+ merged_definitions.each do |meth, definition|
356
367
  if public
357
- tasks[meth] = task if task.public_meth?
368
+ definitions[meth] = definition if definition.public_meth?
358
369
  else
359
- tasks[meth] = task unless task.public_meth?
370
+ definitions[meth] = definition unless definition.public_meth?
360
371
  end
361
372
  end
362
- tasks
373
+ definitions
363
374
  end
364
- memoize :find_all_tasks
375
+ memoize :find_all_definitions
365
376
 
366
- def all_public_tasks
367
- find_all_tasks(public: true)
377
+ def all_public_definitions
378
+ find_all_definitions(public: true)
368
379
  end
369
380
 
370
- def all_private_tasks
371
- find_all_tasks(public: false)
381
+ def all_private_definitions
382
+ find_all_definitions(public: false)
372
383
  end
373
384
 
374
- # Returns the tasks for this class in Array form.
385
+ # Returns the definitions for this class in Array form.
375
386
  #
376
387
  # ==== Returns
377
- # Array of task objects
388
+ # Array of definition objects
378
389
  #
379
- def tasks
380
- all_public_tasks.values
390
+ def definitions
391
+ all_public_definitions.values
381
392
  end
382
393
 
383
394
  # The public methods defined in the project app class ulimately become
@@ -386,18 +397,18 @@ module Jets::Lambda::Dsl
386
397
  # Example return value:
387
398
  # [:index, :new, :create, :show]
388
399
  def lambda_functions
389
- all_public_tasks.keys
400
+ all_public_definitions.keys
390
401
  end
391
402
 
392
- # Used in Jets::Cfn::Builders::Interface#build
403
+ # Used in Jets::Cfn::Builder::Interface#build
393
404
  # Overridden in rule/dsl.rb
394
405
  def build?
395
- !tasks.empty?
406
+ !definitions.empty?
396
407
  end
397
408
 
398
409
  # Polymorphic support
399
410
  def defpoly(lang, meth)
400
- register_task(meth, lang)
411
+ register_definition(meth, lang)
401
412
  end
402
413
 
403
414
  def python(meth)
@@ -13,11 +13,11 @@ module Jets::Lambda
13
13
  end
14
14
 
15
15
  def self.handler
16
- handler_task.meth
16
+ handler_definition.meth
17
17
  end
18
18
 
19
- def self.handler_task
20
- tasks.first
19
+ def self.handler_definition
20
+ definitions.first
21
21
  end
22
22
 
23
23
  # Used by main_processor.rb. Same interface as controllers and jobs.
@@ -36,18 +36,18 @@ module Jets::Lambda
36
36
  code = IO.read(@code_path)
37
37
  function_klass = Class.new(Jets::Lambda::Function)
38
38
  function_klass.module_eval(code, @code_path)
39
- adjust_tasks(function_klass)
39
+ adjust_definitions(function_klass)
40
40
  function_klass # assign this to a Constant for a pretty class name
41
41
  end
42
42
 
43
- # For anonymous classes method_added during task registration contains ""
43
+ # For anonymous classes method_added during definition registration contains ""
44
44
  # for the class name. We adjust it here.
45
- def adjust_tasks(klass)
45
+ def adjust_definitions(klass)
46
46
  class_name = @code_path.to_s.sub(/.*\/functions\//,'').sub(/\.rb$/, '')
47
47
  class_name = class_name.camelize
48
- klass.tasks.each do |task|
49
- task.class_name = class_name
50
- task.type = "function"
48
+ klass.definitions.each do |definition|
49
+ definition.class_name = class_name
50
+ definition.type = "function"
51
51
  end
52
52
  end
53
53
  end