class Bundler::Resolver::Package
Represents a gem being resolved, in a format PubGrub
likes.
The class holds the following information:
-
Platforms this gem will be resolved on.
-
The locked version of this gem resolution should favor (if any).
-
Whether the gem should be unlocked to its latest version.
-
The dependency explicit set in the Gemfile for this gem (if any).
Attributes
dependency[R]
locked_version[R]
name[R]
platforms[R]
Public Class Methods
new(name, platforms, locked_specs:, unlock:, prerelease: false, dependency: nil)
click to toggle source
# File bundler/resolver/package.rb, line 18 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) @top_level = !dependency.nil? @prerelease = @dependency.prerelease? || @locked_version&.prerelease? || prerelease ? :consider_first : :ignore end
Public Instance Methods
==(other)
click to toggle source
# File bundler/resolver/package.rb, line 48 def ==(other) self.class == other.class && @name == other.name end
consider_prereleases!()
click to toggle source
# File bundler/resolver/package.rb, line 68 def consider_prereleases! @prerelease = :consider_last end
current_platform?()
click to toggle source
# File bundler/resolver/package.rb, line 76 def current_platform? @dependency.current_platform? end
force_ruby_platform?()
click to toggle source
# File bundler/resolver/package.rb, line 72 def force_ruby_platform? @dependency.force_ruby_platform end
hash()
click to toggle source
# File bundler/resolver/package.rb, line 52 def hash @name.hash end
ignores_prereleases?()
click to toggle source
# File bundler/resolver/package.rb, line 60 def ignores_prereleases? @prerelease == :ignore end
meta?()
click to toggle source
# File bundler/resolver/package.rb, line 44 def meta? @name.end_with?("\0") end
platform_specs(specs)
click to toggle source
# File bundler/resolver/package.rb, line 28 def platform_specs(specs) platforms.map {|platform| GemHelpers.select_best_platform_match(specs, platform, prefer_locked: !unlock?) } end
prerelease_specified?()
click to toggle source
# File bundler/resolver/package.rb, line 64 def prerelease_specified? @prerelease == :consider_first end
root?()
click to toggle source
# File bundler/resolver/package.rb, line 36 def root? false end
to_s()
click to toggle source
# File bundler/resolver/package.rb, line 32 def to_s @name.delete("\0") end
top_level?()
click to toggle source
# File bundler/resolver/package.rb, line 40 def top_level? @top_level end
unlock?()
click to toggle source
# File bundler/resolver/package.rb, line 56 def unlock? @unlock.empty? || @unlock.include?(name) end