Module: Terradactyl::Terraform

Defined in:
lib/terradactyl/terraform/version.rb,
lib/terradactyl/terraform/planfile.rb,
lib/terradactyl/terraform/commands/fmt.rb,
lib/terradactyl/terraform/commands/base.rb,
lib/terradactyl/terraform/commands/init.rb,
lib/terradactyl/terraform/commands/plan.rb,
lib/terradactyl/terraform/commands/show.rb,
lib/terradactyl/terraform/commands/apply.rb,
lib/terradactyl/terraform/version_manager.rb,
lib/terradactyl/terraform/commands/destroy.rb,
lib/terradactyl/terraform/commands/options.rb,
lib/terradactyl/terraform/commands/refresh.rb,
lib/terradactyl/terraform/commands/version.rb,
lib/terradactyl/terraform/commands/validate.rb,
lib/terradactyl/terraform/version_manager/binary.rb,
lib/terradactyl/terraform/version_manager/package.rb,
lib/terradactyl/terraform/version_manager/defaults.rb,
lib/terradactyl/terraform/version_manager/inventory.rb,
lib/terradactyl/terraform/version_manager/downloader.rb

Defined Under Namespace

Modules: Commands, Rev011, Rev012, Rev013, Rev014, Rev015, Rev1_00, Rev1_01, Rev1_02, Rev1_03, Rev1_04, Rev1_05, Rev1_06, Rev1_07, Rev1_08, Rev1_latest, Subcommands, VersionManager Classes: PlanFile, PlanFileParserError

Constant Summary collapse

VERSION =
'1.8.2'

Class Method Summary collapse

Class Method Details

.calc_revision(version) ⇒ Object



6
7
8
9
10
11
# File 'lib/terradactyl/terraform/commands/base.rb', line 6

def calc_revision(version)
  major, minor = version.split(/\.|-/).take(2)
  major = major.to_i.zero? ? major : major + '_'
  minor = minor.nil? ? 'latest' : minor.rjust(2, '0') # pad a single digit unless not provided
  ['Rev', major, minor].join
end

.revision(version) ⇒ Object



13
14
15
# File 'lib/terradactyl/terraform/commands/base.rb', line 13

def revision(version)
  version ? calc_revision(version) : revisions.last
end

.revisionsObject



17
18
19
# File 'lib/terradactyl/terraform/commands/base.rb', line 17

def revisions
  constants.select { |c| c =~ /Rev/ }.sort
end

.select_revision(version, object) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
# File 'lib/terradactyl/terraform/commands/base.rb', line 21

def select_revision(version, object)
  klass_name = object.class.name.split('::').last
  revision   = "#{revision(version)}::#{klass_name}"
  return if klass_name == 'Base'

  if Terradactyl::Terraform.const_defined?(revision)
    object.extend(Terradactyl::Terraform.const_get(revision))
  else
    object.extend(Terradactyl::Terraform.const_get("Subcommands::#{klass_name}"))
  end
end