aws_provisioner 0.0.2 → 0.0.3

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