Sha256: 937c87bd026f603b5c315aa70048ab41b8b0fadc1c5cb3f34703f28f62d26f6f

Contents?: true

Size: 767 Bytes

Versions: 25

Compression:

Stored size: 767 Bytes

Contents

require "tempfile"

module MiniMagick
  # @private
  module Utilities

    module_function

    ##
    # Cross-platform way of finding an executable in the $PATH.
    #
    # @example
    #   MiniMagick::Utilities.which('ruby') #=> "/usr/bin/ruby"
    #
    def which(cmd)
      exts = ENV['PATHEXT'] ? ENV['PATHEXT'].split(';') : ['']
      ENV['PATH'].split(File::PATH_SEPARATOR).each do |path|
        exts.each do |ext|
          exe = File.join(path, "#{cmd}#{ext}")
          return exe if File.executable? exe
        end
      end
      nil
    end

    def tempfile(extension)
      Tempfile.new(["mini_magick", extension]).tap do |tempfile|
        tempfile.binmode
        yield tempfile if block_given?
        tempfile.close
      end
    end

  end
end

Version data entries

25 entries across 25 versions & 1 rubygems

Version Path
mini_magick-4.5.1 lib/mini_magick/utilities.rb
mini_magick-4.5.0 lib/mini_magick/utilities.rb
mini_magick-4.4.0 lib/mini_magick/utilities.rb
mini_magick-4.3.6 lib/mini_magick/utilities.rb
mini_magick-4.3.5 lib/mini_magick/utilities.rb
mini_magick-4.3.4 lib/mini_magick/utilities.rb
mini_magick-4.3.3 lib/mini_magick/utilities.rb
mini_magick-4.3.2 lib/mini_magick/utilities.rb
mini_magick-4.3.1 lib/mini_magick/utilities.rb
mini_magick-4.2.10 lib/mini_magick/utilities.rb
mini_magick-4.2.9 lib/mini_magick/utilities.rb
mini_magick-4.2.7 lib/mini_magick/utilities.rb
mini_magick-4.2.5 lib/mini_magick/utilities.rb
mini_magick-4.2.4 lib/mini_magick/utilities.rb
mini_magick-4.2.3 lib/mini_magick/utilities.rb
mini_magick-4.2.1 lib/mini_magick/utilities.rb
mini_magick-4.2.0 lib/mini_magick/utilities.rb
mini_magick-4.1.1 lib/mini_magick/utilities.rb
mini_magick-4.1.0 lib/mini_magick/utilities.rb
mini_magick-4.0.4 lib/mini_magick/utilities.rb