module Hbc class Container class Criteria attr_reader :path, :command def initialize(path, command) @path = path @command = command end def extension(regex) path.extname.sub(/^\./, "") =~ Regexp.new(regex.source, regex.options | Regexp::IGNORECASE) end def magic_number(regex) return false if path.directory? # 262: length of the longest regex (currently: Hbc::Container::Tar) @magic_number ||= File.binread(path, 262) @magic_number.match?(regex) end end end end