class Tengu::Runner

Public Class Methods

new(options = {}) click to toggle source
# File lib/tengu/runner.rb, line 3
def initialize(options = {})
  @options = options
  @overrides = []
end

Public Instance Methods

notify(event, object) click to toggle source
# File lib/tengu/runner.rb, line 8
def notify(event, object)
  case event
  when :finished_case then reset_overrides
  when :override then record_override(*object)
  end
end
record_override(object, method) click to toggle source
# File lib/tengu/runner.rb, line 24
def record_override(object, method)
  @overrides << [object, method]
end
run(ios, formatters = []) click to toggle source
# File lib/tengu/runner.rb, line 15
def run(ios, formatters = [])
  @files = ios.map { |io| Tengu::File.new(io) }
  formatters.each { |formatter| formatter.notify(:started, self) }
  @files.each { |file| file.run([self] + formatters) }
  result = Result.new(@files)
  formatters.each { |formatter| formatter.notify(:finished, result) }
  result
end

Private Instance Methods

reset_overrides() click to toggle source
# File lib/tengu/runner.rb, line 30
def reset_overrides
  @overrides.reverse.each do |object, method|
    object.instance_eval do
      define_singleton_method method.name, method
    end
  end
end