Class: RPM::MatchIterator

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/rpm/match_iterator.rb

Instance Method Summary collapse

Constructor Details

#initialize(ptr) ⇒ MatchIterator

Returns a new instance of MatchIterator.



17
18
19
# File 'lib/rpm/match_iterator.rb', line 17

def initialize(ptr)
  @ptr = ptr
end

Instance Method Details

#eachObject



21
22
23
24
25
# File 'lib/rpm/match_iterator.rb', line 21

def each
  while (pkg = next_iterator)
    yield pkg
  end
end

#get_iterator_countObject Also known as: count, length



59
60
61
# File 'lib/rpm/match_iterator.rb', line 59

def get_iterator_count
  RPM::C.rpmdbGetIteratorCount(@ptr)
end

#next_iteratorObject



27
28
29
30
31
# File 'lib/rpm/match_iterator.rb', line 27

def next_iterator
  pkg_ptr = RPM::C.rpmdbNextIterator(@ptr)
  return RPM::Package.new(pkg_ptr) unless pkg_ptr.null?
  nil
end

#offsetObject

@ return header join key for current position of rpm database iterator



35
36
37
# File 'lib/rpm/match_iterator.rb', line 35

def offset
  RPM::C.rpmdbGetIteratorOffset(@ptr)
end

#set_iterator_re(tag, mode, string) ⇒ Object Also known as: regexp



39
40
41
42
43
# File 'lib/rpm/match_iterator.rb', line 39

def set_iterator_re(tag, mode, string)
  ret = RPM::C.rpmdbSetIteratorRE(@ptr, tag, mode, string)
  raise "Error when setting regular expression '#{string}'" if ret != 0
  self
end

#set_iterator_version(version) ⇒ Object Also known as: version



47
48
49
50
51
52
53
54
55
# File 'lib/rpm/match_iterator.rb', line 47

def set_iterator_version(version)
  unless version.is_a?(RPM::Version)
    raise TypeError, 'illegal argument type'
  end

  set_iterator_re(:version, :default, version.v)
  set_iterator_re(:release, :default, version.r) if version.r
  self
end