class Fudge::Tasks::EachDirectory

A task which runs a number of other tasks in a given directory (relative to the current directory)

Attributes

exclude[RW]

Public Class Methods

new(pattern, *args) click to toggle source
Calls superclass method
# File lib/fudge/tasks/each_directory.rb, line 8
def initialize(pattern, *args)
  super(*args)

  @pattern = pattern
end

Public Instance Methods

run(options={}) click to toggle source

Run task

Calls superclass method Fudge::Tasks::CompositeTask#run
# File lib/fudge/tasks/each_directory.rb, line 15
def run(options={})
  formatter = get_formatter(options)
  directories.all? do |dir|
    skip_directory?(dir) ||
      WithDirectory.new(dir, formatter).inside do
        super
      end
  end
end

Private Instance Methods

directories() click to toggle source
# File lib/fudge/tasks/each_directory.rb, line 27
def directories
  # Allow either a string (usually "*") or an array of strings
  # with directories
  files = @pattern.kind_of?(String) ? Dir[@pattern] : Dir[*@pattern]
  files.select { |path| File.directory? path }
end
skip_directory?(dir) click to toggle source
# File lib/fudge/tasks/each_directory.rb, line 34
def skip_directory?(dir)
  exclude && exclude.include?(dir)
end