Sha256: 391c8980d299cd0bb1a34958ab4d586026b1efd394eaacdec8412d8ee56fd03b

Contents?: true

Size: 924 Bytes

Versions: 2

Compression:

Stored size: 924 Bytes

Contents

require 'file_crawler/version'

module FDE

  module FileCrawler
    class Config
      attr_accessor :path_to_directory
    end

    def self.config
      @@config ||= Config.new
    end

    def self.configure
      yield self.config
    end

    def self.watch(query = nil, &block)
      unless query.nil?
        yield self.crawl(query)
      else
        yield self.crawl
      end
    end

    def self.crawl(query = /.*\.*/i)
      path = self.config.path_to_directory
      files = Dir.entries(path)
      files -=  %w[. ..]
      files.select { |file| query.match(file) }
    end

    def self.copy(file, target)
      FileUtils.copy(path_for(file), target)
    end

    def self.delete(file)
      FileUtils.rm(path_for(file))
    end

    def self.move(file, target)
      FileUtils.mv(path_for(file), target)
    end

    def self.path_for(file)
      "#{self.config.path_to_directory}#{file}"
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
fde-file_crawler-0.2.1 lib/file_crawler.rb
fde-file_crawler-0.2.0 lib/file_crawler.rb