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