| 
									
										
										
										
											2015-06-17 22:37:08 +03:00
										 |  |  | require_relative 'base' | 
					
						
							|  |  |  | require_relative 'postgres_cluster' | 
					
						
							| 
									
										
										
										
											2015-06-22 13:51:04 +03:00
										 |  |  | require_relative 'preset_not_found' | 
					
						
							| 
									
										
										
										
											2015-06-17 22:37:08 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-15 19:21:23 +03:00
										 |  |  | class Devops::StackPresetsFactory | 
					
						
							| 
									
										
										
										
											2015-06-17 22:37:08 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-15 19:21:23 +03:00
										 |  |  |   # find all classes in Devops::StackPresets modules excluding Base and factory. | 
					
						
							|  |  |  |   # This list can be extended in external gems via defining new classes in Devops::StackPresets module. | 
					
						
							| 
									
										
										
										
											2015-06-17 22:37:08 +03:00
										 |  |  |   def self.list | 
					
						
							| 
									
										
										
										
											2015-07-15 19:21:23 +03:00
										 |  |  |     @list ||= Devops::StackPresets.constants.select do |class_name| | 
					
						
							| 
									
										
										
										
											2015-06-17 22:37:08 +03:00
										 |  |  |       class_name != :Base | 
					
						
							|  |  |  |     end.map do |class_name| | 
					
						
							| 
									
										
										
										
											2015-07-15 19:21:23 +03:00
										 |  |  |       Devops::StackPresets.const_get(class_name).new | 
					
						
							| 
									
										
										
										
											2015-06-17 22:37:08 +03:00
										 |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def self.get(id) | 
					
						
							| 
									
										
										
										
											2015-06-22 13:51:04 +03:00
										 |  |  |     preset = list.detect { |preset| preset.id == id } | 
					
						
							|  |  |  |     raise PresetNotFound, "Preset '#{preset}' not found" unless preset | 
					
						
							|  |  |  |     preset | 
					
						
							| 
									
										
										
										
											2015-06-17 22:37:08 +03:00
										 |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | end |