ruby-terraform 0.65.0.pre.15 → 1.0.0.pre.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +15 -15
  3. data/README.md +148 -397
  4. data/Rakefile +25 -0
  5. data/lib/ruby_terraform.rb +707 -45
  6. data/lib/ruby_terraform/commands.rb +0 -2
  7. data/lib/ruby_terraform/commands/apply.rb +7 -7
  8. data/lib/ruby_terraform/commands/base.rb +4 -1
  9. data/lib/ruby_terraform/commands/destroy.rb +6 -5
  10. data/lib/ruby_terraform/commands/force_unlock.rb +6 -4
  11. data/lib/ruby_terraform/commands/format.rb +8 -4
  12. data/lib/ruby_terraform/commands/get.rb +6 -4
  13. data/lib/ruby_terraform/commands/graph.rb +11 -3
  14. data/lib/ruby_terraform/commands/import.rb +8 -7
  15. data/lib/ruby_terraform/commands/init.rb +16 -6
  16. data/lib/ruby_terraform/commands/login.rb +2 -2
  17. data/lib/ruby_terraform/commands/logout.rb +2 -2
  18. data/lib/ruby_terraform/commands/output.rb +2 -2
  19. data/lib/ruby_terraform/commands/plan.rb +6 -3
  20. data/lib/ruby_terraform/commands/providers.rb +9 -3
  21. data/lib/ruby_terraform/commands/providers_lock.rb +10 -7
  22. data/lib/ruby_terraform/commands/providers_mirror.rb +3 -3
  23. data/lib/ruby_terraform/commands/providers_schema.rb +21 -2
  24. data/lib/ruby_terraform/commands/refresh.rb +70 -3
  25. data/lib/ruby_terraform/commands/show.rb +26 -3
  26. data/lib/ruby_terraform/commands/state_list.rb +54 -3
  27. data/lib/ruby_terraform/commands/state_move.rb +64 -6
  28. data/lib/ruby_terraform/commands/state_pull.rb +24 -2
  29. data/lib/ruby_terraform/commands/state_push.rb +49 -3
  30. data/lib/ruby_terraform/commands/state_remove.rb +55 -7
  31. data/lib/ruby_terraform/commands/state_replace_provider.rb +39 -6
  32. data/lib/ruby_terraform/commands/state_show.rb +26 -2
  33. data/lib/ruby_terraform/commands/taint.rb +63 -2
  34. data/lib/ruby_terraform/commands/untaint.rb +55 -2
  35. data/lib/ruby_terraform/commands/validate.rb +51 -6
  36. data/lib/ruby_terraform/commands/workspace_delete.rb +29 -7
  37. data/lib/ruby_terraform/commands/workspace_list.rb +21 -6
  38. data/lib/ruby_terraform/commands/workspace_new.rb +28 -7
  39. data/lib/ruby_terraform/commands/workspace_select.rb +23 -7
  40. data/lib/ruby_terraform/commands/workspace_show.rb +17 -2
  41. data/lib/ruby_terraform/options.rb +1 -1
  42. data/lib/ruby_terraform/options/definition.rb +3 -1
  43. data/lib/ruby_terraform/options/definitions.rb +12 -3
  44. data/lib/ruby_terraform/options/{common.rb → global.rb} +1 -1
  45. data/lib/ruby_terraform/options/types.rb +0 -1
  46. data/lib/ruby_terraform/options/types/flag.rb +8 -4
  47. data/lib/ruby_terraform/options/types/standard.rb +20 -6
  48. data/lib/ruby_terraform/version.rb +1 -1
  49. data/ruby_terraform.gemspec +2 -2
  50. metadata +9 -12
  51. data/lib/ruby_terraform/commands/clean.rb +0 -26
  52. data/lib/ruby_terraform/commands/remote_config.rb +0 -25
  53. data/lib/ruby_terraform/options/types/base.rb +0 -19
@@ -1,15 +1,29 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'json'
4
-
5
- require_relative 'base'
6
-
7
3
  module RubyTerraform
8
4
  module Options
9
5
  module Types
10
- class Standard < Base
6
+ class Standard < ImmutableStruct.new(
7
+ :name,
8
+ :value,
9
+ :separator,
10
+ :placement
11
+ )
12
+ def initialize(name, value, **opts)
13
+ super(
14
+ name: name, value: value,
15
+ separator: opts[:separator],
16
+ placement: opts[:placement]
17
+ )
18
+ end
19
+
11
20
  def apply(builder)
12
- builder.with_option(name, value.render, separator: separator)
21
+ builder.with_option(
22
+ name,
23
+ value.render,
24
+ separator: separator,
25
+ placement: placement
26
+ )
13
27
  end
14
28
  end
