jets 0.8.0 → 0.8.1

Sign up to get free protection for your applications and to get access to all the features.
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