24 lines
437 B
Ruby
24 lines
437 B
Ruby
# encoding: UTF-8
|
|
|
|
class UpdaterFactory
|
|
|
|
def self.get_updater(repo_directory)
|
|
self.available_updaters_classes().each do |updater_symbol|
|
|
updater = Object.const_get(updater_symbol).new(repo_directory)
|
|
|
|
if updater.is_installed?
|
|
return updater
|
|
end
|
|
end
|
|
nil
|
|
end
|
|
|
|
protected
|
|
|
|
# return array of class symbols
|
|
def self.available_updaters_classes
|
|
Object.constants.grep(/^.+Updater$/)
|
|
end
|
|
|
|
end
|