class Lono::Seed::Base

Public Class Methods

new(options={}) click to toggle source

Override Thor::Base initialize

# File lib/lono/seed/base.rb, line 24
def initialize(options={})
  reinitialize(options)
end

Public Instance Methods

create_param_file() click to toggle source
# File lib/lono/seed/base.rb, line 48
def create_param_file
  @output_template = Lono::Output::Template.new(@blueprint, @template)
  if @output_template.parameters.empty?
    puts "Template has no parameters."
    return
  end

  # Generate by parameter group first
  lines, shown = [], []
  @output_template.parameter_groups.each do |label, parameters|
    lines << "# Parameter Group: #{label}"
    parameters.each do |name|
      parameter_line = parameter_line(name)
      lines << parameter_line unless lines.include?(parameter_line)
      shown << name
    end
    lines << ""
  end if @output_template.parameter_groups

  # Then generate the rest
  @output_template.parameters.each do |name, data|
    lines << parameter_line(name) unless shown.include?(name)
  end

  content = lines.join("\n")
  dest_path = "configs/#{@blueprint}/params/#{Lono.env}.txt" # only support environment level parameters for now
  create_file(dest_path, content) # Thor::Action
end
create_params() click to toggle source
# File lib/lono/seed/base.rb, line 43
def create_params
  return unless params
  create_param_file
end
create_variables() click to toggle source
# File lib/lono/seed/base.rb, line 101
def create_variables
  return unless variables
  dest_path = "configs/#{@blueprint}/variables/#{Lono.env}.rb"
  create_file(dest_path, variables) # Thor::Action
end
description_example(description) click to toggle source
# File lib/lono/seed/base.rb, line 90
def description_example(description)
  return unless description
  md = description.match(/(Example|IE): (.*)/)
  return unless md
  md[2]
end
finish() click to toggle source
# File lib/lono/seed/base.rb, line 108
def finish; end
generate_template() click to toggle source
# File lib/lono/seed/base.rb, line 39
def generate_template
  Lono::Template::Generator.new(@options).run
end
parameter_line(name) click to toggle source
# File lib/lono/seed/base.rb, line 77
def parameter_line(name)
  data = @output_template.parameters[name]
  example = description_example(data["Description"])
  if data["Default"].nil?
    line = "#{name}=#{example} # (required)"
  else
    default = data["Default"]
    line = "# #{name}=#{default}"
    line = "#{line} # #{example}" if example
  end
  line
end
params() click to toggle source
# File lib/lono/seed/base.rb, line 97
def params
  true
end
run() click to toggle source
# File lib/lono/seed/base.rb, line 30
def run
  generate_template
  setup
  self.destination_root = Dir.pwd # Thor::Actions require destination_root to be set
  create_params
  create_variables
  finish
end
setup() click to toggle source
# File lib/lono/seed/base.rb, line 107
def setup; end
variables() click to toggle source

Meant to be overriden by subclass Return String with contents of variables file.

# File lib/lono/seed/base.rb, line 112
def variables
  false
end