jets 0.8.0 → 0.8.1

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 (100) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +6 -0
  3. data/Gemfile.lock +3 -1
  4. data/jets.gemspec +2 -0
  5. data/lib/jets/application.rb +1 -1
  6. data/lib/jets/cfn.rb +1 -2
  7. data/lib/jets/cfn/builders.rb +19 -0
  8. data/lib/jets/cfn/builders/api_deployment_builder.rb +32 -0
  9. data/lib/jets/cfn/{template_builders → builders}/api_gateway_builder.rb +10 -21
  10. data/lib/jets/cfn/builders/base_child_builder.rb +49 -0
  11. data/lib/jets/cfn/{template_builders → builders}/controller_builder.rb +7 -7
  12. data/lib/jets/cfn/{template_builders → builders}/function_builder.rb +1 -2
  13. data/lib/jets/cfn/builders/interface.rb +128 -0
  14. data/lib/jets/cfn/{template_builders → builders}/job_builder.rb +2 -2
  15. data/lib/jets/cfn/builders/parent_builder.rb +84 -0
  16. data/lib/jets/cfn/{template_builders → builders}/rule_builder.rb +4 -5
  17. data/lib/jets/commands/base.rb +1 -1
  18. data/lib/jets/commands/build.rb +11 -15
  19. data/lib/jets/commands/delete.rb +12 -0
  20. data/lib/jets/commands/templates/skeleton/Gemfile.tt +1 -0
  21. data/lib/jets/commands/templates/skeleton/config/application.rb.tt +1 -1
  22. data/lib/jets/commands/url.rb +10 -12
  23. data/lib/jets/controller/base.rb +2 -2
  24. data/lib/jets/core.rb +1 -1
  25. data/lib/jets/core_ext/kernel.rb +11 -1
  26. data/lib/jets/internal/app/controllers/jets/public_controller.rb +11 -8
  27. data/lib/jets/lambda/dsl.rb +1 -1
  28. data/lib/jets/lambda/task.rb +9 -1
  29. data/lib/jets/naming.rb +2 -2
  30. data/lib/jets/pascalize.rb +9 -1
  31. data/lib/jets/poly_fun/base_executor.rb +2 -2
  32. data/lib/jets/preheat.rb +2 -2
  33. data/lib/jets/rails_overrides/common_methods.rb +1 -1
  34. data/lib/jets/resource.rb +55 -5
  35. data/lib/jets/resource/api_gateway.rb +7 -0
  36. data/lib/jets/resource/{route → api_gateway}/cors.rb +11 -10
  37. data/lib/jets/resource/api_gateway/deployment.rb +75 -0
  38. data/lib/jets/resource/{route.rb → api_gateway/method.rb} +26 -22
  39. data/lib/jets/{cfn/template_mappers/gateway_resource_mapper.rb → resource/api_gateway/resource.rb} +41 -27
  40. data/lib/jets/resource/api_gateway/rest_api.rb +23 -0
  41. data/lib/jets/resource/base.rb +17 -0
  42. data/lib/jets/resource/child_stack.rb +5 -0
  43. data/lib/jets/resource/child_stack/api_deployment.rb +58 -0
  44. data/lib/jets/resource/child_stack/api_gateway.rb +29 -0
  45. data/lib/jets/resource/child_stack/app_class.rb +81 -0
  46. data/lib/jets/resource/function.rb +184 -0
  47. data/lib/jets/resource/iam.rb +8 -0
  48. data/lib/jets/resource/iam/application_role.rb +27 -0
  49. data/lib/jets/resource/iam/base_role_definition.rb +44 -0
  50. data/lib/jets/resource/iam/class_role.rb +25 -0
  51. data/lib/jets/resource/iam/function_role.rb +25 -0
  52. data/lib/jets/{cfn/template_builders/managed_iam_policy/base_policy.rb → resource/iam/managed_policy.rb} +6 -6
  53. data/lib/jets/resource/iam/policy_document.rb +43 -0
  54. data/lib/jets/resource/permission.rb +38 -21
  55. data/lib/jets/resource/replacer.rb +50 -17
  56. data/lib/jets/resource/s3.rb +17 -0
  57. data/lib/jets/route.rb +3 -1
  58. data/lib/jets/rule/dsl.rb +7 -1
  59. data/lib/jets/server/route_matcher.rb +2 -1
  60. data/lib/jets/version.rb +1 -1
  61. metadata +46 -52
  62. data/lib/jets/cfn/template_builders.rb +0 -25
  63. data/lib/jets/cfn/template_builders/api_gateway_deployment_builder.rb +0 -38
  64. data/lib/jets/cfn/template_builders/base_child_builder.rb +0 -72
  65. data/lib/jets/cfn/template_builders/function_properties.rb +0 -6
  66. data/lib/jets/cfn/template_builders/function_properties/base_builder.rb +0 -128
  67. data/lib/jets/cfn/template_builders/function_properties/node_builder.rb +0 -12
  68. data/lib/jets/cfn/template_builders/function_properties/python_builder.rb +0 -12
  69. data/lib/jets/cfn/template_builders/function_properties/ruby_builder.rb +0 -13
  70. data/lib/jets/cfn/template_builders/iam_policy.rb +0 -6
  71. data/lib/jets/cfn/template_builders/iam_policy/application_policy.rb +0 -19
  72. data/lib/jets/cfn/template_builders/iam_policy/base_policy.rb +0 -57
  73. data/lib/jets/cfn/template_builders/iam_policy/class_policy.rb +0 -20
  74. data/lib/jets/cfn/template_builders/iam_policy/function_policy.rb +0 -21
  75. data/lib/jets/cfn/template_builders/interface.rb +0 -97
  76. data/lib/jets/cfn/template_builders/managed_iam_policy.rb +0 -6
  77. data/lib/jets/cfn/template_builders/managed_iam_policy/application_policy.rb +0 -11
  78. data/lib/jets/cfn/template_builders/managed_iam_policy/class_policy.rb +0 -10
  79. data/lib/jets/cfn/template_builders/managed_iam_policy/function_policy.rb +0 -10
  80. data/lib/jets/cfn/template_builders/parent_builder.rb +0 -95
  81. data/lib/jets/cfn/template_builders/templates/minimal-stack.yml +0 -9
  82. data/lib/jets/cfn/template_mappers.rb +0 -22
  83. data/lib/jets/cfn/template_mappers/api_gateway_deployment_mapper.rb +0 -48
  84. data/lib/jets/cfn/template_mappers/api_gateway_mapper.rb +0 -4
  85. data/lib/jets/cfn/template_mappers/child_mapper.rb +0 -41
  86. data/lib/jets/cfn/template_mappers/controller_mapper.rb +0 -36
  87. data/lib/jets/cfn/template_mappers/function_mapper.rb +0 -4
  88. data/lib/jets/cfn/template_mappers/iam_policy.rb +0 -6
  89. data/lib/jets/cfn/template_mappers/iam_policy/application_policy_mapper.rb +0 -37
  90. data/lib/jets/cfn/template_mappers/iam_policy/base_policy_mapper.rb +0 -49
  91. data/lib/jets/cfn/template_mappers/iam_policy/class_policy_mapper.rb +0 -42
  92. data/lib/jets/cfn/template_mappers/iam_policy/function_policy_mapper.rb +0 -42
  93. data/lib/jets/cfn/template_mappers/job_mapper.rb +0 -4
  94. data/lib/jets/cfn/template_mappers/lambda_function_mapper.rb +0 -52
  95. data/lib/jets/cfn/template_mappers/rule_mapper.rb +0 -5
  96. data/lib/jets/resource/attributes.rb +0 -46
  97. data/lib/jets/resource/creator.rb +0 -17
  98. data/lib/jets/resource/replacer/base.rb +0 -98
  99. data/lib/jets/resource/replacer/config_rule.rb +0 -18
  100. data/lib/jets/resource/route/attributes.rb +0 -8
