class Terraspace::CLI::New::Test

Public Class Methods

options() click to toggle source
# File lib/terraspace/cli/new/test.rb, line 8
def self.options
  [
    [:force, aliases: %w[y], type: :boolean, desc: "Bypass overwrite are you sure prompt for existing files"],
    [:test_name, desc: "Test name. Defaults to the project, module or stack name"],
    [:type, default: "project", desc: "project, stack or module"],
  ]
end

Public Instance Methods

create() click to toggle source
# File lib/terraspace/cli/new/test.rb, line 44
def create
  test_template_source(@options[:lang], type)
  puts "=> Creating #{type} test: #{name}"
  directory ".", dest
end

Private Instance Methods

dest() click to toggle source
# File lib/terraspace/cli/new/test.rb, line 28
def dest
  map = {
    project: ".", # Terraspace.root
    stack:   "app/stacks/#{name}",
    module:  "app/modules/#{name}",
  }
  map[type.to_sym]
end
test_name() click to toggle source
# File lib/terraspace/cli/new/test.rb, line 24
def test_name
  options[:test_name] || name
end
test_template_source(template, type) click to toggle source
# File lib/terraspace/cli/new/test.rb, line 37
def test_template_source(template, type)
  source = Terraspace::CLI::New::Source::Test.new(self, @options)
  source.set_source_paths(template, type)
end
type() click to toggle source
# File lib/terraspace/cli/new/test.rb, line 18
def type
  valid_types = %w[project stack module]
  type = @options[:type]
  valid_types.include?(type) ? type : "project" # fallback to project if user provides invalid type
end