Sha256: 874186451620acd175a0b334030428de6f0ad1786554c76184425d806fedc5be

Contents?: true

Size: 1.04 KB

Versions: 38

Compression:

Stored size: 1.04 KB

Contents

# frozen_string_literal: true

require 'eac_docker/images/base'
require 'eac_docker/images/coded'
require 'eac_ruby_utils/core_ext'
require 'eac_ruby_utils/fs/temp'
require 'eac_templates/patches/object/template'

module EacDocker
  module Images
    class Templatized < ::EacDocker::Images::Base
      enable_immutable
      immutable_accessor :tag
      attr_reader :provide_dir

      def id
        tag
      end

      def provide
        ::EacRubyUtils::Fs::Temp.on_directory do |provide_dir|
          begin
            self.provide_dir = provide_dir
            write_in_provide_dir
            coded_image(provide_dir).tag(tag).provide
          ensure
            self.provide_dir = nil
          end
        end
      end

      def coded_image(provide_dir)
        ::EacDocker::Images::Coded.new(provide_dir)
      end

      protected

      def variables_source
        self
      end

      def write_in_provide_dir
        template.apply(variables_source, provide_dir)
      end

      private

      attr_writer :provide_dir
    end
  end
end

Version data entries

38 entries across 38 versions & 2 rubygems

Version Path
eac_tools-0.76.1 sub/eac_docker/lib/eac_docker/images/templatized.rb
eac_tools-0.76.0 sub/eac_docker/lib/eac_docker/images/templatized.rb
eac_tools-0.75.2 sub/eac_docker/lib/eac_docker/images/templatized.rb
eac_tools-0.75.1 sub/eac_docker/lib/eac_docker/images/templatized.rb
eac_tools-0.75.0 sub/eac_docker/lib/eac_docker/images/templatized.rb
eac_tools-0.74.1 sub/eac_docker/lib/eac_docker/images/templatized.rb
eac_tools-0.74.0 sub/eac_docker/lib/eac_docker/images/templatized.rb
eac_tools-0.73.0 sub/eac_docker/lib/eac_docker/images/templatized.rb
eac_tools-0.72.0 sub/eac_docker/lib/eac_docker/images/templatized.rb
eac_tools-0.70.1 sub/eac_docker/lib/eac_docker/images/templatized.rb
eac_tools-0.70.0 sub/eac_docker/lib/eac_docker/images/templatized.rb
eac_tools-0.69.1 sub/eac_docker/lib/eac_docker/images/templatized.rb
eac_tools-0.69.0 sub/eac_docker/lib/eac_docker/images/templatized.rb
eac_tools-0.68.0 sub/eac_docker/lib/eac_docker/images/templatized.rb
eac_tools-0.67.1 sub/eac_docker/lib/eac_docker/images/templatized.rb
eac_tools-0.67.0 sub/eac_docker/lib/eac_docker/images/templatized.rb
eac_tools-0.66.0 sub/eac_docker/lib/eac_docker/images/templatized.rb
eac_tools-0.65.1 sub/eac_docker/lib/eac_docker/images/templatized.rb
eac_tools-0.65.0 sub/eac_docker/lib/eac_docker/images/templatized.rb
eac_tools-0.64.0 sub/eac_docker/lib/eac_docker/images/templatized.rb