Sha256: b1635ef217ec0fef37dc36183d0ee28177798a901c547f5e5a1445f1fbcffde8

Contents?: true

Size: 1.81 KB

Versions: 7

Compression:

Stored size: 1.81 KB

Contents

module PoolParty
  module FileWriter
    def copy_file_to_storage_directory(file)
      make_base_directory
      path = ::File.join( Base.storage_directory, ::File.basename(file) )
      FileUtils.cp file, path
    end
    def copy_template_to_storage_directory(file)
      make_template_directory
      path = ::File.join( Base.template_directory, ::File.basename(file) )
      FileUtils.cp file, path
    end
    def write_to_file_in_storage_directory(file, str, &block)
      path = ::File.join( Base.storage_directory, ::File.basename(file) )
      write_to_file(path, str, &block)
    end
    def write_to_file(file, str, &block)
      path = ::File.join( Base.storage_directory, ::File.basename(file) )
      make_base_path( Base.storage_directory )
      ::File.open(path, "w+") do |f|
        f.print str
        f.flush
        f.print block.call(f) if block
      end
    end
    # Write a temp file with the content str and return the Tempfile
    # It creates a random file name
    def write_to_temp_file(str="", &block)
      returning Tempfile.new("#{Base.storage_directory}/PoolParty-#{str[0..10].chomp}-#{rand(1000)}") do |fp|
        fp.print str
        fp.flush
        block.call(fp)
      end
    end
    def make_base_path(path)
      unless FileTest.directory?(path)
        begin          
          ::FileUtils.mkdir_p path
        rescue Errno::ENOTDIR
        rescue Errno::EEXIST
          puts "There was an error"
        end
      end
    end
    def make_base_directory
      FileUtils.mkdir_p Base.storage_directory unless ::File.directory?(Base.storage_directory)
    end
    def make_template_directory
      FileUtils.mkdir_p Base.template_directory unless ::File.directory?(Base.template_directory)      
    end
    def clear_base_directory
      FileUtils::rm_rf "#{Base.storage_directory}"
    end
  end
end

Version data entries

7 entries across 7 versions & 2 rubygems

Version Path
auser-poolparty-0.2.2 lib/poolparty/modules/file_writer.rb
auser-poolparty-0.2.3 lib/poolparty/modules/file_writer.rb
auser-poolparty-0.2.4 lib/poolparty/modules/file_writer.rb
auser-poolparty-0.2.5 lib/poolparty/modules/file_writer.rb
auser-poolparty-0.2.6 lib/poolparty/modules/file_writer.rb
auser-poolparty-0.2.8 lib/poolparty/modules/file_writer.rb
poolparty-0.2.6 lib/poolparty/modules/file_writer.rb