aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/cask/lib/hbc/source/tapped_qualified.rb
blob: 97a35defeb3e7ed95269600bca3a16bdd1e82170 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
require "hbc/source/tapped"

class Hbc::Source::TappedQualified < Hbc::Source::Tapped
  def self.me?(query)
    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 = qualified_token[0..1]
    Tap.fetch(user, repo)
  end

  def self.path_for_query(query)
    user, repo, token = Hbc::QualifiedToken.parse(query)
    Tap.fetch(user, repo).cask_dir.join(token.sub(%r{(\.rb)?$}i, ".rb"))
  end
end