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

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.
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