Sha256: f1ef1af7dee9df3824c2bd914acaf73e668a12d17dc20344b736a950083b8e5a

Contents?: true

Size: 953 Bytes

Versions: 2

Compression:

Stored size: 953 Bytes

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
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

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