Preview Ruby 4.1 is a preview. It can change before the final release. Switch to Ruby 4.0 →
instance method
Gem::PackageTask#define
define
lib/rubygems/package_task.rb
View on GitHub ↗
# File tmp/rubies/ruby-4.1.0-preview1/lib/rubygems/package_task.rb, line 98
def define
Gem::ContentAddress.eligible!(gem_spec) if content_addressable
super
gem_file = File.basename gem_spec.cache_file
gem_path = File.join package_dir, gem_file
gem_dir = package_dir_path
if content_addressable
build_target = stamp_file
gem_description = "content-addressable gem #{gem_spec.name}-#{gem_spec.version} " \
"(Platform: #{gem_spec.platform}, Ruby ABI: #{content_addressable_ruby_abi})"
discard_stale_stamp_file
else
build_target = gem_path
gem_description = "gem file #{gem_file}"
end
task package: [:gem]
directory package_dir
directory gem_dir
desc "Build the #{gem_description}"
task gem: [build_target]
trace = Rake.application.options.trace
Gem.configuration.verbose = trace
file build_target => [package_dir, gem_dir] + @gem_spec.files do
previous_gem = recorded_gem_path if content_addressable
built_gem_path = nil
chdir(gem_dir) do
when_writing "Creating #{gem_description}" do
built_gem_file = Gem::Package.build gem_spec, content_addressable: content_addressable
verbose trace do
mv built_gem_file, ".."
end
if content_addressable
built_gem_path = File.join(package_dir, built_gem_file)
File.write File.join("..", File.basename(stamp_file)), built_gem_path
end
end
end
if previous_gem && built_gem_path && previous_gem != built_gem_path
verbose trace do
rm_f previous_gem
end
end
end
end
Create the Rake tasks and actions specified by this Gem::PackageTask. (define is automatically called if a block is given to new).
See also
#content_addressable_ruby_abi
#discard_stale_stamp_file
.new
#init
also in
4.0 · 3.4 · 3.3 · 3.2 · 3.1 · 3.0