Sha256: 9c60eb21fc4fb7fe64ccaa5988713612eb90e5f23d5f595eb7ee7d803e7887c4
Contents?: true
Size: 1.42 KB
Versions: 31
Compression:
Stored size: 1.42 KB
Contents
module FileSpecs # Try to set up known locations of each filetype def self.reconfigure() @file = tmp("test.txt") @dir = Dir.pwd @fifo = tmp("test_fifo") platform_is_not :windows, :android do @block = `find /dev /devices -type b 2> /dev/null`.split("\n").first @char = `find /dev /devices -type c 2> /dev/null`.split("\n").last %w[/dev /usr/bin /usr/local/bin].each do |dir| links = `find #{dir} -type l 2> /dev/null`.split("\n") next if links.empty? @link = links.first break end end platform_is :android do @block = nil @char = "/dev/ashmem" @link = "/etc" end end # TODO: Automatic reload mechanism reconfigure def self.normal_file() File.open(@file, "w") {} # 'Touch' yield @file ensure File.unlink @file end def self.directory() yield @dir end # TODO: need a platform-independent helper here def self.fifo() system "mkfifo #{@fifo} 2> /dev/null" yield @fifo ensure File.unlink @fifo end def self.block_device() yield @block end def self.character_device() yield @char end def self.symlink() yield @link end def self.socket() require 'socket' name = tmp("ftype_socket.socket") File.delete name if File.exist? name socket = UNIXServer.new name yield name socket.close File.delete name if File.exist? name end end
Version data entries
31 entries across 31 versions & 1 rubygems