tfw 0.1.0 → 0.1.1

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: 461749b30dd4d5913c79a7c75fed44e824752ef6bbb7a3cf00d8095cd3737e1a
4
- data.tar.gz: 8e5d6c11d1a5c538622bf569570b235128588c5dea5ebca6c93a84c8f9b1febc
3
+ metadata.gz: ad4debed6a45cf690648c936cc987154659d1d71226e1b6d16b4e155c9986230
4
+ data.tar.gz: 112964765b0d7ee4a17afae705212da4d354d6192e53a2c9e25437a4eaee6709
5
5
  SHA512:
6
- metadata.gz: 322d2b4a12ef6c39f4cdae0bc3c72576f9ce68ba7fa919b2f28973fc85de91ae31a9d04c7b450364a9d16864b42148d9d83413bdd3816f7fec7bca6e4b6954e4
7
- data.tar.gz: fb80f14589649ce8f6882ab4b7e843e366a5be60ced9f56e21cb1278d9a1abb0e5a9f224d83fcf8c88f40f5995777f18207139ff25504f74fedb3ae9261f853e
6
+ metadata.gz: 8b1442234f7acf0a9f962aee78874cb6a957b517b0def7878f3c70ca9a7387d0cff38956c4f2609b3b8dcec20cface96f5d3f7df1bbb1f49b7a4303b75a9566c
7
+ data.tar.gz: d298b29308862738cf3da97ef006f0d863f6772e570637024421ec8882ce674c5b8012c1be4e5952d3dac36b478cf487126521512ca3b9d14dcbf1f987800cf7
data/.rubocop.yml CHANGED
@@ -1,7 +1,7 @@
1
1
  Style/ConditionalAssignment:
2
2
  Enabled: false
3
3
 
4
- Layout/IndentFirstArrayElement:
4
+ Layout/FirstArrayElementIndentation:
5
5
  Enabled: false
6
6
 
7
7
  Style/ClassVars:
data/Gemfile.lock CHANGED
@@ -1,23 +1,63 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- tfw (0.1.0)
5
- tfdsl (~> 0.1)
4
+ tfw (0.1.1)
5
+ tfdsl (= 0.1.2)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
+ ast (2.4.0)
11
+ coderay (1.1.2)
12
+ coveralls (0.8.22)
13
+ json (>= 1.8, < 3)
14
+ simplecov (~> 0.16.1)
15
+ term-ansicolor (~> 1.3)
16
+ thor (~> 0.19.4)
17
+ tins (~> 1.6)
18
+ docile (1.3.1)
19
+ jaro_winkler (1.5.4)
20
+ json (2.1.0)
21
+ method_source (0.9.2)
10
22
  minitest (5.12.2)
23
+ parallel (1.19.1)
24
+ parser (2.7.0.2)
25
+ ast (~> 2.4.0)
26
+ pry (0.12.2)
27
+ coderay (~> 1.1.0)
28
+ method_source (~> 0.9.0)
29
+ rainbow (3.0.0)
11
30
  rake (10.5.0)
12
- tfdsl (0.1.1)
31
+ rubocop (0.79.0)
32
+ jaro_winkler (~> 1.5.1)
33
+ parallel (~> 1.10)
34
+ parser (>= 2.7.0.1)
35
+ rainbow (>= 2.2.2, < 4.0)
36
+ ruby-progressbar (~> 1.7)
37
+ unicode-display_width (>= 1.4.0, < 1.7)
38
+ ruby-progressbar (1.10.1)
39
+ simplecov (0.16.1)
40
+ docile (~> 1.1)
41
+ json (>= 1.8, < 3)
42
+ simplecov-html (~> 0.10.0)
43
+ simplecov-html (0.10.2)
44
+ term-ansicolor (1.7.1)
45
+ tins (~> 1.0)
46
+ tfdsl (0.1.2)
47
+ thor (0.19.4)
48
+ tins (1.20.2)
49
+ unicode-display_width (1.6.1)
13
50
 
14
51
  PLATFORMS
15
52
  ruby
16
53
 
17
54
  DEPENDENCIES
18
55
  bundler (~> 1.17)
56
+ coveralls (~> 0.8)
19
57
  minitest (~> 5.0)
58
+ pry (~> 0.12)
20
59
  rake (~> 10.0)
60
+ rubocop (~> 0.79)
21
61
  tfw!
22
62
 
23
63
  BUNDLED WITH
data/lib/tfw/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module TFW
4
- VERSION = '0.1.0'
4
+ VERSION = '0.1.1'
5
5
  end
data/lib/tfw.rb CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  require 'tfw/version'
4
4
  require 'tfdsl'
5
+ require 'json'
5
6
 
6
7
  # TFW is a Terraform Wrapper which uses terraform DSL for Ruby
7
8
  module TFW
