jets 0.8.18 → 0.9.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.
- checksums.yaml +4 -4
- data/.gitmodules +0 -3
- data/CHANGELOG.md +20 -1
- data/Gemfile.lock +6 -2
- data/README/prerelease.md +6 -0
- data/README/testing.md +41 -0
- data/Rakefile +9 -1
- data/jets.gemspec +1 -0
- data/lib/jets.rb +17 -18
- data/lib/jets/application.rb +26 -3
- data/lib/jets/aws_services.rb +26 -59
- data/lib/jets/aws_services/stack_status.rb +52 -0
- data/lib/jets/builders.rb +3 -2
- data/lib/jets/builders/handler_generator.rb +38 -2
- data/lib/jets/builders/shared_deducer.rb +32 -0
- data/lib/jets/cfn/builders.rb +3 -1
- data/lib/jets/cfn/builders/api_deployment_builder.rb +1 -1
- data/lib/jets/cfn/builders/api_gateway_builder.rb +1 -1
- data/lib/jets/cfn/builders/base_child_builder.rb +37 -7
- data/lib/jets/cfn/builders/controller_builder.rb +6 -1
- data/lib/jets/cfn/builders/function_builder.rb +5 -0
- data/lib/jets/cfn/builders/interface.rb +5 -6
- data/lib/jets/cfn/builders/job_builder.rb +5 -0
- data/lib/jets/cfn/builders/parent_builder.rb +17 -16
- data/lib/jets/cfn/builders/rule_builder.rb +6 -1
- data/lib/jets/cfn/builders/shared_builder.rb +14 -0
- data/lib/jets/commands.rb +9 -8
- data/lib/jets/commands/build.rb +36 -14
- data/lib/jets/commands/console.rb +1 -0
- data/lib/jets/commands/help/runner.md +17 -0
- data/lib/jets/commands/main.rb +7 -0
- data/lib/jets/commands/new.rb +39 -19
- data/lib/jets/commands/runner.rb +18 -0
- data/lib/jets/commands/sequence.rb +27 -1
- data/lib/jets/commands/templates/skeleton/.rspec +3 -0
- data/lib/jets/commands/templates/skeleton/Gemfile.tt +0 -1
- data/lib/jets/commands/templates/skeleton/app/jobs/application_job.rb +2 -0
- data/lib/jets/commands/templates/skeleton/config/application.rb.tt +2 -1
- data/lib/jets/commands/templates/skeleton/config/routes.rb +5 -1
- data/lib/jets/commands/templates/skeleton/spec/spec_helper.rb.tt +5 -4
- data/lib/jets/core.rb +8 -6
- data/lib/jets/default/application.rb +1 -0
- data/lib/jets/generator.rb +1 -1
- data/lib/jets/inflections.rb +23 -0
- data/lib/jets/job/dsl.rb +69 -47
- data/lib/jets/klass.rb +6 -1
- data/lib/jets/lambda/dsl.rb +102 -34
- data/lib/jets/lambda/function_constructor.rb +2 -2
- data/lib/jets/lambda/task.rb +10 -5
- data/lib/jets/naming.rb +13 -2
- data/lib/jets/processors/deducer.rb +13 -2
- data/lib/jets/processors/main_processor.rb +1 -1
- data/lib/jets/rails_overrides.rb +1 -1
- data/lib/jets/resource.rb +20 -5
- data/lib/jets/resource/api_gateway/deployment.rb +0 -1
- data/lib/jets/resource/associated.rb +26 -0
- data/lib/jets/resource/base.rb +12 -0
- data/lib/jets/resource/child_stack.rb +2 -0
- data/lib/jets/resource/child_stack/api_deployment.rb +9 -15
- data/lib/jets/resource/child_stack/api_gateway.rb +8 -8
- data/lib/jets/resource/child_stack/app_class.rb +41 -16
- data/lib/jets/resource/child_stack/base.rb +24 -0
- data/lib/jets/resource/child_stack/shared.rb +90 -0
- data/lib/jets/resource/config.rb +4 -0
- data/lib/jets/resource/config/config_rule.rb +66 -0
- data/lib/jets/resource/config/managed_rule.rb +15 -0
- data/lib/jets/resource/events.rb +3 -0
- data/lib/jets/resource/events/rule.rb +31 -0
- data/lib/jets/resource/iam/application_role.rb +2 -2
- data/lib/jets/resource/iam/base_role_definition.rb +4 -2
- data/lib/jets/resource/iam/class_role.rb +50 -2
- data/lib/jets/resource/iam/function_role.rb +28 -0
- data/lib/jets/resource/iam/policy_document.rb +0 -4
- data/lib/jets/resource/permission.rb +12 -6
- data/lib/jets/resource/replacer.rb +4 -0
- data/lib/jets/resource/sns.rb +3 -0
- data/lib/jets/resource/standardizer.rb +42 -0
- data/lib/jets/router.rb +9 -1
- data/lib/jets/rule/dsl.rb +51 -78
- data/lib/jets/stack.rb +105 -0
- data/lib/jets/stack/builder.rb +38 -0
- data/lib/jets/stack/definition.rb +50 -0
- data/lib/jets/stack/function.rb +60 -0
- data/lib/jets/stack/main.rb +5 -0
- data/lib/jets/stack/main/dsl.rb +33 -0
- data/lib/jets/stack/main/extensions/base.rb +45 -0
- data/lib/jets/stack/main/extensions/cloudwatch.rb +19 -0
- data/lib/jets/stack/main/extensions/lambda.rb +69 -0
- data/lib/jets/stack/main/extensions/sns.rb +12 -0
- data/lib/jets/stack/main/extensions/sqs.rb +8 -0
- data/lib/jets/stack/output.rb +38 -0
- data/lib/jets/stack/output/dsl.rb +19 -0
- data/lib/jets/stack/output/lookup.rb +36 -0
- data/lib/jets/stack/parameter.rb +38 -0
- data/lib/jets/stack/parameter/dsl.rb +42 -0
- data/lib/jets/stack/resource.rb +30 -0
- data/lib/jets/stack/resource/dsl.rb +19 -0
- data/lib/jets/version.rb +1 -1
- metadata +53 -4
- data/support/clean +0 -3
- data/support/console +0 -3
@@ -0,0 +1,38 @@
|
|
1
|
+
# Implements:
|
2
|
+
#
|
3
|
+
# template - uses @definition to build a CloudFormation template section
|
4
|
+
#
|
5
|
+
class Jets::Stack
|
6
|
+
class Parameter
|
7
|
+
autoload :Dsl, "jets/stack/parameter/dsl"
|
8
|
+
include Definition
|
9
|
+
|
10
|
+
def template
|
11
|
+
camelize(add_required(standarize(@definition)))
|
12
|
+
end
|
13
|
+
|
14
|
+
# Type is the only required property: https://amzn.to/2x8W5aD
|
15
|
+
def standarize(definition)
|
16
|
+
first, second, _ = definition
|
17
|
+
if definition.size == 1 && first.is_a?(Hash) # long form
|
18
|
+
first # pass through
|
19
|
+
elsif definition.size == 2 && second.is_a?(Hash) # medium form
|
20
|
+
logical_id, properties = first, second
|
21
|
+
{ logical_id => properties }
|
22
|
+
elsif (definition.size == 2 && second.is_a?(String)) || # short form
|
23
|
+
definition.size == 1
|
24
|
+
logical_id = first
|
25
|
+
properties = second.is_a?(String) ? { default: second } : {}
|
26
|
+
{ logical_id => properties }
|
27
|
+
else # I dont know what form
|
28
|
+
raise "Invalid form provided. definition #{definition.inspect}"
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def add_required(attributes)
|
33
|
+
properties = attributes.values.first
|
34
|
+
properties[:type] ||= 'String'
|
35
|
+
attributes
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
class Jets::Stack
|
2
|
+
class Parameter
|
3
|
+
module Dsl
|
4
|
+
extend ActiveSupport::Concern
|
5
|
+
extend Memoist
|
6
|
+
|
7
|
+
def parameters
|
8
|
+
add_common_parameters
|
9
|
+
add_depends_on_parameters
|
10
|
+
Parameter.definitions(self.class)
|
11
|
+
end
|
12
|
+
|
13
|
+
def add_common_parameters
|
14
|
+
self.class.parameter(:iam_role)
|
15
|
+
self.class.parameter(:s3_bucket)
|
16
|
+
end
|
17
|
+
|
18
|
+
def add_depends_on_parameters
|
19
|
+
depends_on = self.class.depends_on
|
20
|
+
depends_on.each do |dependency|
|
21
|
+
dependency_outputs(dependency).each do |output|
|
22
|
+
self.class.parameter(output)
|
23
|
+
end
|
24
|
+
end if depends_on
|
25
|
+
end
|
26
|
+
memoize :add_depends_on_parameters # only run once
|
27
|
+
|
28
|
+
# Returns output keys associated with the stack. They are the resource logical ids.
|
29
|
+
def dependency_outputs(dependency)
|
30
|
+
dependency.to_s.classify.constantize.output_keys
|
31
|
+
end
|
32
|
+
|
33
|
+
class_methods do
|
34
|
+
def parameter(*definition)
|
35
|
+
# self is subclass is the stack that inherits from Jets::Stack
|
36
|
+
# IE: ExampleStack < Jets::Stack
|
37
|
+
Parameter.new(self, *definition).register
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# Implements:
|
2
|
+
#
|
3
|
+
# template - uses @definition to build a CloudFormation template section
|
4
|
+
#
|
5
|
+
class Jets::Stack
|
6
|
+
class Resource
|
7
|
+
autoload :Dsl, "jets/stack/resource/dsl"
|
8
|
+
include Definition
|
9
|
+
|
10
|
+
def template
|
11
|
+
template = camelize(standarize(@definition))
|
12
|
+
template = replace_placeholers(template)
|
13
|
+
template
|
14
|
+
end
|
15
|
+
|
16
|
+
# CloudFormation Resources reference: https://amzn.to/2NKg6ip
|
17
|
+
def standarize(definition)
|
18
|
+
Jets::Resource::Standardizer.new(definition).template
|
19
|
+
end
|
20
|
+
|
21
|
+
def replace_placeholers(template)
|
22
|
+
attributes = template.values.first
|
23
|
+
s3_key = attributes.dig('Properties','Code','S3Key')
|
24
|
+
if s3_key == "code_s3_key_placeholder"
|
25
|
+
attributes['Properties']['Code']['S3Key'] = Jets::Naming.code_s3_key
|
26
|
+
end
|
27
|
+
template
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
class Jets::Stack
|
2
|
+
class Resource
|
3
|
+
module Dsl
|
4
|
+
extend ActiveSupport::Concern
|
5
|
+
|
6
|
+
def resources
|
7
|
+
Resource.definitions(self.class)
|
8
|
+
end
|
9
|
+
|
10
|
+
class_methods do
|
11
|
+
def resource(*definition)
|
12
|
+
# self is subclass is the stack that inherits from Jets::Stack
|
13
|
+
# IE: ExampleStack < Jets::Stack
|
14
|
+
Resource.new(self, *definition).register
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/lib/jets/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jets
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tung Nguyen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-09-
|
11
|
+
date: 2018-09-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: actionpack
|
@@ -136,6 +136,20 @@ dependencies:
|
|
136
136
|
- - ">="
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: '0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: aws-sdk-sns
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
type: :runtime
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
139
153
|
- !ruby/object:Gem::Dependency
|
140
154
|
name: colorize
|
141
155
|
requirement: !ruby/object:Gem::Requirement
|
@@ -409,6 +423,8 @@ files:
|
|
409
423
|
- LICENSE.txt
|
410
424
|
- Procfile
|
411
425
|
- README.md
|
426
|
+
- README/prerelease.md
|
427
|
+
- README/testing.md
|
412
428
|
- Rakefile
|
413
429
|
- bin/release
|
414
430
|
- buildspec.yml
|
@@ -419,6 +435,7 @@ files:
|
|
419
435
|
- lib/jets/application/middleware.rb
|
420
436
|
- lib/jets/aws_info.rb
|
421
437
|
- lib/jets/aws_services.rb
|
438
|
+
- lib/jets/aws_services/stack_status.rb
|
422
439
|
- lib/jets/booter.rb
|
423
440
|
- lib/jets/builders.rb
|
424
441
|
- lib/jets/builders/code_builder.rb
|
@@ -427,6 +444,7 @@ files:
|
|
427
444
|
- lib/jets/builders/handler_generator.rb
|
428
445
|
- lib/jets/builders/node-hello.js
|
429
446
|
- lib/jets/builders/node-shim.js
|
447
|
+
- lib/jets/builders/shared_deducer.rb
|
430
448
|
- lib/jets/camelizer.rb
|
431
449
|
- lib/jets/cfn.rb
|
432
450
|
- lib/jets/cfn/builders.rb
|
@@ -439,6 +457,7 @@ files:
|
|
439
457
|
- lib/jets/cfn/builders/job_builder.rb
|
440
458
|
- lib/jets/cfn/builders/parent_builder.rb
|
441
459
|
- lib/jets/cfn/builders/rule_builder.rb
|
460
|
+
- lib/jets/cfn/builders/shared_builder.rb
|
442
461
|
- lib/jets/cfn/ship.rb
|
443
462
|
- lib/jets/cfn/status.rb
|
444
463
|
- lib/jets/cli.rb
|
@@ -479,6 +498,7 @@ files:
|
|
479
498
|
- lib/jets/commands/help/generate.md
|
480
499
|
- lib/jets/commands/help/new.md
|
481
500
|
- lib/jets/commands/help/routes.md
|
501
|
+
- lib/jets/commands/help/runner.md
|
482
502
|
- lib/jets/commands/help/server.md
|
483
503
|
- lib/jets/commands/help/status.md
|
484
504
|
- lib/jets/commands/help/url.md
|
@@ -491,6 +511,7 @@ files:
|
|
491
511
|
- lib/jets/commands/new.rb
|
492
512
|
- lib/jets/commands/rake_command.rb
|
493
513
|
- lib/jets/commands/rake_tasks.rb
|
514
|
+
- lib/jets/commands/runner.rb
|
494
515
|
- lib/jets/commands/sequence.rb
|
495
516
|
- lib/jets/commands/stack_info.rb
|
496
517
|
- lib/jets/commands/templates/skeleton/.env
|
@@ -498,6 +519,7 @@ files:
|
|
498
519
|
- lib/jets/commands/templates/skeleton/.env.test
|
499
520
|
- lib/jets/commands/templates/skeleton/.gitignore
|
500
521
|
- lib/jets/commands/templates/skeleton/.jetskeep
|
522
|
+
- lib/jets/commands/templates/skeleton/.rspec
|
501
523
|
- lib/jets/commands/templates/skeleton/Gemfile.tt
|
502
524
|
- lib/jets/commands/templates/skeleton/Procfile
|
503
525
|
- lib/jets/commands/templates/skeleton/README.md
|
@@ -562,6 +584,7 @@ files:
|
|
562
584
|
- lib/jets/generator/templates/rails/scaffold/scaffold.css
|
563
585
|
- lib/jets/generator/templates/rails/scaffold_controller/api_controller.rb
|
564
586
|
- lib/jets/generator/templates/rails/scaffold_controller/controller.rb
|
587
|
+
- lib/jets/inflections.rb
|
565
588
|
- lib/jets/internal/app/controllers/jets/public_controller.rb
|
566
589
|
- lib/jets/internal/app/controllers/jets/public_controller/python/show.py
|
567
590
|
- lib/jets/internal/app/controllers/jets/public_controller/python/show.pyc
|
@@ -605,11 +628,19 @@ files:
|
|
605
628
|
- lib/jets/resource/api_gateway/method.rb
|
606
629
|
- lib/jets/resource/api_gateway/resource.rb
|
607
630
|
- lib/jets/resource/api_gateway/rest_api.rb
|
631
|
+
- lib/jets/resource/associated.rb
|
608
632
|
- lib/jets/resource/base.rb
|
609
633
|
- lib/jets/resource/child_stack.rb
|
610
634
|
- lib/jets/resource/child_stack/api_deployment.rb
|
611
635
|
- lib/jets/resource/child_stack/api_gateway.rb
|
612
636
|
- lib/jets/resource/child_stack/app_class.rb
|
637
|
+
- lib/jets/resource/child_stack/base.rb
|
638
|
+
- lib/jets/resource/child_stack/shared.rb
|
639
|
+
- lib/jets/resource/config.rb
|
640
|
+
- lib/jets/resource/config/config_rule.rb
|
641
|
+
- lib/jets/resource/config/managed_rule.rb
|
642
|
+
- lib/jets/resource/events.rb
|
643
|
+
- lib/jets/resource/events/rule.rb
|
613
644
|
- lib/jets/resource/function.rb
|
614
645
|
- lib/jets/resource/iam.rb
|
615
646
|
- lib/jets/resource/iam/application_role.rb
|
@@ -621,6 +652,8 @@ files:
|
|
621
652
|
- lib/jets/resource/permission.rb
|
622
653
|
- lib/jets/resource/replacer.rb
|
623
654
|
- lib/jets/resource/s3.rb
|
655
|
+
- lib/jets/resource/sns.rb
|
656
|
+
- lib/jets/resource/standardizer.rb
|
624
657
|
- lib/jets/route.rb
|
625
658
|
- lib/jets/router.rb
|
626
659
|
- lib/jets/ruby_server.rb
|
@@ -633,12 +666,28 @@ files:
|
|
633
666
|
- lib/jets/server/route_matcher.rb
|
634
667
|
- lib/jets/server/timing_middleware.rb
|
635
668
|
- lib/jets/server/webpacker_setup.rb
|
669
|
+
- lib/jets/stack.rb
|
670
|
+
- lib/jets/stack/builder.rb
|
671
|
+
- lib/jets/stack/definition.rb
|
672
|
+
- lib/jets/stack/function.rb
|
673
|
+
- lib/jets/stack/main.rb
|
674
|
+
- lib/jets/stack/main/dsl.rb
|
675
|
+
- lib/jets/stack/main/extensions/base.rb
|
676
|
+
- lib/jets/stack/main/extensions/cloudwatch.rb
|
677
|
+
- lib/jets/stack/main/extensions/lambda.rb
|
678
|
+
- lib/jets/stack/main/extensions/sns.rb
|
679
|
+
- lib/jets/stack/main/extensions/sqs.rb
|
680
|
+
- lib/jets/stack/output.rb
|
681
|
+
- lib/jets/stack/output/dsl.rb
|
682
|
+
- lib/jets/stack/output/lookup.rb
|
683
|
+
- lib/jets/stack/parameter.rb
|
684
|
+
- lib/jets/stack/parameter/dsl.rb
|
685
|
+
- lib/jets/stack/resource.rb
|
686
|
+
- lib/jets/stack/resource/dsl.rb
|
636
687
|
- lib/jets/timing.rb
|
637
688
|
- lib/jets/timing/report.rb
|
638
689
|
- lib/jets/util.rb
|
639
690
|
- lib/jets/version.rb
|
640
|
-
- support/clean
|
641
|
-
- support/console
|
642
691
|
- vendor/dynomite/CHANGELOG.md
|
643
692
|
- vendor/dynomite/Gemfile
|
644
693
|
- vendor/dynomite/README.md
|
data/support/clean
DELETED
data/support/console
DELETED