Sha256: 9f4ee5ab26ae5d194d4f24127c96f2f9064d7d2549e412d181b45f0c64f1a097

Contents?: true

Size: 894 Bytes

Versions: 1

Compression:

Stored size: 894 Bytes

Contents

require_relative "opt_builder"

module MojoMagick
  class Commands
    def self.raw_command(*args)
      execute!(*args)
    end

    class << self
      private

      def execute(command, *args)
        execute = "#{command} #{args}"
        out, outerr, status = Open3.capture3(command, *args.map(&:to_s))
        CommandStatus.new execute, out, outerr, status
      rescue StandardError => e
        raise MojoError, "#{e.class}: #{e.message}"
      end

      def execute!(command, *args)
        status = execute(command, *args)
        unless status.success?
          err_msg = "MojoMagick command failed: #{command}."
          raise(MojoFailed, "#{err_msg} (Exit status: #{status.exit_code})\n  " \
                            "Command: #{status.command}\n  " \
                            "Error: #{status.error}")
        end
        status.return_value
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
mojo_magick-0.6.8 lib/mojo_magick/commands.rb