Sha256: d034d8f09a2cea9c112adcdf2a1c44ca88b8bdd596ad9e2a3ee97e0e07feddc6

Contents?: true

Size: 1.07 KB

Versions: 56

Compression:

Stored size: 1.07 KB

Contents

# frozen_string_literal: true

module Krane
  module OptionsHelper
    class OptionsError < StandardError; end

    STDIN_TEMP_FILE = "from_stdin.yml"
    class << self
      def with_processed_template_paths(template_paths, render_erb: false)
        validated_paths = []
        template_paths.uniq!
        template_paths.each do |template_path|
          next if template_path == '-'
          validated_paths << template_path
        end

        if template_paths.include?("-")
          Dir.mktmpdir("krane") do |dir|
            template_dir_from_stdin(temp_dir: dir, render_erb: render_erb)
            validated_paths << dir
            yield validated_paths
          end
        else
          yield validated_paths
        end
      end

      private

      def template_dir_from_stdin(temp_dir:, render_erb:)
        tempfile = STDIN_TEMP_FILE
        tempfile += ".erb" if render_erb
        File.open(File.join(temp_dir, tempfile), 'w+') { |f| f.print($stdin.read) }
      rescue IOError, Errno::ENOENT => e
        raise OptionsError, e.message
      end
    end
  end
end

Version data entries

56 entries across 56 versions & 2 rubygems

Version Path
krane-3.7.2 lib/krane/options_helper.rb
krane-3.7.1 lib/krane/options_helper.rb
krane-3.7.0 lib/krane/options_helper.rb
krane-3.6.2 lib/krane/options_helper.rb
krane-3.6.1 lib/krane/options_helper.rb
krane-3.5.2 lib/krane/options_helper.rb
krane-3.5.1 lib/krane/options_helper.rb
krane-3.5.0 lib/krane/options_helper.rb
krane-3.4.2 lib/krane/options_helper.rb
krane-3.4.1 lib/krane/options_helper.rb
krane-3.4.0 lib/krane/options_helper.rb
krane-3.3.0 lib/krane/options_helper.rb
krane-3.2.0 lib/krane/options_helper.rb
krane-3.1.0 lib/krane/options_helper.rb
krane-3.0.1 lib/krane/options_helper.rb
krane-3.0.0 lib/krane/options_helper.rb
krane-2.4.9 lib/krane/options_helper.rb
krane-2.4.8 lib/krane/options_helper.rb
krane-2.4.7 lib/krane/options_helper.rb
krane-2.4.6 lib/krane/options_helper.rb