@@ -1,98 +0,0 @@
1
- module Jets::Resource::Replacer
2
- class Base
3
- extend Memoist
4
-
5
- def initialize(task)
6
- @task = task
7
- @app_class = task.class_name.to_s
8
- end
9
-
10
- # Replace placeholder hash values with replacements. This does a deep replacement
11
- # to the hash values. The replacement "key" is the string value within the value.
12
- #
13
- # Example:
14
- #
15
- # attributes = {whatever: "foo REPLACE_KEY bar" }
16
- # replace_placeholders(attributes, REPLACE_KEY: "blah:arn")
17
- # => {whatever: "foo blah:arn bar" }
18
- #
19
- # Also, we always replace the special {namespace} value in the hash values. Example:
20
- #
21
- # attributes = {whatever: "{namespace}LambdaFunction" }
22
- # replace_placeholders(attributes, {})
23
- # => {whatever: "foo PostsControllerIndexLambdaFunction bar" }
24
- #
25
- def replace_placeholders(attributes, replacements={})
26
- update_values(attributes, replacements)
27
- end
28
-
29
- def update_values(original, replacements={})
30
- case original
31
- when Array
32
- original.map { |v| update_values(v, replacements) }
33
- when Hash
34
- initializer = original.map do |k, v|
35
- [k, update_values(v, replacements)]
36
- end
37
- Hash[initializer]
38
- else
39
- replace_value(original, replacements)
40
- end
41
- end
42
-
43
- def replace_value(text, replacements={})
44
- text = text.to_s # normalize to String
45
- # custom replacements
46
- replacements.each do |k,v|
47
- text = text.gsub(k.to_s, v)
48
- end
49
- # Values to always replace
50
- text = replace_core_values(text)
51
- text
52
- end
53
-
54
- # Values to always replace.
55
- def replace_core_values(text)
56
- text = text.gsub('{namespace}', namespace) # always replace namespace
57
- core_replacements.each do |k,v|
58
- text = text.gsub("{#{k}}", v)
59
- end
60
- text
61
- end
62
-
63
- # Meant to beoverriden by different resource types in the child class.
64
- # These values replace the variables in the resource template.
65
- #
66
- # Example:
67
- #
68
- # In child class:
69
- #
70
- # def core_replacements
71
- # { config_rule_name: "my-config-rule" }
72
- # end
73
- #
74
- # And we declare these properties in the resource:
75
- #
76
- # properties: {
77
- # config_rule_name: "{config_rule_name}",
78
- # ...
79
- #
80
- # The replacements result in:
81
- #
82
- # properties: {
83
- # config_rule_name: "my-config-rule",
84
- # ...
85
- #
86
- def core_replacements
87
- {}
88
- end
89
-
90
- # Full camelized namespace
91
- # Example: HardJobDig, PostsControllerIndex, SleepJobPerform
92
- def namespace
93
- class_name = @task.class_name.gsub('::','')
94
- function_name = @task.meth.to_s.camelize
95
- "#{class_name}#{function_name}"
96
- end
97
- end
98
- end
@@ -1,18 +0,0 @@
1
- # Overrides
2
- # replace_core_values
3
- module Jets::Resource::Replacer
4
- class ConfigRule < Base
5
- def core_replacements
6
- {
7
- config_rule_name: config_rule_name
8
- }
9
- end
10
-
11
- # Conventional config rule name
12
- # Similar logic in Rule::Dsl.managed_rule
13
- def config_rule_name
14
- name_without_rule = @app_class.underscore.gsub(/_rule$/,'')
15
- "#{name_without_rule}_#{@task.meth}".dasherize
16
- end
17
- end
18
- end
@@ -1,8 +0,0 @@
1
- class Jets::Resource::Route
2
- class Attributes < Jets::Resource::Attributes
3
- def cors(route)
4
- Cors.new(route)
5
- end
6
- memoize :cors
7
- end
8
- end