class Fudge::Build

Represents a build defined in the FudgeFile

Attributes

about[RW]

@!attribute about

@return [String] a brief description of the build; this is
                 output by the 'list' command
callbacks[RW]
description[R]
failure_hooks[R]
formatter[R]
success_hooks[R]
time[RW]

Public Class Methods

new(*args) click to toggle source
Calls superclass method
# File lib/fudge/build.rb, line 14
def initialize(*args)
  @success_hooks = []
  @failure_hooks = []

  super
end

Public Instance Methods

run(options={}) click to toggle source

Run task

Calls superclass method
# File lib/fudge/build.rb, line 22
def run(options={})
  start_time = Time.new
  init_formatter(options)
  success = super
  if callbacks
    return false unless run_callbacks(success)
  end
  report_time(start_time, time)

  success
end

Private Instance Methods

init_formatter(options) click to toggle source
# File lib/fudge/build.rb, line 40
def init_formatter(options)
  @formatter = options[:formatter] || Fudge::Formatters::Simple.new
end
message(message) click to toggle source
# File lib/fudge/build.rb, line 36
def message(message)
  formatter.write { |w| w.info(message) }
end
report_time(start_time, time) click to toggle source
# File lib/fudge/build.rb, line 44
def report_time(start_time, time)
  message "Finished in #{"%.2f" % (Time.new - start_time)} seconds." if time
end
run_callbacks(success) click to toggle source
# File lib/fudge/build.rb, line 48
def run_callbacks(success)
  message "Running #{success ? 'success' : 'failure'} callbacks..."
  hooks = success ? @success_hooks : @failure_hooks

  hooks.each do |hook|
    return false unless hook.run :formatter => formatter
  end
end