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