2013-11-17 03:40:51 +08:00
|
|
|
module Cask::Source; end
|
|
|
|
|
2013-12-06 09:38:23 +08:00
|
|
|
require 'cask/source/gone'
|
2014-06-03 22:21:42 +08:00
|
|
|
require 'cask/source/path_slash_required'
|
|
|
|
require 'cask/source/path_slash_optional'
|
2014-01-04 20:14:35 +08:00
|
|
|
require 'cask/source/tapped_qualified'
|
|
|
|
require 'cask/source/untapped_qualified'
|
|
|
|
require 'cask/source/tapped'
|
2013-11-17 03:40:51 +08:00
|
|
|
require 'cask/source/uri'
|
|
|
|
|
|
|
|
module Cask::Source
|
|
|
|
def self.sources
|
|
|
|
[
|
|
|
|
Cask::Source::URI,
|
2014-06-03 22:21:42 +08:00
|
|
|
Cask::Source::PathSlashRequired,
|
2014-01-04 20:14:35 +08:00
|
|
|
Cask::Source::TappedQualified,
|
|
|
|
Cask::Source::UntappedQualified,
|
|
|
|
Cask::Source::Tapped,
|
2014-06-03 22:21:42 +08:00
|
|
|
Cask::Source::PathSlashOptional,
|
2013-12-06 09:38:23 +08:00
|
|
|
Cask::Source::Gone,
|
2013-11-17 03:40:51 +08:00
|
|
|
]
|
|
|
|
end
|
|
|
|
|
|
|
|
def self.for_query(query)
|
2014-01-23 07:29:00 +08:00
|
|
|
odebug "Translating '#{query}' into a valid Cask source"
|
|
|
|
source = sources.find do |s|
|
|
|
|
odebug "Testing source class #{s}"
|
|
|
|
s.me?(query)
|
|
|
|
end
|
2013-12-06 09:38:23 +08:00
|
|
|
raise CaskUnavailableError.new(query) unless source
|
2014-06-03 22:39:18 +08:00
|
|
|
odebug "Success! Using source class #{source}"
|
2014-06-03 22:38:49 +08:00
|
|
|
resolved_cask_source = source.new(query)
|
|
|
|
odebug "Resolved Cask URI or file source to '#{resolved_cask_source}'"
|
|
|
|
resolved_cask_source
|
2013-11-17 03:40:51 +08:00
|
|
|
end
|
|
|
|
end
|