def transportable
@bucket = diff
@bucket.keyword = "class"
@bucket.type = @session.name
@session.changes.paths.each do |p,c|
next if Cft::FILTERS.any? { |f| File::fnmatch(f, p) }
dig = Cft::Puppet::Digest::find(p)
dig.transportable(self, p)
end
pkgs = @bucket.find_all(:package)
shadow = Cft::RPM::readshadow(session.path(:rpm_shadow))
unless shadow.empty?
shadowed = shadow.values.flatten
roots = shadow.keys.reject {
|k| shadowed.include?(k)
}.collect {
|k| k.na
}
pkgs.each do |p|
unless roots.include?(p.name)
@bucket.delete_obj(:package, p.name)
end
end
end
@bucket.each_obj do |to|
Digest::digesters.each do |dig|
if to.type == dig.type.name
dig.scrub_attr!(to)
end
end
end
return @bucket
end