23 lines
		
	
	
		
			728 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			23 lines
		
	
	
		
			728 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| require_relative 'base'
 | |
| require_relative 'postgres_cluster'
 | |
| require_relative 'preset_not_found'
 | |
| 
 | |
| 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)
 | |
|     preset = list.detect { |preset| preset.id == id }
 | |
|     raise PresetNotFound, "Preset '#{preset}' not found" unless preset
 | |
|     preset
 | |
|   end
 | |
| 
 | |
| end | 