15
29
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RubyTerraform
4
- VERSION = '0.65.0.pre.15'
4
+ VERSION = '1.0.0.pre.1'
5
5
  end
@@ -38,8 +38,8 @@ Gem::Specification.new do |spec|
38
38
 
39
39
  spec.required_ruby_version = '>= 2.6'
40
40
 
41
- spec.add_dependency 'immutable-struct', '>= 2.4'
42
- spec.add_dependency 'lino', '>= 2.5'
41
+ spec.add_dependency 'immutable-struct', '~> 2.4'
42
+ spec.add_dependency 'lino', '~> 2.7'
43
43
 
44
44
  spec.add_development_dependency 'bundler', '~> 2.0'
45
45
  spec.add_development_dependency 'faker', '~> 2.17'
metadata CHANGED
@@ -1,43 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-terraform
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.65.0.pre.15
4
+ version: 1.0.0.pre.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Toby Clemson
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-04-27 00:00:00.000000000 Z
11
+ date: 2021-05-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: immutable-struct
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '2.4'
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
26
  version: '2.4'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: lino
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '2.5'
33
+ version: '2.7'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '2.5'
40
+ version: '2.7'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -283,7 +283,6 @@ files:
283
283
  - lib/ruby_terraform/commands.rb
284
284
  - lib/ruby_terraform/commands/apply.rb
285
285
  - lib/ruby_terraform/commands/base.rb
286
- - lib/ruby_terraform/commands/clean.rb
287
286
  - lib/ruby_terraform/commands/destroy.rb
288
287
  - lib/ruby_terraform/commands/force_unlock.rb
289
288
  - lib/ruby_terraform/commands/format.rb
@@ -300,7 +299,6 @@ files:
300
299
  - lib/ruby_terraform/commands/providers_mirror.rb
301
300
  - lib/ruby_terraform/commands/providers_schema.rb
302
301
  - lib/ruby_terraform/commands/refresh.rb
303
- - lib/ruby_terraform/commands/remote_config.rb
304
302
  - lib/ruby_terraform/commands/show.rb
305
303
  - lib/ruby_terraform/commands/state_list.rb
306
304
  - lib/ruby_terraform/commands/state_move.rb
@@ -320,13 +318,12 @@ files:
320
318
  - lib/ruby_terraform/errors.rb
321
319
  - lib/ruby_terraform/errors/execution_error.rb
322
320
  - lib/ruby_terraform/options.rb
323
- - lib/ruby_terraform/options/common.rb
324
321
  - lib/ruby_terraform/options/definition.rb
325
322
  - lib/ruby_terraform/options/definitions.rb
326
323
  - lib/ruby_terraform/options/factory.rb
324
+ - lib/ruby_terraform/options/global.rb
327
325
  - lib/ruby_terraform/options/name.rb
328
326
  - lib/ruby_terraform/options/types.rb
329
- - lib/ruby_terraform/options/types/base.rb
330
327
  - lib/ruby_terraform/options/types/flag.rb
331
328
  - lib/ruby_terraform/options/types/standard.rb
332
329
  - lib/ruby_terraform/options/values.rb
@@ -1,26 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'fileutils'
4
-
5
- module RubyTerraform
6
- module Commands
7
- class Clean
8
- attr_reader :logger
9
-
10
- def initialize(directory: nil, logger: nil)
11
- @directory = directory || '.terraform'
12
- @logger = logger || RubyTerraform.configuration.logger
13
- end
14
-
15
- def execute(parameters = {})
16
- directory = parameters[:directory] || @directory
17
- begin
18
- logger.info "Cleaning terraform directory '#{directory}'."
19
- FileUtils.rm_r(directory, secure: true)
20
- rescue Errno::ENOENT => e
21
- logger.error "Couldn't clean '#{directory}': #{e.message}"
22
- end
23
- end
24
- end
25
- end
26
- end
@@ -1,25 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative 'base'
4
-
5
- module RubyTerraform
6
- module Commands
7
- class RemoteConfig < Base
8
- def subcommands
9
- %w[remote config]
10
- end
11
-
12
- def options
13
- %w[
14
- -backend
15
- -backend-config
16
- -no-color
17
- ]
18
- end
19
-
20
- def parameter_defaults(_parameters)
21
- { backend_config: {} }
22
- end
23
- end
24
- end
25
- end
@@ -1,19 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'immutable-struct'
4
-
5
- module RubyTerraform
6
- module Options
7
- module Types
8
- class Base < ImmutableStruct.new(:name, :value, :separator)
9
- def initialize(name, value, **opts)
10
- super(name: name, value: value, separator: opts[:separator])
11
- end
12
-
13
- def apply(_builder)
14
- raise 'Not implemented.'
15
- end
16
- end
17
- end
18
- end
19
- end