Method: Sunshine::Gem#initialize

Defined in:
lib/sunshine/package_managers/gem.rb

#initialize(name, options = {}, &block) ⇒ Gem

Returns a new instance of Gem.



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/sunshine/package_managers/gem.rb', line 19

def initialize(name, options={}, &block)
  super(name, options) do
    version = options[:version] ? " --version '#{options[:version]}'" : ""

    source = if options[:source]
      " --source #{options[:source]} --source http://gemcutter.org"
    end

    install_opts = " --no-ri --no-rdoc"
    if options[:opts]
      install_opts = "#{install_opts} -- #{options[:opts]}"
    end

    install   "gem install #{@pkg}#{version}#{source}#{install_opts}"
    uninstall "gem uninstall #{@pkg}#{version}"
    check     "gem list #{@pkg} -i#{version}"

    requires(*options[:require].to_a) if options[:require]

    instance_eval(&block) if block_given?
  end
end