class Terraspace::CLI::New::Helper

Public Class Methods

options() click to toggle source
# File lib/terraspace/cli/new/helper.rb, line 7
def self.options
  [
    [:force, aliases: %w[y], type: :boolean, desc: "Bypass overwrite are you sure prompt for existing files"],
    [:name, desc: "Helper name used for the filename. Defaults to the project, module or stack name"],
    [:type, default: "project", desc: "project, stack or module"],
  ]
end
source_root() click to toggle source
# File lib/terraspace/cli/new/helper.rb, line 16
def self.source_root
  File.expand_path("../../../templates/base/helper", __dir__)
end

Public Instance Methods

create() click to toggle source
# File lib/terraspace/cli/new/helper.rb, line 50
def create
  directory ".", dest
end

Private Instance Methods

dest() click to toggle source
# File lib/terraspace/cli/new/helper.rb, line 39
def dest
  map = {
    project: "config/helpers",
    stack:   "app/stacks/#{stack}/config/helpers",
    module:  "app/modules/#{stack}/config/helpers",
  }
  map[type.to_sym]
end
helper_class() click to toggle source
# File lib/terraspace/cli/new/helper.rb, line 27
def helper_class
  if type == "project"
    "Terraspace::#{type.camelcase}::#{name.camelcase}Helper"
  else
    "Terraspace::#{type.camelcase}::#{stack.camelcase}::#{name.camelcase}Helper"
  end
end
name() click to toggle source
# File lib/terraspace/cli/new/helper.rb, line 35
def name
  options[:name] || stack
end
type() click to toggle source
# File lib/terraspace/cli/new/helper.rb, line 21
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