Sha256: 44fc2afbdd0c6af85a3f1572b0f656f1b12e082ebca6db9edcfa413846a7e28e

Contents?: true

Size: 1.13 KB

Versions: 1

Compression:

Stored size: 1.13 KB

Contents

require 'backup/file_item/base'

module Backup
  module FileItem
    class Local < Backup::FileItem::Base
      attr_reader :timeout
      
      def initialize
        @timeout = 0
      end

      def create_directory_once *directories
        directories.each do |path|
          FileUtils.mkdir_p(path) unless File.directory? path
        end
      end

      def create_file_once file, data
        data = data.read if data.is_a? File or data.is_a? StringIO
        File.open(file, 'wb') do |f|
          f.puts(data)
        end unless File.exists?(file)
      end

      def read_file file
        File.open(file, 'rb') do |f|
          f.read
        end if File.exists? file
      end
      
      def timeout= time
      end

      def dir path, mask = "*"
        r_mask = mask.gsub('.', '\.').gsub('*', '[^\/]')

        Dir["#{path}/#{mask}"].map do |item|
          match = item.match(/^#{path}\/([^\/]+#{r_mask}).*$/)
          match[1] if match
        end.compact.uniq
      end

      def delete_file path
        FileUtils.rm path
      end

      def delete_dir directory
        FileUtils.remove_dir directory
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
encbs-0.2.1.beta2 lib/backup/file_item/local.rb