Sha256: e5abb98edde650c0af47d67899c201a0575e557ad9edc1161cba1bae94ad0019

Contents?: true

Size: 1.07 KB

Versions: 1

Compression:

Stored size: 1.07 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 Dir.exists?(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").puts(data) unless File.exists?(file)
      end

      def read_file file
        File.open(file, 'rb').read 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.beta1 lib/backup/file_item/local.rb