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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/Gemfile.lock +3 -1
- data/jets.gemspec +2 -0
- data/lib/jets/application.rb +1 -1
- data/lib/jets/cfn.rb +1 -2
- data/lib/jets/cfn/builders.rb +19 -0
- data/lib/jets/cfn/builders/api_deployment_builder.rb +32 -0
- data/lib/jets/cfn/{template_builders → builders}/api_gateway_builder.rb +10 -21
- data/lib/jets/cfn/builders/base_child_builder.rb +49 -0
- data/lib/jets/cfn/{template_builders → builders}/controller_builder.rb +7 -7
- data/lib/jets/cfn/{template_builders → builders}/function_builder.rb +1 -2
- data/lib/jets/cfn/builders/interface.rb +128 -0
- data/lib/jets/cfn/{template_builders → builders}/job_builder.rb +2 -2
- data/lib/jets/cfn/builders/parent_builder.rb +84 -0
- data/lib/jets/cfn/{template_builders → builders}/rule_builder.rb +4 -5
- data/lib/jets/commands/base.rb +1 -1
- data/lib/jets/commands/build.rb +11 -15
- data/lib/jets/commands/delete.rb +12 -0
- data/lib/jets/commands/templates/skeleton/Gemfile.tt +1 -0
- data/lib/jets/commands/templates/skeleton/config/application.rb.tt +1 -1
- data/lib/jets/commands/url.rb +10 -12
- data/lib/jets/controller/base.rb +2 -2
- data/lib/jets/core.rb +1 -1
- data/lib/jets/core_ext/kernel.rb +11 -1
- data/lib/jets/internal/app/controllers/jets/public_controller.rb +11 -8
- data/lib/jets/lambda/dsl.rb +1 -1
- data/lib/jets/lambda/task.rb +9 -1
- data/lib/jets/naming.rb +2 -2
- data/lib/jets/pascalize.rb +9 -1
- data/lib/jets/poly_fun/base_executor.rb +2 -2
- data/lib/jets/preheat.rb +2 -2
- data/lib/jets/rails_overrides/common_methods.rb +1 -1
- data/lib/jets/resource.rb +55 -5
- data/lib/jets/resource/api_gateway.rb +7 -0
- data/lib/jets/resource/{route → api_gateway}/cors.rb +11 -10
- data/lib/jets/resource/api_gateway/deployment.rb +75 -0
- data/lib/jets/resource/{route.rb → api_gateway/method.rb} +26 -22
- data/lib/jets/{cfn/template_mappers/gateway_resource_mapper.rb → resource/api_gateway/resource.rb} +41 -27
- data/lib/jets/resource/api_gateway/rest_api.rb +23 -0
- data/lib/jets/resource/base.rb +17 -0
- data/lib/jets/resource/child_stack.rb +5 -0
- data/lib/jets/resource/child_stack/api_deployment.rb +58 -0
- data/lib/jets/resource/child_stack/api_gateway.rb +29 -0
- data/lib/jets/resource/child_stack/app_class.rb +81 -0
- data/lib/jets/resource/function.rb +184 -0
- data/lib/jets/resource/iam.rb +8 -0
- data/lib/jets/resource/iam/application_role.rb +27 -0
- data/lib/jets/resource/iam/base_role_definition.rb +44 -0
- data/lib/jets/resource/iam/class_role.rb +25 -0
- data/lib/jets/resource/iam/function_role.rb +25 -0
- data/lib/jets/{cfn/template_builders/managed_iam_policy/base_policy.rb → resource/iam/managed_policy.rb} +6 -6
- data/lib/jets/resource/iam/policy_document.rb +43 -0
- data/lib/jets/resource/permission.rb +38 -21
- data/lib/jets/resource/replacer.rb +50 -17
- data/lib/jets/resource/s3.rb +17 -0
- data/lib/jets/route.rb +3 -1
- data/lib/jets/rule/dsl.rb +7 -1
- data/lib/jets/server/route_matcher.rb +2 -1
- data/lib/jets/version.rb +1 -1
- metadata +46 -52
- data/lib/jets/cfn/template_builders.rb +0 -25
- data/lib/jets/cfn/template_builders/api_gateway_deployment_builder.rb +0 -38
- data/lib/jets/cfn/template_builders/base_child_builder.rb +0 -72
- data/lib/jets/cfn/template_builders/function_properties.rb +0 -6
- data/lib/jets/cfn/template_builders/function_properties/base_builder.rb +0 -128
- data/lib/jets/cfn/template_builders/function_properties/node_builder.rb +0 -12
- data/lib/jets/cfn/template_builders/function_properties/python_builder.rb +0 -12
- data/lib/jets/cfn/template_builders/function_properties/ruby_builder.rb +0 -13
- data/lib/jets/cfn/template_builders/iam_policy.rb +0 -6
- data/lib/jets/cfn/template_builders/iam_policy/application_policy.rb +0 -19
- data/lib/jets/cfn/template_builders/iam_policy/base_policy.rb +0 -57
- data/lib/jets/cfn/template_builders/iam_policy/class_policy.rb +0 -20
- data/lib/jets/cfn/template_builders/iam_policy/function_policy.rb +0 -21
- data/lib/jets/cfn/template_builders/interface.rb +0 -97
- data/lib/jets/cfn/template_builders/managed_iam_policy.rb +0 -6
- data/lib/jets/cfn/template_builders/managed_iam_policy/application_policy.rb +0 -11
- data/lib/jets/cfn/template_builders/managed_iam_policy/class_policy.rb +0 -10
- data/lib/jets/cfn/template_builders/managed_iam_policy/function_policy.rb +0 -10
- data/lib/jets/cfn/template_builders/parent_builder.rb +0 -95
- data/lib/jets/cfn/template_builders/templates/minimal-stack.yml +0 -9
- data/lib/jets/cfn/template_mappers.rb +0 -22
- data/lib/jets/cfn/template_mappers/api_gateway_deployment_mapper.rb +0 -48
- data/lib/jets/cfn/template_mappers/api_gateway_mapper.rb +0 -4
- data/lib/jets/cfn/template_mappers/child_mapper.rb +0 -41
- data/lib/jets/cfn/template_mappers/controller_mapper.rb +0 -36
- data/lib/jets/cfn/template_mappers/function_mapper.rb +0 -4
- data/lib/jets/cfn/template_mappers/iam_policy.rb +0 -6
- data/lib/jets/cfn/template_mappers/iam_policy/application_policy_mapper.rb +0 -37
- data/lib/jets/cfn/template_mappers/iam_policy/base_policy_mapper.rb +0 -49
- data/lib/jets/cfn/template_mappers/iam_policy/class_policy_mapper.rb +0 -42
- data/lib/jets/cfn/template_mappers/iam_policy/function_policy_mapper.rb +0 -42
- data/lib/jets/cfn/template_mappers/job_mapper.rb +0 -4
- data/lib/jets/cfn/template_mappers/lambda_function_mapper.rb +0 -52
- data/lib/jets/cfn/template_mappers/rule_mapper.rb +0 -5
- data/lib/jets/resource/attributes.rb +0 -46
- data/lib/jets/resource/creator.rb +0 -17
- data/lib/jets/resource/replacer/base.rb +0 -98
- data/lib/jets/resource/replacer/config_rule.rb +0 -18
- 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
|