lib/blower/context.rb
def run (task, optional: false, quiet: false, once: nil)
      once once, quiet: quiet do
        log.info "run #{task}", quiet: quiet do
          file = find_task(task)
          code = File.read(file)
          let :@file => file do
            instance_eval(code, file)
          end
        end
      end
    rescue TaskNotFound => e
      return if optional
      raise e
    end
def run (task, optional: false, quiet: false, once: nil)
      once once, quiet: quiet do
        log.info "run #{task}", quiet: quiet do
          file = find_task(task)
          code = File.read(file)
          let :@file => file do
            instance_eval(code, file)
          end
        end
      end
    rescue TaskNotFound => e
      return if optional
      raise e
    end
def run ( task , optional : false , quiet : false , once : nil ) once once , quiet : quiet do log . info "run #{task}" , quiet : quiet do file = find_task ( task ) code = File . read ( file ) let :@file => file do instance_eval ( code , file ) end end end rescue TaskNotFound => e return if optional raise e end
Find and execute a task. For each entry in the search path, it checks for +path/task.rb+, +path/task/blow.rb+,
 and finally for bare +path/task+. The search stops at the first match.
 If found, the task is executed within the context, with +@file+ bound to the task's file name.
 @param [String] task The name of the task.
 @macro quietable
 @macro onceable
 @raise [TaskNotFound] If no task is found.
 @raise Whatever the task itself raises.
 @return The result of evaluating the task file.
Find and execute a task . For each entry in the search path it checks for + path / task . rb + + path / task / blow . rb + and finally for bare + path / task + . The search stops at the first match . If found the task is executed within the context with +