fluke/devops-service/lib/stack_template_presets/factory.rb
2015-06-17 22:37:08 +03:00

20 lines
601 B
Ruby

require_relative 'base'
require_relative 'postgres_cluster'
class Devops::StackTemplatePresetsFactory
# find all classes in Devops::StackTemplatePresets modules excluding Base and factory.
# This list can be extended in external gems via defining new classes in Devops::StackTemplatePresets module.
def self.list
@list ||= Devops::StackTemplatePresets.constants.select do |class_name|
class_name != :Base
end.map do |class_name|
Devops::StackTemplatePresets.const_get(class_name).new
end
end
def self.get(id)
list.detect { |preset| preset.id == id }
end
end