class Cloudspin::Stack::Rake::ArtefactTask

Public Class Methods

new(definition_folder:, dist_folder:) click to toggle source
# File lib/cloudspin/stack/rake/artefact_task.rb, line 7
def initialize(definition_folder:, dist_folder:)
  @definition_folder = definition_folder
  @dist_folder = dist_folder
  define
end

Public Instance Methods

add_file(filename) click to toggle source
# File lib/cloudspin/stack/rake/artefact_task.rb, line 35
def add_file(filename)
  builder.add_file_to_package(filename) if File.exists?(filename)
end
add_folder(folder) click to toggle source
# File lib/cloudspin/stack/rake/artefact_task.rb, line 31
def add_folder(folder)
  builder.add_folder_to_package(folder) if Dir.exists?(folder)
end
builder() click to toggle source
# File lib/cloudspin/stack/rake/artefact_task.rb, line 39
def builder
  @builder ||= Cloudspin::Stack::Artefact::Builder.new(
    stack_definition: stack_definition,
    dist_folder: @dist_folder
  )
end
define() click to toggle source
# File lib/cloudspin/stack/rake/artefact_task.rb, line 13
def define
  desc 'Assemble files to be packaged'
  task :build, [:test_folder, :environments_folder, :instance_defaults_file] do |t, args|
    add_folder(args[:test_folder] || './test')
    add_folder(args[:environments_folder] || './environments')
    add_file(args[:instance_defaults_file] || './stack-instance-defaults.yaml')
    ['Rakefile', 'Gemfile', 'Gemfile.lock'].each { |f|
      add_file(f) if File.exists? f
    }
    builder.build
  end

  desc 'Package the artefact'
  task :package do |t, args|
    builder.package
  end
end
stack_definition() click to toggle source
# File lib/cloudspin/stack/rake/artefact_task.rb, line 46
def stack_definition
  @definition ||= Cloudspin::Stack::Definition.from_file(@definition_folder + '/stack-definition.yaml')
end