class Gem::Tasks::Build::Task

Public Instance Methods

build(path,gemspec) click to toggle source

@param [String] path

@param [Gem::Specification] gemspec

@abstract

# File lib/rubygems/tasks/build/task.rb, line 15
def build(path,gemspec)
end

Protected Instance Methods

build_task(name,extname=name) click to toggle source

Defines build task(s) for file type.

@param [Symbol] name

The name for the task(s).

@param [String, Symbol] extname

The file extension for the resulting files.

@api semipublic

# File lib/rubygems/tasks/build/task.rb, line 31
def build_task(name,extname=name)
  directory Project::PKG_DIR

  task :validate

  @project.builds.each do |build,packages|
    gemspec = @project.gemspecs[build]
    path    = packages[extname]

    # define file tasks, so the packages are not needless re-built
    file(path => [Project::PKG_DIR, *gemspec.files]) do
      invoke :validate

      status "Building #{File.basename(path)} ..."

      build(path,gemspec)
    end

    task "build:#{name}:#{build}" => path
    task "build:#{build}"         => "build:#{name}:#{build}"
  end

  gemspec_tasks "build:#{name}"

  desc "Builds all packages" unless task?(:build)
  task :build => "build:#{name}"
end