class Bundler::Resolver::Package
* The dependency explicit set in the Gemfile for this gem (if any).
* Whether the gem should be unlocked to its latest version.
* The locked version of this gem resolution should favor (if any).
* Platforms this gem will be resolved on.
The class holds the following information:
Represents a gem being resolved, in a format PubGrub likes.
def ==(other)
def ==(other) self.class == other.class && @name == other.name end
def consider_prereleases!
def consider_prereleases! @prerelease = :consider_last end
def current_platform?
def current_platform? @dependency.current_platform? end
def force_ruby_platform?
def force_ruby_platform? @dependency.force_ruby_platform end
def hash
def hash @name.hash end
def ignores_prereleases?
def ignores_prereleases? @prerelease == :ignore end
def initialize(name, platforms, locked_specs:, unlock:, prerelease: false, dependency: nil)
def initialize(name, platforms, locked_specs:, unlock:, prerelease: false, dependency: nil) @name = name @platforms = platforms @locked_version = locked_specs[name].first&.version @unlock = unlock @dependency = dependency || Dependency.new(name, @locked_version) @prerelease = @dependency.prerelease? || @locked_version&.prerelease? || prerelease ? :consider_first : :ignore end
def meta?
def meta? @name.end_with?("\0") end
def prerelease_specified?
def prerelease_specified? @prerelease == :consider_first end
def root?
def root? false end
def to_s
def to_s @name.delete("\0") end
def unlock?
def unlock? @unlock.empty? || @unlock.include?(name) end