Class: Tengu::Runner

Inherits:
Object
  • Object
show all
Defined in:
lib/tengu/runner.rb

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Runner

Returns a new instance of Runner.



3
4
5
6
# File 'lib/tengu/runner.rb', line 3

def initialize(options = {})
  @options = options
  @overrides = []
end

Instance Method Details

#record_override(object, method) ⇒ Object



8
9
10
# File 'lib/tengu/runner.rb', line 8

def record_override(object, method)
  @overrides << [object, method]
end

#reset_overridesObject



12
13
14
15
16
17
18
# File 'lib/tengu/runner.rb', line 12

def reset_overrides
  @overrides.reverse.each do |object, method|
    object.instance_eval do
      define_singleton_method method.name, method
    end
  end
end

#run(ios, formatters = []) ⇒ Object



20
21
22
23
24
25
26
27
# File 'lib/tengu/runner.rb', line 20

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