Class: Bundler::CLI::Init

Inherits:
Object
  • Object
show all
Defined in:
lib/bundler/cli/init.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ Init

Returns a new instance of Init.



5
6
7
# File 'lib/bundler/cli/init.rb', line 5

def initialize(options)
  @options = options
end

Instance Attribute Details

#optionsObject (readonly)

Returns the value of attribute options.



4
5
6
# File 'lib/bundler/cli/init.rb', line 4

def options
  @options
end

Instance Method Details

#runObject



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/bundler/cli/init.rb', line 9

def run
  if File.exist?("Gemfile")
    Bundler.ui.error "Gemfile already exists at #{SharedHelpers.pwd}/Gemfile"
    exit 1
  end

  if options[:gemspec]
    gemspec = File.expand_path(options[:gemspec])
    unless File.exist?(gemspec)
      Bundler.ui.error "Gem specification #{gemspec} doesn't exist"
      exit 1
    end
    spec = Gem::Specification.load(gemspec)
    puts "Writing new Gemfile to #{SharedHelpers.pwd}/Gemfile"
    File.open("Gemfile", "wb") do |file|
      file << "# Generated from #{gemspec}\n"
      file << spec.to_gemfile
    end
  else
    puts "Writing new Gemfile to #{SharedHelpers.pwd}/Gemfile"
    FileUtils.cp(File.expand_path("../../templates/Gemfile", __FILE__), "Gemfile")
  end
end