Sha256: 55c7fad5282872d785f54cf04258d695058295bf1e239dd5a8f1e2dcec2685aa
Contents?: true
Size: 1.16 KB
Versions: 1
Compression:
Stored size: 1.16 KB
Contents
require "files/version" module Files def self.create options = {:remove => true}, &block require 'tmpdir' require 'fileutils' called_from = File.basename caller.first.split(':').first, ".rb" path = File.join(Dir::tmpdir, "#{called_from}_#{Time.now.to_i}_#{rand(1000)}") files = Files.new path, block, options files.root end class Files attr_reader :root def initialize path, block, options @root = path @dirs = [path] Dir.mkdir(path) at_exit {FileUtils.rm_rf(path) if File.exists?(path)} if options[:remove] instance_eval &block end def dir name, &block Dir.mkdir "#{current}/#{name}" @dirs << name instance_eval &block end def file name, contents = "contents of #{name}" if name.is_a? File FileUtils.cp name.path, current else path = "#{current}/#{name}" if contents.is_a? File FileUtils.cp contents.path, path else File.open(path, "w") do |f| f.write contents end end end end private def current @dirs.join('/') end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
files-0.0.1 | lib/files.rb |