tfw 0.1.7 → 0.1.8
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/Gemfile.lock +3 -3
- data/exe/tfw-test +23 -0
- data/lib/tfw/module.rb +1 -1
- data/lib/tfw/state.rb +19 -0
- data/lib/tfw/version.rb +1 -1
- data/lib/tfw.rb +21 -5
- data/tfw.gemspec +1 -1
- metadata +7 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f7f44ae3f98d836eea0497fa0ff14b7494efb507effba9638f45d136907c0916
|
4
|
+
data.tar.gz: 2abbaf5b7b20431740e2939bd4fe9bd5b2288da248cc3247b2b64b5c6cde7bac
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e5ff9d50d25a4490c1bd6f5bb1880920662f90dc230a7b80061627c7b0d00a13eede386c77982d164a859d06f3ae5e0225f625ecf1a4a873b05ed49354703b89
|
7
|
+
data.tar.gz: 3212278049b99074ca8ff204abff4bc0c5c4c5e7aa1039bf48fd9fb1b92ab301df2a140b91ce9593acf2a81e2ca5d38be0e24e0bf8e4a0b4177e372245fb6740
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
tfw (0.1.
|
4
|
+
tfw (0.1.8)
|
5
5
|
tfdsl (= 0.1.6)
|
6
6
|
|
7
7
|
GEM
|
@@ -27,7 +27,7 @@ GEM
|
|
27
27
|
coderay (~> 1.1.0)
|
28
28
|
method_source (~> 0.9.0)
|
29
29
|
rainbow (3.0.0)
|
30
|
-
rake (
|
30
|
+
rake (13.0.1)
|
31
31
|
rubocop (0.79.0)
|
32
32
|
jaro_winkler (~> 1.5.1)
|
33
33
|
parallel (~> 1.10)
|
@@ -56,7 +56,7 @@ DEPENDENCIES
|
|
56
56
|
coveralls (~> 0.8)
|
57
57
|
minitest (~> 5.0)
|
58
58
|
pry (~> 0.12)
|
59
|
-
rake (~>
|
59
|
+
rake (~> 13.0)
|
60
60
|
rubocop (~> 0.79)
|
61
61
|
tfw!
|
62
62
|
|
data/exe/tfw-test
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
#! /usr/bin/env/ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
require 'simplecov'
|
5
|
+
|
6
|
+
SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter.new([
|
7
|
+
SimpleCov::Formatter::HTMLFormatter
|
8
|
+
])
|
9
|
+
|
10
|
+
SimpleCov.minimum_coverage 90
|
11
|
+
SimpleCov.start
|
12
|
+
|
13
|
+
require 'minitest'
|
14
|
+
|
15
|
+
old_dir = Dir.pwd
|
16
|
+
Dir.chdir './test'
|
17
|
+
|
18
|
+
files = Dir.glob('**/*_test.rb').map { |f| File.expand_path f }
|
19
|
+
Dir.chdir old_dir
|
20
|
+
|
21
|
+
files.each { |f| require f }
|
22
|
+
|
23
|
+
Minitest.run ['-vp']
|
data/lib/tfw/module.rb
CHANGED
data/lib/tfw/state.rb
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Singleton class to keep the stack
|
4
|
+
class State
|
5
|
+
include Singleton
|
6
|
+
|
7
|
+
def initialize
|
8
|
+
@stack = TFDSL::Stack.new
|
9
|
+
end
|
10
|
+
|
11
|
+
def stack(&block)
|
12
|
+
@stack.instance_eval(&block) if block_given?
|
13
|
+
@stack
|
14
|
+
end
|
15
|
+
|
16
|
+
def reset
|
17
|
+
@stack = TFDSL::Stack.new
|
18
|
+
end
|
19
|
+
end
|
data/lib/tfw/version.rb
CHANGED
data/lib/tfw.rb
CHANGED
@@ -3,6 +3,8 @@
|
|
3
3
|
require 'tfw/version'
|
4
4
|
require 'tfdsl'
|
5
5
|
require 'json'
|
6
|
+
require 'singleton'
|
7
|
+
require_relative 'tfw/state'
|
6
8
|
|
7
9
|
# TFW is a Terraform Wrapper which uses terraform DSL for Ruby
|
8
10
|
module TFW
|
@@ -20,17 +22,19 @@ module TFW
|
|
20
22
|
!ENV['TFW_AS_JSON'].nil?
|
21
23
|
end
|
22
24
|
|
23
|
-
def get_stack_for_dir(dir, input = nil)
|
25
|
+
def get_stack_for_dir(dir, input = nil, stack = State.instance.stack)
|
26
|
+
configure_methods_using_stack stack
|
27
|
+
configure_input_method input
|
28
|
+
|
24
29
|
files = Dir.glob "#{dir}/*.rb"
|
25
|
-
|
26
|
-
|
27
|
-
files.sort.each { |f| instance_eval File.read(f), f }
|
28
|
-
end
|
30
|
+
files.sort.each { |f| load f }
|
31
|
+
configure_methods_using_stack State.instance.stack
|
29
32
|
stack
|
30
33
|
end
|
31
34
|
|
32
35
|
def cli(args)
|
33
36
|
build_config
|
37
|
+
State.instance.reset
|
34
38
|
run_terraform args
|
35
39
|
end
|
36
40
|
|
@@ -94,6 +98,18 @@ module TFW
|
|
94
98
|
end
|
95
99
|
end
|
96
100
|
|
101
|
+
def configure_methods_using_stack(stack)
|
102
|
+
%w[provider variable locals tfmodule datsource resource output terraform].each do |name|
|
103
|
+
TOPLEVEL_BINDING.eval('self').define_singleton_method name do |*args, &block|
|
104
|
+
stack.method(name).call(*args, &block)
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
def configure_input_method(input)
|
110
|
+
TOPLEVEL_BINDING.eval('self').define_singleton_method('tfw_module_input') { input }
|
111
|
+
end
|
112
|
+
|
97
113
|
def pretty_json(json)
|
98
114
|
JSON.pretty_generate JSON.parse(json)
|
99
115
|
end
|
data/tfw.gemspec
CHANGED
@@ -41,6 +41,6 @@ Gem::Specification.new do |spec|
|
|
41
41
|
spec.add_development_dependency 'coveralls', '~> 0.8'
|
42
42
|
spec.add_development_dependency 'minitest', '~> 5.0'
|
43
43
|
spec.add_development_dependency 'pry', '~> 0.12'
|
44
|
-
spec.add_development_dependency 'rake', '~>
|
44
|
+
spec.add_development_dependency 'rake', '~> 13.0'
|
45
45
|
spec.add_development_dependency 'rubocop', '~> 0.79'
|
46
46
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tfw
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tiago Lopo
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-03-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: tfdsl
|
@@ -86,14 +86,14 @@ dependencies:
|
|
86
86
|
requirements:
|
87
87
|
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
89
|
+
version: '13.0'
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
96
|
+
version: '13.0'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: rubocop
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -113,6 +113,7 @@ email:
|
|
113
113
|
- tiagolopo@yahoo.com.br
|
114
114
|
executables:
|
115
115
|
- tfw
|
116
|
+
- tfw-test
|
116
117
|
extensions: []
|
117
118
|
extra_rdoc_files: []
|
118
119
|
files:
|
@@ -129,9 +130,11 @@ files:
|
|
129
130
|
- bin/console
|
130
131
|
- bin/setup
|
131
132
|
- exe/tfw
|
133
|
+
- exe/tfw-test
|
132
134
|
- lib/tfw.rb
|
133
135
|
- lib/tfw/module.rb
|
134
136
|
- lib/tfw/setters.rb
|
137
|
+
- lib/tfw/state.rb
|
135
138
|
- lib/tfw/version.rb
|
136
139
|
- tfw.gemspec
|
137
140
|
homepage: https://github.com/tlopo-ruby/tfw
|