Sha256: 3282280a1ea6133e3eee812b2f2568c5ae9018946872a6885e7ed430a6950305

Contents?: true

Size: 1.38 KB

Versions: 136

Compression:

Stored size: 1.38 KB

Contents

# frozen_string_literal: true

require 'eac_ruby_utils/core_ext'

module Avm
  module Files
    module Appendable
      require_sub __FILE__

      attr_reader :variables_source

      def appended
        @appended ||= []
      end

      def append_templatized_directories(directories)
        directories.each { |directory| append_templatized_directory(directory) }
        self
      end

      def append_plain_directory(directory)
        appended << ::Avm::Files::Appendable::PlainDirectory.new(self, directory)
        self
      end

      def append_tar_output_command(tar_command)
        appended << ::Avm::Files::Appendable::TarOutputCommand.new(self, tar_command)
        self
      end

      def append_templatized_directory(directory)
        appended << ::Avm::Files::Appendable::TemplatizedDirectory.new(self, directory)
        self
      end

      def append_file_content(target_path, content)
        appended << ::Avm::Files::Appendable::FileContent
                      .new(self, target_path, content)
        self
      end

      def variables_source_set(source)
        @variables_source = source
        self
      end

      def write_appended_on(target_dir)
        target_dir = target_dir.to_pathname
        raise "\"#{target_dir}\" is not a directory" unless target_dir.directory?

        appended.each { |append| append.write_on(target_dir) }
      end
    end
  end
end

Version data entries

136 entries across 136 versions & 3 rubygems

Version Path
avm-files-0.8.1 lib/avm/files/appendable.rb
avm-files-0.8.0 lib/avm/files/appendable.rb
eac_tools-0.93.0 sub/avm-files/lib/avm/files/appendable.rb
avm-files-0.7.0 lib/avm/files/appendable.rb
eac_tools-0.85.0 sub/avm-files/lib/avm/files/appendable.rb
eac_tools-0.84.2 sub/avm-files/lib/avm/files/appendable.rb
eac_tools-0.84.1 sub/avm-files/lib/avm/files/appendable.rb
eac_tools-0.84.0 sub/avm-files/lib/avm/files/appendable.rb
eac_tools-0.83.0 sub/avm-files/lib/avm/files/appendable.rb
eac_tools-0.82.0 sub/avm-files/lib/avm/files/appendable.rb
eac_tools-0.81.0 sub/avm-files/lib/avm/files/appendable.rb
eac_tools-0.80.0 sub/avm-files/lib/avm/files/appendable.rb
eac_tools-0.79.0 sub/avm-files/lib/avm/files/appendable.rb
eac_tools-0.78.0 sub/avm-files/lib/avm/files/appendable.rb
eac_tools-0.77.1 sub/avm-files/lib/avm/files/appendable.rb
eac_tools-0.77.0 sub/avm-files/lib/avm/files/appendable.rb
eac_tools-0.76.1 sub/avm-files/lib/avm/files/appendable.rb
eac_tools-0.76.0 sub/avm-files/lib/avm/files/appendable.rb
eac_tools-0.75.2 sub/avm-files/lib/avm/files/appendable.rb
eac_tools-0.75.1 sub/avm-files/lib/avm/files/appendable.rb