AnastasiaSulyagina e81f4ab7de init
2016-08-19 14:50:14 +03:00

38 lines
1.0 KiB
Ruby

module Hbc::Source; end
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"
module Hbc::Source
def self.sources
[
Hbc::Source::URI,
Hbc::Source::PathSlashRequired,
Hbc::Source::TappedQualified,
Hbc::Source::UntappedQualified,
Hbc::Source::Tapped,
Hbc::Source::PathSlashOptional,
Hbc::Source::Gone,
]
end
def self.for_query(query)
odebug "Translating '#{query}' into a valid Cask source"
raise Hbc::CaskUnavailableError, query if query.to_s =~ %r{^\s*$}
source = sources.find { |s|
odebug "Testing source class #{s}"
s.me?(query)
}
raise Hbc::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
end