def push(*args)
args.flatten.each do |new_rpm|
unless new_rpm.kind_of?(RPMDbPackage)
raise ArgumentError, "Expecting an RPMDbPackage object"
end
@rpms[new_rpm.n] ||= Array.new
idx = @index[new_rpm.nevra]
if idx
curr_rpm = idx
else
@rpms[new_rpm.n] << new_rpm
new_rpm.provides.each do |provide|
@provides[provide.name] ||= Array.new
@provides[provide.name] << new_rpm
end
curr_rpm = new_rpm
end
@index[new_rpm.nevra] = curr_rpm
if new_rpm.available
@available << curr_rpm
end
if new_rpm.installed
@installed << curr_rpm
end
end
end