Method: Gem::PackageTask#define

Defined in:
lib/rubygems/package_task.rb

#defineObject

Create the Rake tasks and actions specified by this Gem::PackageTask. (define is automatically called if a block is given to new).



93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
# File 'lib/rubygems/package_task.rb', line 93

def define
  super

  gem_file = File.basename gem_spec.cache_file
  gem_path = File.join package_dir, gem_file
  gem_dir  = File.join package_dir, gem_spec.full_name

  task package: [:gem]

  directory package_dir
  directory gem_dir

  desc "Build the gem file #{gem_file}"
  task gem: [gem_path]

  trace = Rake.application.options.trace
  Gem.configuration.verbose = trace

  file gem_path => [package_dir, gem_dir] + @gem_spec.files do
    chdir(gem_dir) do
      when_writing "Creating #{gem_spec.file_name}" do
        Gem::Package.build gem_spec

        verbose trace do
          mv gem_file, ".."
        end
      end
    end
  end
end