2016-08-18 22:11:42 +03:00
|
|
|
require "hbc/source/tapped"
|
|
|
|
|
|
|
|
class Hbc::Source::TappedQualified < Hbc::Source::Tapped
|
|
|
|
def self.me?(query)
|
2016-09-12 06:18:55 +02:00
|
|
|
return if (tap = tap_for_query(query)).nil?
|
|
|
|
|
|
|
|
tap.installed? && path_for_query(query).exist?
|
|
|
|
end
|
|
|
|
|
|
|
|
def self.tap_for_query(query)
|
|
|
|
qualified_token = Hbc::QualifiedToken.parse(query)
|
|
|
|
return if qualified_token.nil?
|
|
|
|
|
|
|
|
user, repo, token = qualified_token
|
|
|
|
Tap.fetch(user, repo)
|
2016-08-18 22:11:42 +03:00
|
|
|
end
|
|
|
|
|
|
|
|
def self.path_for_query(query)
|
|
|
|
user, repo, token = Hbc::QualifiedToken.parse(query)
|
2016-09-12 06:18:55 +02:00
|
|
|
Tap.fetch(user, repo).cask_dir.join(token.sub(%r{(\.rb)?$}i, ".rb"))
|
2016-08-18 22:11:42 +03:00
|
|
|
end
|
|
|
|
end
|