plugins/packages/packages_model.rb in machinery-tool-1.22.1 vs plugins/packages/packages_model.rb in machinery-tool-1.22.2

- old
+ new

@@ -13,47 +13,48 @@ # along with this program; if not, contact SUSE LLC. # # To contact SUSE about this file by physical or electronic mail, # you may find current contact information at www.suse.com +module Machinery + class Package < Machinery::Object + end -class Package < Machinery::Object -end + class RpmPackage < Package + end -class RpmPackage < Package -end + class DpkgPackage < Package + end -class DpkgPackage < Package -end + class PackagesScope < Machinery::Array + include Machinery::Scope -class PackagesScope < Machinery::Array - include Machinery::Scope + has_attributes :package_system + has_elements class: DpkgPackage, if: { package_system: "dpkg" } + has_elements class: RpmPackage, if: { package_system: "rpm" } - has_attributes :package_system - has_elements class: DpkgPackage, if: { package_system: "dpkg" } - has_elements class: RpmPackage, if: { package_system: "rpm" } + def compare_with(other) + if package_system != other.package_system + [self, other, nil, nil] + else + only_self = self - other + only_other = other - self + common = self & other + changed = Machinery::Scope.extract_changed_elements(only_self, only_other, :name) + changed = nil if changed.empty? - def compare_with(other) - if self.package_system != other.package_system - [self, other, nil, nil] - else - only_self = self - other - only_other = other - self - common = self & other - changed = Machinery::Scope.extract_changed_elements(only_self, only_other, :name) - changed = nil if changed.empty? - - [ - package_list_to_scope(only_self), - package_list_to_scope(only_other), - changed, - package_list_to_scope(common) - ].map { |e| (e && !e.empty?) ? e : nil } + [ + package_list_to_scope(only_self), + package_list_to_scope(only_other), + changed, + package_list_to_scope(common) + ].map { |e| e && !e.empty? ? e : nil } + end end - end - private + private - def package_list_to_scope(packages) - self.class.new(packages, package_system: package_system) unless packages.elements.empty? + def package_list_to_scope(packages) + self.class.new(packages, package_system: package_system) unless packages.elements.empty? + end end end