| 
									
										
										
										
											2016-08-18 22:11:42 +03:00
										 |  |  | require "hbc/source/gone" | 
					
						
							|  |  |  | require "hbc/source/path_slash_required" | 
					
						
							|  |  |  | require "hbc/source/path_slash_optional" | 
					
						
							|  |  |  | require "hbc/source/tapped_qualified" | 
					
						
							|  |  |  | require "hbc/source/untapped_qualified" | 
					
						
							|  |  |  | require "hbc/source/tapped" | 
					
						
							|  |  |  | require "hbc/source/uri" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-24 13:52:43 +02:00
										 |  |  | module Hbc | 
					
						
							|  |  |  |   module Source | 
					
						
							|  |  |  |     def self.sources | 
					
						
							|  |  |  |       [ | 
					
						
							|  |  |  |         URI, | 
					
						
							|  |  |  |         PathSlashRequired, | 
					
						
							|  |  |  |         TappedQualified, | 
					
						
							|  |  |  |         UntappedQualified, | 
					
						
							|  |  |  |         Tapped, | 
					
						
							|  |  |  |         PathSlashOptional, | 
					
						
							|  |  |  |         Gone, | 
					
						
							|  |  |  |       ] | 
					
						
							|  |  |  |     end | 
					
						
							| 
									
										
										
										
											2016-08-18 22:11:42 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-24 13:52:43 +02:00
										 |  |  |     def self.for_query(query) | 
					
						
							|  |  |  |       odebug "Translating '#{query}' into a valid Cask source" | 
					
						
							| 
									
										
										
										
											2016-10-14 20:03:34 +02:00
										 |  |  |       raise CaskUnavailableError, query if query.to_s =~ /^\s*$/ | 
					
						
							| 
									
										
										
										
											2016-10-23 14:44:14 +02:00
										 |  |  |       source = sources.find do |s| | 
					
						
							| 
									
										
										
										
											2016-09-24 13:52:43 +02:00
										 |  |  |         odebug "Testing source class #{s}" | 
					
						
							|  |  |  |         s.me?(query) | 
					
						
							| 
									
										
										
										
											2016-10-23 14:44:14 +02:00
										 |  |  |       end | 
					
						
							| 
									
										
										
										
											2016-09-24 13:52:43 +02:00
										 |  |  |       raise CaskUnavailableError, query unless source | 
					
						
							|  |  |  |       odebug "Success! Using source class #{source}" | 
					
						
							|  |  |  |       resolved_cask_source = source.new(query) | 
					
						
							|  |  |  |       odebug "Resolved Cask URI or file source to '#{resolved_cask_source}'" | 
					
						
							|  |  |  |       resolved_cask_source | 
					
						
							|  |  |  |     end | 
					
						
							| 
									
										
										
										
											2016-08-18 22:11:42 +03:00
										 |  |  |   end | 
					
						
							|  |  |  | end |