Class: PostIt::Installer

Inherits:
Object
  • Object
show all
Defined in:
lib/postit/installer.rb

Instance Method Summary collapse

Constructor Details

#initialize(bundler_version) ⇒ Installer

Returns a new instance of Installer.



3
4
5
# File 'lib/postit/installer.rb', line 3

def initialize(bundler_version)
  @bundler_version = bundler_version
end

Instance Method Details

#install!Object



20
21
22
23
24
25
26
# File 'lib/postit/installer.rb', line 20

def install!
  return if installed?
  require 'rubygems/dependency_installer'
  installer = Gem::DependencyInstaller.new
  installer.install('bundler', @bundler_version)
  installer.installed_gems
end

#installed?Boolean

Returns:

  • (Boolean)


7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/postit/installer.rb', line 7

def installed?
  if Gem::Specification.respond_to?(:find_by_name)
    !Gem::Specification.find_by_name('bundler', @bundler_version).nil?
  else
    requirement = Gem::Requirement.new(@bundler_version)
    Gem.source_index.gems.values.any? do |s|
      s.name == 'bundler' && requirement.satisfied_by?(s.version)
    end
  end
rescue LoadError
  false
end