Sha256: d7bd19329e09597f9b3dca2495e80a4f27f99ae33484665bec99a44bed03ce33

Contents?: true

Size: 1.01 KB

Versions: 1

Compression:

Stored size: 1.01 KB

Contents

# -*- encoding: utf-8 -*-

module Busser
  module Mamba
    # Common methods for pip
    #
    # @author Jaime Gil de Sagredo <jaimegildesagredo@gmail.com>
    #
    module Pip
      module_function

      def ensure_pip
        if !pip_installed?
          info '`pip` is not installed, installing ...'
          f = Tempfile.new('busser-mamba', Dir.tmpdir, 'wb+')
          f.write(pip_install_script)
          f.flush
          run!("python #{f.path}")
          f.close!
          info '`pip` was successfully installed.'
        end
      end

      def pip_install_script
        uri = URI('https://bootstrap.pypa.io/get-pip.py')
        conn = Net::HTTP.new(uri.host, uri.port)
        conn.use_ssl = true
        conn.start
        conn.get(uri.request_uri).body
      end

      def pip_installed?
        system('pip --version')
        $?.exitstatus == 0
      end

      def pip_install(requirements)
        cmd = "pip install #{requirements}"
        info "Running #{cmd} ..."
        run!(cmd)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
busser-mamba-0.2.2 lib/busser/mamba/pip.rb