aws_provisioner 0.0.2 → 0.0.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1e02bb3f17568a4e08393c42abd39fdd819ca309478b08782d818b6dc9272ea5
4
- data.tar.gz: e350bb232a463f93d4fb9e070a53b67bef970a45b27a04b06c8f7378cebba410
3
+ metadata.gz: 4a11a2ba403a7f7eb9615c212db3f6dde4998d5685c53571451deb895bcf30a5
4
+ data.tar.gz: 91e9e70dc0e88398635d1a0564cc53c523e9119cf80201293c75fd137890764b
5
5
  SHA512:
6
- metadata.gz: 74e1ec3fd2569616c44459941668818fe2e2e6798f516ee7036cb9f72e3b5e4d35f004f342eacce4571df9ee035bc20f9bb9ef5c0048917ea8336f8da7bc1f6f
7
- data.tar.gz: e03b3ca9b65b716ca8e4b7be68512f11de656bab9f49e3638c0ba5202698b3e5931e916a5f88defad85b45de85acac8f8e8f55bd3b6d1fd38e103dcddd027096
6
+ metadata.gz: d35e59aed998acf3749d605235519d7d54f98f569f8030bb42c80b42b80872d3773561359fa338741050014dedd1adc2409cf4d5f50842746d0779cd0c667859
7
+ data.tar.gz: a90fb09f6a12e77571ec322a32b72a7038e702e959557cf287a1f29fea41a7e30ed2e0c29f86ec720a015e1e968054088d847a91f6cd77e4e1560c053e89cd3f
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- aws_provisioner (0.1.0)
4
+ aws_provisioner (0.0.2)
5
5
  activesupport (~> 5.2, >= 5.2.1)
6
6
 
7
7
  GEM
@@ -2,6 +2,7 @@ require "aws_provisioner/version"
2
2
  require "aws_provisioner/template"
3
3
  require "aws_provisioner/properties"
4
4
  require "aws_provisioner/resource"
5
+ require "aws_provisioner/environment"
5
6
 
6
7
  module AwsProvisioner
7
8
 
@@ -1,6 +1,7 @@
1
1
  require_relative 'runtime'
2
2
  require_relative 'template'
3
3
  require_relative 'resource'
4
+ require_relative 'environment'
4
5
 
5
6
  module AwsProvisioner
6
7
  module DSL
@@ -43,3 +44,41 @@ def resource(resource_type, name, &block)
43
44
 
44
45
  r
45
46
  end
47
+
48
+ class Object
49
+ def add_aws_provisioner_dsl
50
+ AwsProvisioner::Environment.environments.each do |environment|
51
+ define_method("#{environment}?".to_sym) do
52
+ AwsProvisioner::Environment.current?(environment)
53
+ end
54
+ end
55
+
56
+ define_method(:current) do
57
+ AwsProvisioner::Environment.current
58
+ end
59
+ end
60
+ end
61
+
62
+ def configure
63
+ config_file_path = ENV["AWS_PROVISIONER_CONFIG"]
64
+
65
+ if config_file_path
66
+ config = YAML.load(File.read(config_file_path))
67
+
68
+ environments = config["environments"].reduce({}) do |acc, entry|
69
+ key, value = entry
70
+ acc[key.to_sym] = value
71
+
72
+ acc
73
+ end
74
+
75
+ AwsProvisioner::Environment.configure(
76
+ environments,
77
+ ENV["AWS_PROVISIONER_ENVIRONMENT"].to_sym
78
+ )
79
+ end
80
+
81
+ Object.add_aws_provisioner_dsl
82
+ end
83
+
84
+ configure
@@ -0,0 +1,29 @@
1
+ module AwsProvisioner
2
+ class Environment
3
+ class InvalidEnvironment < Exception; end
4
+
5
+ @@environments = {}
6
+ @@current = nil
7
+
8
+ def self.configure(environments, current)
9
+ if !environments.include?(current)
10
+ raise InvalidEnvironment
11
+ end
12
+
13
+ @@environments = environments
14
+ @@current = current
15
+ end
16
+
17
+ def self.environments
18
+ @@environments.keys
19
+ end
20
+
21
+ def self.current
22
+ @@current
23
+ end
24
+
25
+ def self.current?(environment)
26
+ current == environment
27
+ end
28
+ end
29
+ end
@@ -1,3 +1,3 @@
1
1
  module AwsProvisioner
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws_provisioner
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Wilberto Morales
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-10-30 00:00:00.000000000 Z
11
+ date: 2018-11-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -106,6 +106,7 @@ files:
106
106
  - bin/setup
107
107
  - lib/aws_provisioner.rb
108
108
  - lib/aws_provisioner/dsl.rb
109
+ - lib/aws_provisioner/environment.rb
109
110
  - lib/aws_provisioner/extensions.rb
110
111
  - lib/aws_provisioner/properties.rb
111
112
  - lib/aws_provisioner/resource.rb