class RPM::Dependency

Attributes

flags[RW]

@return [String] dependency flags

flagstag[RW]
name[RW]

@return [String] dependency name

nametag[RW]
owner[RW]

@return [Package] package this dependency belongs to

version[RW]

@return [String] dependency version

versiontag[RW]

Public Class Methods

new(name, version, flags, owner) click to toggle source
# File lib/rpm/dependency.rb, line 20
def initialize(name, version, flags, owner)

  RPM::Utils.check_type(version, RPM::Version)
  
  @name = name
  @version = version
  @flags = flags
  @owner = owner
end

Public Instance Methods

eq?() click to toggle source

@return [Boolean] true if '=', '=<' or '>=' are used to compare the version

# File lib/rpm/dependency.rb, line 67
def eq?
  flags & RPM::SENSE[:equal] 
end
ge?() click to toggle source

@return [Boolean] true if '>=' is used to compare the version

# File lib/rpm/dependency.rb, line 77
def ge?
  (flags & RPM::SENSE[:greater]) && (flags & RPM::SENSE[:equal])
end
gt?() click to toggle source

@return [Boolean] true if '>' or '>=' are used to compare the version

# File lib/rpm/dependency.rb, line 62
def gt?
  flags & RPM::SENSE[:greater]
end
le?() click to toggle source

@return [Boolean] true if '=<' is used to compare the version

# File lib/rpm/dependency.rb, line 72
def le?
  (flags & RPM::SENSE[:less]) && (flags & RPM::SENSE[:equal])
end
lt?() click to toggle source

@return [Boolean] true if '<' or '=<' are used to compare the version

# File lib/rpm/dependency.rb, line 57
def lt?
  flags & RPM::SENSE[:less]
end
pre?() click to toggle source

@return [Boolean] true if this is a pre-requires

# File lib/rpm/dependency.rb, line 82
def pre?
  flags & RPM::SENSE[:prereq] 
end
satisfy?(other) click to toggle source

@param [Package, Dependency, Version] other @return [Boolean] true if other satisfies this dependency

# File lib/rpm/dependency.rb, line 32
def satisfy?(other)
  case other
    when RPM::Package then
      other.provides.each do |prov|
        return true if self.satisfy?(prov)
      end
      return false
    when RPM::Dependency then
      RPM::C.rpmdsCompare(
        RPM::C.rpmdsSingle(:providename, other.name,
          other.version.to_vre, other.flags),
        RPM::C.rpmdsSingle(:providename, name,
          version.to_vre, flags)) != 0
    when RPM::Version then
      RPM::C.rpmdsCompare(
        RPM::C.rpmdsSingle(:providename, name,
          other.to_vre, other.to_vre.empty? ? 0 : :equal),
        RPM::C.rpmdsSingle(:providename, name,
          version.to_vre, flags)) != 0
    else
      raise(TypeError, "#{other} is not a Version or Dependency")
    end
end