Class: Autowow::Fs

Inherits:
Object
  • Object
show all
Defined in:
lib/autowow/fs.rb

Class Method Summary collapse

Class Method Details

.for_dirs(dirs) ⇒ Object



21
22
23
24
25
26
27
28
29
# File 'lib/autowow/fs.rb', line 21

def self.for_dirs(dirs)
  dirs.each do |working_dir|
    # TODO: add handling of directories via extra param to popen3
    # https://stackoverflow.com/a/10148084/2771889
    Dir.chdir(working_dir) do
      yield working_dir
    end
  end
end

.in_place_or_subdirs(in_place) ⇒ Object



31
32
33
34
35
36
37
38
39
# File 'lib/autowow/fs.rb', line 31

def self.in_place_or_subdirs(in_place)
  if in_place
    yield
  else
    for_dirs(ls_dirs) do
      yield
    end
  end
end

.latest(files) ⇒ Object



11
12
13
# File 'lib/autowow/fs.rb', line 11

def self.latest(files)
  files.sort_by{ |f| File.mtime(f) }.reverse!.first
end

.ls_dirsObject



7
8
9
# File 'lib/autowow/fs.rb', line 7

def self.ls_dirs
  Dir.glob(File.expand_path('./*/')).select {|f| File.directory? f}
end

.older_than(files, quantity, unit) ⇒ Object



15
16
17
18
19
# File 'lib/autowow/fs.rb', line 15

def self.older_than(files, quantity, unit)
  files.select do |dir|
    TimeDifference.between(File.mtime(dir), Time.now).public_send("in_#{unit}") > quantity
  end
end