homebrew-cask-versions/lib/cask/source.rb
Roland Walker b88bf787e0 handle fully-qualified cask names, fixes #2235
form "<user>/<repo>/<cask>" may be used on cmdline, matching homebrew
- refactor Cask::Source::Tap into Cask::Source::Tapped, removing
  code, only handling unqualified cask names here now (ie no slash)
- create Cask::Source::TappedQualified, handling "<user>-<repo>/<cask>"
  form as before, and new form "<user>/<repo>/<cask>", for the case that
  the relevant tap already exists
- create Cask::Source::UntappedQualified, handling both command-line
  forms as above, but implicitly creating adding a new tap if it
  does not already exist
- add module Cask::QualifiedCaskName for utility functions on qualified
  Cask names
2014-01-04 07:14:35 -05:00

27 lines
618 B
Ruby

module Cask::Source; end
require 'cask/source/gone'
require 'cask/source/path'
require 'cask/source/tapped_qualified'
require 'cask/source/untapped_qualified'
require 'cask/source/tapped'
require 'cask/source/uri'
module Cask::Source
def self.sources
[
Cask::Source::URI,
Cask::Source::Path,
Cask::Source::TappedQualified,
Cask::Source::UntappedQualified,
Cask::Source::Tapped,
Cask::Source::Gone,
]
end
def self.for_query(query)
source = sources.find { |s| s.me?(query) }
raise CaskUnavailableError.new(query) unless source
source.new(query)
end
end