mirror of
https://github.com/donl/homebrew-cask-versions.git
synced 2026-07-17 06:16:47 -06:00
49 lines
1.3 KiB
Ruby
49 lines
1.3 KiB
Ruby
class Cask::Container; end
|
|
|
|
require 'cask/container/base'
|
|
require 'cask/container/unarbase'
|
|
require 'cask/container/air'
|
|
require 'cask/container/bzip2'
|
|
require 'cask/container/cab'
|
|
require 'cask/container/criteria'
|
|
require 'cask/container/dmg'
|
|
require 'cask/container/naked'
|
|
require 'cask/container/sevenzip'
|
|
require 'cask/container/sit'
|
|
require 'cask/container/tar'
|
|
require 'cask/container/rar'
|
|
require 'cask/container/zip'
|
|
|
|
class Cask::Container
|
|
def self.containers
|
|
[
|
|
Cask::Container::Air,
|
|
Cask::Container::Cab,
|
|
Cask::Container::Dmg,
|
|
Cask::Container::SevenZip,
|
|
Cask::Container::Sit,
|
|
Cask::Container::Tar,
|
|
Cask::Container::Rar,
|
|
Cask::Container::Zip,
|
|
Cask::Container::Bzip2,
|
|
Cask::Container::Naked,
|
|
]
|
|
end
|
|
|
|
def self.for_path(path, command)
|
|
odebug "Determining which containers to use based on filetype"
|
|
criteria = Cask::Container::Criteria.new(path, command)
|
|
containers.find do |c|
|
|
odebug "Checking container class #{c}"
|
|
c.me?(criteria)
|
|
end
|
|
end
|
|
|
|
def self.from_type(type)
|
|
odebug "Determining which containers to use based on 'container_type'"
|
|
containers.find do |c|
|
|
odebug "Checking container class #{c}"
|
|
c.to_s == "Cask::Container::#{type.to_s.capitalize}"
|
|
end
|
|
end
|
|
end
|