19 lines
		
	
	
		
			469 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			19 lines
		
	
	
		
			469 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| class Hbc::Container::Criteria
 | |
|   attr_reader :path, :command
 | |
| 
 | |
|   def initialize(path, command)
 | |
|     @path = path
 | |
|     @command = command
 | |
|   end
 | |
| 
 | |
|   def extension(regex)
 | |
|     path.extname.sub(%r{^\.}, "") =~ Regexp.new(regex.source, regex.options | Regexp::IGNORECASE)
 | |
|   end
 | |
| 
 | |
|   def magic_number(regex)
 | |
|     # 262: length of the longest regex (currently: Hbc::Container::Tar)
 | |
|     @magic_number ||= File.open(@path, "rb") { |f| f.read(262) }
 | |
|     @magic_number =~ regex
 | |
|   end
 | |
| end
 | 
