Skip to content

Commit

Permalink
initial code
Browse files Browse the repository at this point in the history
  • Loading branch information
lslezak committed Jul 8, 2015
1 parent 45239b7 commit a3ec9af
Show file tree
Hide file tree
Showing 2 changed files with 60 additions and 0 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@
/.yardoc
/coverage
*.bz2
/nbproject/private/
59 changes: 59 additions & 0 deletions src/lib/migration/product_checker.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@

module Migration

class ProductChecker

def initialize(products)
@products = products
end

def obsoleted_product_repos

end

private

attr_accessor :products

def available_obsolete_products
obsolete = []

new_products = select_products(:installed)
available_products = select_products(:available)

new_products.each do |new_product|
upgraded_products = available_products.select do |available_product|
available_product["name"] == new_product["name"] &&
product_version(available_product) < product_version(new_product)
end

obsolete.concat(upgraded_products)
end

obsolete
end

def select_products(status)
products.select { |product| product["status"] == status }
end

# returns product version (uses Gem::Version which properly parses the
# version string)
# @return [Gem::Version] product version
def product_version(product)
Gem::Version.new(product["version_version"])
end


# does one product upgrad another?
# @param [Hash] new_product new product
# @param [Hash] old_product new product
# @return [Boolean] true if the new product upgrades the old product
def product_upgrades?(new_product, old_product)
old_product["name"] == new_product["name"] &&
product_version(old_product) < product_version(new_product)
end

end

end

0 comments on commit a3ec9af

Please sign in to comment.