@@ -15,6 +16,10 @@ module TFW
15
16
  WORKSPACE = './.tfw'
16
17
  FileUtils.mkdir_p WORKSPACE
17
18
 
19
+ def as_json?
20
+ !ENV['TFW_AS_JSON'].nil?
21
+ end
22
+
18
23
  def get_stack_for_dir(dir, input = nil)
19
24
  files = Dir.glob "#{dir}/*.rb"
20
25
  stack = TFDSL.stack do
@@ -25,13 +30,14 @@ module TFW
25
30
  end
26
31
 
27
32
  def cli(args)
28
- puts Dir.pwd
29
- s = TFW.get_stack_for_dir '.'
33
+ stack = TFW.get_stack_for_dir '.'
30
34
 
31
- File.open("#{WORKSPACE}/stack.tf", 'w') { |f| f.puts s }
35
+ stack_file = "#{WORKSPACE}/stack.tf"
36
+ write_stack_file stack_file, stack
32
37
 
33
38
  old_dir = Dir.pwd
34
39
  Dir.chdir WORKSPACE
40
+
35
41
  cmd = "terraform #{args.join ' '}"
36
42
  Process.wait(fork { exec cmd })
37
43
  Dir.chdir old_dir
@@ -47,12 +53,29 @@ module TFW
47
53
  mpath = "./modules/#{mname}"
48
54
 
49
55
  FileUtils.mkdir_p "#{WORKSPACE}/#{mpath}"
50
- File.write "#{WORKSPACE}/#{mpath}/stack.tf", mstack
56
+
57
+ stack_file = "#{WORKSPACE}/#{mpath}/stack.tf"
58
+ write_stack_file stack_file, mstack
51
59
 
52
60
  stack.tfmodule mname do
53
61
  source mpath
54
62
  end
55
63
  end
64
+
65
+ def write_stack_file(stack_file, stack)
66
+ [stack_file, "#{stack_file}.json"].each { |f| FileUtils.rm_f f }
67
+
68
+ if as_json?
69
+ stack_file = "#{stack_file}.json"
70
+ File.write stack_file, pretty_json(stack.to_json)
71
+ else
72
+ File.write stack_file, stack
73
+ end
74
+ end
75
+
76
+ def pretty_json(json)
77
+ JSON.pretty_generate JSON.parse(json)
78
+ end
56
79
  end
57
80
 
58
81
  def tfw_load_module(&block)
data/tfw.gemspec CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
18
18
  # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
19
19
  # to allow pushing to a single host or delete this section to allow pushing to any host.
20
20
  if spec.respond_to?(:metadata)
21
- #spec.metadata['allowed_push_host'] = "TODO: Set to 'http://mygemserver.com'"
21
+ # spec.metadata['allowed_push_host'] = "TODO: Set to 'http://mygemserver.com'"
22
22
 
23
23
  spec.metadata['homepage_uri'] = spec.homepage
24
24
  else
@@ -35,9 +35,12 @@ Gem::Specification.new do |spec|
35
35
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
36
36
  spec.require_paths = ['lib']
37
37
 
38
- spec.add_dependency 'tfdsl', '~> 0.1'
38
+ spec.add_dependency 'tfdsl', '0.1.2'
39
39
 
40
40
  spec.add_development_dependency 'bundler', '~> 1.17'
41
+ spec.add_development_dependency 'coveralls', '~> 0.8'
41
42
  spec.add_development_dependency 'minitest', '~> 5.0'
43
+ spec.add_development_dependency 'pry', '~> 0.12'
42
44
  spec.add_development_dependency 'rake', '~> 10.0'
45
+ spec.add_development_dependency 'rubocop', '~> 0.79'
43
46
  end
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tfw
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tiago Lopo
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-12-23 00:00:00.000000000 Z
11
+ date: 2020-01-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: tfdsl
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: '0.1'
19
+ version: 0.1.2
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: '0.1'
26
+ version: 0.1.2
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.17'
41
+ - !ruby/object:Gem::Dependency
42
+ name: coveralls
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '0.8'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '0.8'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: minitest
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -52,6 +66,20 @@ dependencies:
52
66
  - - "~>"
53
67
  - !ruby/object:Gem::Version
54
68
  version: '5.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: pry
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '0.12'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '0.12'
55
83
  - !ruby/object:Gem::Dependency
56
84
  name: rake
57
85
  requirement: !ruby/object:Gem::Requirement
@@ -66,6 +94,20 @@ dependencies:
66
94
  - - "~>"
67
95
  - !ruby/object:Gem::Version
68
96
  version: '10.0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rubocop
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '0.79'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '0.79'
69
111
  description: Terraform Wrapper using Terraform DSL for Ruby
70
112
  email:
71
113
  - tiagolopo@yahoo.com.br