class Gem::BuildTask

Attributes

gemspec_file[R]
options[R]

Public Class Methods

new(gemspec_file, options = {}) click to toggle source
# File lib/tasks/gem/build_task.rb, line 18
def initialize(gemspec_file, options = {})
  @gemspec_file = gemspec_file
  @options = options
end

Public Instance Methods

build_gem(gemspec_file) click to toggle source
# File lib/tasks/gem/build_task.rb, line 34
def build_gem(gemspec_file)
  rubygems_output = Anvil::Rubygems.build(gemspec_file)
  gem_file        = extract_gem_file(rubygems_output)

  FileUtils.mkdir_p('pkg')
  FileUtils.move(gem_file, 'pkg')

  File.expand_path("pkg/#{gem_file}")
end
extract_gem_file(output) click to toggle source
# File lib/tasks/gem/build_task.rb, line 44
def extract_gem_file(output)
  output.match(/File: (.*)$/)[1]
end
install?() click to toggle source
# File lib/tasks/gem/build_task.rb, line 48
def install?
  options.fetch(:install, true)
end
task() click to toggle source
# File lib/tasks/gem/build_task.rb, line 23
def task
  path = File.dirname(gemspec_file)

  Dir.chdir(path) do
    gem_file = build_gem(gemspec_file)
    Anvil::Rubygems.install gem_file if install?

    gem_file
  end
end