class Bundler::PubGrub::VersionConstraint
Attributes
package[R]
range[R]
Public Class Methods
any(package)
click to toggle source
# File bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb, line 33 def any(package) new(package, range: VersionRange.any) end
empty(package)
click to toggle source
# File bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb, line 37 def empty(package) new(package, range: VersionRange.empty) end
exact(package, version)
click to toggle source
# File bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb, line 28 def exact(package, version) range = VersionRange.new(min: version, max: version, include_min: true, include_max: true) new(package, range: range) end
new(package, range: nil)
click to toggle source
@param package [Bundler::PubGrub::Package] @param range [Bundler::PubGrub::VersionRange]
# File bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb, line 9 def initialize(package, range: nil) @package = package @range = range end
Public Instance Methods
==(other)
click to toggle source
# File bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb, line 23 def ==(other) package == other.package && range == other.range end
allows_all?(other)
click to toggle source
# File bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb, line 67 def allows_all?(other) range.allows_all?(other.range) end
allows_any?(other)
click to toggle source
# File bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb, line 71 def allows_any?(other) range.intersects?(other.range) end
any?()
click to toggle source
Does this match every version of the package
# File bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb, line 120 def any? range.any? end
constraint_string()
click to toggle source
# File bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb, line 107 def constraint_string if any? ">= 0" else range.to_s end end
difference(other)
click to toggle source
# File bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb, line 63 def difference(other) intersect(other.invert) end
disjoint?(other)
click to toggle source
# File bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb, line 83 def disjoint?(other) !overlap?(other) end
empty?()
click to toggle source
# File bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb, line 115 def empty? range.empty? end
eql?(other)
click to toggle source
# File bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb, line 18 def eql?(other) package.eql?(other.package) && range.eql?(other.range) end
hash()
click to toggle source
# File bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb, line 14 def hash package.hash ^ range.hash end
inspect()
click to toggle source
# File bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb, line 124 def inspect "#<#{self.class} #{self}>" end
intersect(other)
click to toggle source
# File bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb, line 42 def intersect(other) unless package == other.package raise ArgumentError, "Can only intersect between VersionConstraint of the same package" end self.class.new(package, range: range.intersect(other.range)) end
invert()
click to toggle source
# File bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb, line 58 def invert new_range = range.invert self.class.new(package, range: new_range) end
overlap?(other)
click to toggle source
# File bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb, line 79 def overlap?(other) other.allows_any?(self) end
relation(other)
click to toggle source
# File bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb, line 87 def relation(other) if subset?(other) :subset elsif overlap?(other) :overlap else :disjoint end end
subset?(other)
click to toggle source
# File bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb, line 75 def subset?(other) other.allows_all?(self) end
to_s(allow_every: false)
click to toggle source
# File bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb, line 97 def to_s(allow_every: false) if Package.root?(package) package.to_s elsif allow_every && any? "every version of #{package}" else "#{package} #{constraint_string}" end end
union(other)
click to toggle source
# File bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb, line 50 def union(other) unless package == other.package raise ArgumentError, "Can only intersect between VersionConstraint of the same package" end self.class.new(package, range: range.union(other.range)) end