Sha256: 47ee16b1f3d3bfca0bd2c7295d4297f5450f632278af77e7c773b5aa7169326d

Contents?: true

Size: 1.27 KB

Versions: 36

Compression:

Stored size: 1.27 KB

Contents

class Terraspace::CLI::New
  class Test < Thor::Group
    include Thor::Actions
    include Terraspace::CLI::New::Helpers

    argument :name

    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
    options.each { |args| class_option(*args) }

  private
    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

    def test_name
      options[:test_name] || name
    end

    def dest
      map = {
        project: ".", # Terraspace.root
        stack:   "app/stacks/#{name}",
        module:  "app/modules/#{name}",
      }
      map[type.to_sym]
    end

    def test_template_source(template, type)
      source = Terraspace::CLI::New::Source::Test.new(self, @options)
      source.set_source_paths(template, type)
    end

  public

    def create
      test_template_source(@options[:lang], type)
      puts "=> Creating #{type} test: #{name}"
      directory ".", dest
    end
  end
end

Version data entries

36 entries across 36 versions & 1 rubygems

Version Path
terraspace-0.6.23 lib/terraspace/cli/new/test.rb
terraspace-0.6.22 lib/terraspace/cli/new/test.rb
terraspace-0.6.21 lib/terraspace/cli/new/test.rb
terraspace-0.6.20 lib/terraspace/cli/new/test.rb
terraspace-0.6.19 lib/terraspace/cli/new/test.rb
terraspace-0.6.18 lib/terraspace/cli/new/test.rb
terraspace-0.6.17 lib/terraspace/cli/new/test.rb
terraspace-0.6.16 lib/terraspace/cli/new/test.rb
terraspace-0.6.15 lib/terraspace/cli/new/test.rb
terraspace-0.6.13 lib/terraspace/cli/new/test.rb
terraspace-0.6.12 lib/terraspace/cli/new/test.rb
terraspace-0.6.11 lib/terraspace/cli/new/test.rb
terraspace-0.6.10 lib/terraspace/cli/new/test.rb
terraspace-0.6.9 lib/terraspace/cli/new/test.rb
terraspace-0.6.8 lib/terraspace/cli/new/test.rb
terraspace-0.6.7 lib/terraspace/cli/new/test.rb
terraspace-0.6.6 lib/terraspace/cli/new/test.rb
terraspace-0.6.5 lib/terraspace/cli/new/test.rb
terraspace-0.6.4 lib/terraspace/cli/new/test.rb
terraspace-0.6.3 lib/terraspace/cli/new/test.rb