Class: Bundler::Resolver::Package
- Inherits:
-
Object
- Object
- Bundler::Resolver::Package
- Defined in:
- lib/bundler/resolver/package.rb
Overview
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).
Direct Known Subclasses
Instance Attribute Summary collapse
-
#dependency ⇒ Object
readonly
Returns the value of attribute dependency.
-
#locked_version ⇒ Object
readonly
Returns the value of attribute locked_version.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#platforms ⇒ Object
readonly
Returns the value of attribute platforms.
Instance Method Summary collapse
- #==(other) ⇒ Object
- #current_platform? ⇒ Boolean
- #force_ruby_platform? ⇒ Boolean
- #hash ⇒ Object
-
#initialize(name, platforms, locked_specs, unlock, dependency: nil) ⇒ Package
constructor
A new instance of Package.
- #meta? ⇒ Boolean
- #prerelease_specified? ⇒ Boolean
- #root? ⇒ Boolean
- #to_s ⇒ Object
- #unlock? ⇒ Boolean
Constructor Details
#initialize(name, platforms, locked_specs, unlock, dependency: nil) ⇒ Package
Returns a new instance of Package.
18 19 20 21 22 23 24 |
# File 'lib/bundler/resolver/package.rb', line 18 def initialize(name, platforms, locked_specs, unlock, dependency: nil) @name = name @platforms = platforms @locked_version = locked_specs[name].first&.version @unlock = unlock @dependency = dependency || Dependency.new(name, @locked_version) end |
Instance Attribute Details
#dependency ⇒ Object (readonly)
Returns the value of attribute dependency.
16 17 18 |
# File 'lib/bundler/resolver/package.rb', line 16 def dependency @dependency end |
#locked_version ⇒ Object (readonly)
Returns the value of attribute locked_version.
16 17 18 |
# File 'lib/bundler/resolver/package.rb', line 16 def locked_version @locked_version end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
16 17 18 |
# File 'lib/bundler/resolver/package.rb', line 16 def name @name end |
#platforms ⇒ Object (readonly)
Returns the value of attribute platforms.
16 17 18 |
# File 'lib/bundler/resolver/package.rb', line 16 def platforms @platforms end |
Instance Method Details
#==(other) ⇒ Object
38 39 40 |
# File 'lib/bundler/resolver/package.rb', line 38 def ==(other) self.class == other.class && @name == other.name end |
#current_platform? ⇒ Boolean
58 59 60 |
# File 'lib/bundler/resolver/package.rb', line 58 def current_platform? @dependency.current_platform? end |
#force_ruby_platform? ⇒ Boolean
54 55 56 |
# File 'lib/bundler/resolver/package.rb', line 54 def force_ruby_platform? @dependency.force_ruby_platform end |
#hash ⇒ Object
42 43 44 |
# File 'lib/bundler/resolver/package.rb', line 42 def hash @name.hash end |
#meta? ⇒ Boolean
34 35 36 |
# File 'lib/bundler/resolver/package.rb', line 34 def @name.end_with?("\0") end |
#prerelease_specified? ⇒ Boolean
50 51 52 |
# File 'lib/bundler/resolver/package.rb', line 50 def prerelease_specified? @dependency.prerelease? end |
#root? ⇒ Boolean
30 31 32 |
# File 'lib/bundler/resolver/package.rb', line 30 def root? false end |
#to_s ⇒ Object
26 27 28 |
# File 'lib/bundler/resolver/package.rb', line 26 def to_s @name.delete("\0") end |
#unlock? ⇒ Boolean
46 47 48 |
# File 'lib/bundler/resolver/package.rb', line 46 def unlock? @unlock.empty? || @unlock.include?(name) end |