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