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