jets 0.7.1 → 0.8.0

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 (41) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +7 -0
  3. data/Gemfile.lock +1 -1
  4. data/lib/jets.rb +2 -0
  5. data/lib/jets/cfn/ship.rb +2 -0
  6. data/lib/jets/cfn/template_builders/base_child_builder.rb +14 -0
  7. data/lib/jets/cfn/template_builders/controller_builder.rb +4 -74
  8. data/lib/jets/cfn/template_builders/interface.rb +5 -0
  9. data/lib/jets/cfn/template_builders/job_builder.rb +1 -55
  10. data/lib/jets/cfn/template_builders/rule_builder.rb +7 -58
  11. data/lib/jets/cfn/template_mappers.rb +1 -4
  12. data/lib/jets/cfn/template_mappers/child_mapper.rb +1 -1
  13. data/lib/jets/cfn/template_mappers/gateway_resource_mapper.rb +5 -4
  14. data/lib/jets/commands/build.rb +2 -2
  15. data/lib/jets/commands/templates/skeleton/config/application.rb.tt +4 -1
  16. data/lib/jets/internal/app/jobs/jets/preheat_job.rb +2 -2
  17. data/lib/jets/job.rb +0 -1
  18. data/lib/jets/job/dsl.rb +52 -34
  19. data/lib/jets/lambda/dsl.rb +43 -1
  20. data/lib/jets/lambda/task.rb +2 -1
  21. data/lib/jets/pascalize.rb +26 -8
  22. data/lib/jets/resource.rb +7 -0
  23. data/lib/jets/resource/attributes.rb +46 -0
  24. data/lib/jets/resource/creator.rb +17 -0
  25. data/lib/jets/resource/permission.rb +43 -0
  26. data/lib/jets/resource/replacer.rb +40 -0
  27. data/lib/jets/resource/replacer/base.rb +98 -0
  28. data/lib/jets/resource/replacer/config_rule.rb +18 -0
  29. data/lib/jets/resource/route.rb +67 -0
  30. data/lib/jets/resource/route/attributes.rb +8 -0
  31. data/lib/jets/resource/route/cors.rb +60 -0
  32. data/lib/jets/rule.rb +0 -2
  33. data/lib/jets/rule/dsl.rb +71 -31
  34. data/lib/jets/version.rb +1 -1
  35. metadata +12 -8
  36. data/lib/jets/cfn/template_mappers/config_rule_mapper.rb +0 -34
  37. data/lib/jets/cfn/template_mappers/events_rule_mapper.rb +0 -40
  38. data/lib/jets/cfn/template_mappers/gateway_method_mapper.rb +0 -56
  39. data/lib/jets/job/task.rb +0 -17
  40. data/lib/jets/rule/aws_managed_rule.rb +0 -12
  41. data/lib/jets/rule/task.rb +0 -44
@@ -1,56 +0,0 @@
1
- class Jets::Cfn::TemplateMappers
2
- class GatewayMethodMapper
3
- def initialize(route)
4
- @route = route # {to: "posts#index", path: "posts", method: :get}
5
- end
6
-
7
- def logical_id
8
- if @route.homepage?
9
- "RootPathHomepageGetApiGatewayMethod"
10
- else
11
- "#{path_method_id}ApiGatewayMethod"
12
- end
13
- end
14
-
15
- def path_method_id
16
- path = @route.path.gsub(':','_').gsub('/','_').gsub('*','')
17
- method = @route.method.downcase
18
- "#{path}_#{method}".camelize
19
- end
20
-
21
- # Example returns:
22
- # ApiGatewayResourcePostsIdEdit or
23
- # ApiGatewayResourcePostsId or
24
- # ApiGatewayResourcePosts
25
- def gateway_resource_logical_id
26
- resource_map.logical_id
27
- end
28
-
29
- def cors_logical_id
30
- resource_map.cors_logical_id
31
- end
32
-
33
- def resource_map
34
- @resource_map ||= GatewayResourceMapper.new(@route.path)
35
- end
36
-
37
- def lambda_function_logical_id
38
- "#{controller_action_logical_id}LambdaFunction"
39
- end
40
-
41
- def permission_logical_id
42
- "#{controller_action_logical_id}ApiGatewayPermission"
43
- end
44
-
45
- # Example: PostsControllerIndex
46
- def controller_action_logical_id
47
- controller, action = @route.to.split('#')
48
- "#{controller}_controller_#{action}".camelize.gsub('::','')
49
- end
50
-
51
- def controller
52
- controller, action = @route.to.split('#')
53
- "#{controller}_controller".camelize
54
- end
55
- end
56
- end
data/lib/jets/job/task.rb DELETED
@@ -1,17 +0,0 @@
1
- class Jets::Job::Task < Jets::Lambda::Task
2
- attr_reader :state
3
- def initialize(class_name, meth, options={})
4
- super
5
- @rate = options[:rate]
6
- @cron = options[:cron]
7
- @state = options[:state] || 'ENABLED'
8
- end
9
-
10
- def schedule_expression
11
- if @rate
12
- "rate(#{@rate})"
13
- elsif @cron
14
- "cron(#{@cron})"
15
- end
16
- end
17
- end
@@ -1,12 +0,0 @@
1
- class Jets::Rule::AwsManagedRule < Jets::Rule::Task
2
- def config_rule_defaults
3
- source_identifier = meth.to_s.upcase
4
- {
5
- "ConfigRuleName" => config_rule_name,
6
- "Source" => {
7
- "Owner" => "AWS",
8
- "SourceIdentifier" => source_identifier
9
- }
10
- }
11
- end
12
- end
@@ -1,44 +0,0 @@
1
- class Jets::Rule::Task < Jets::Lambda::Task
2
- attr_reader :config_rule
3
- def initialize(class_name, meth, options={})
4
- super
5
- @config_rule = options[:config_rule] || {}
6
- end
7
-
8
- def config_rule_name
9
- @properties[:config_rule_name] || conventional_config_rule_name
10
- end
11
-
12
- def conventional_config_rule_name
13
- name_without_rule = @class_name.underscore.gsub(/_rule$/,'')
14
- "#{name_without_rule}_#{@meth}".dasherize
15
- end
16
-
17
- def config_rule_properties
18
- props = Jets::Pascalize.pascalize(@config_rule)
19
- props = config_rule_defaults.merge(props)
20
- props
21
- end
22
-
23
- def config_rule_defaults
24
- map = Jets::Cfn::TemplateMappers::ConfigRuleMapper.new(self)
25
- source_identifier = "!GetAtt #{map.lambda_function_logical_id}.Arn"
26
- {
27
- "ConfigRuleName" => config_rule_name,
28
- "Source" => {
29
- "Owner" => "CUSTOM_LAMBDA",
30
- "SourceIdentifier" => source_identifier,
31
- "SourceDetails" => [
32
- {
33
- "EventSource" => "aws.config",
34
- "MessageType" => "ConfigurationItemChangeNotification"
35
- },
36
- {
37
- "EventSource" => "aws.config",
38
- "MessageType" => "OversizedConfigurationItemChangeNotification"
39
- }
40
- ]
41
- }
42
- }
43
- end
44
- end