class Fixman::Tester
Constants
- TERMINAL_WIDTH
Public Class Methods
new(configuration)
click to toggle source
# File lib/fixman/tester.rb, line 8 def initialize(configuration) @conf = configuration @target_cache = {} end
Public Instance Methods
test()
click to toggle source
# File lib/fixman/tester.rb, line 13 def test @conf.raw_tasks.each do |raw_task| raw_task.refine.each do |task| puts(test_task task) end end end
Private Instance Methods
collect(condition)
click to toggle source
# File lib/fixman/tester.rb, line 34 def collect(condition) if @target_cache[condition] @target_cache[condition] else targets = [] places_to_search = [@conf.fixtures_base] places_to_search.each do |place| # exclude symbolic links to avoid cycles place.each_child do |child| next if child.symlink? targets << child if condition.call(child) places_to_search << child if child.directory? end end @target_cache[condition] = targets end end
report(name, targets, failures)
click to toggle source
# File lib/fixman/tester.rb, line 52 def report(name, targets, failures) n_of_targets = targets.size n_of_successes = n_of_targets - failures.size sio = StringIO.new sio.puts "#{name} (#{n_of_successes}/#{n_of_targets})" sio.puts '-' * TERMINAL_WIDTH if n_of_successes == n_of_targets sio.puts 'All targets ran as expected.' else sio.puts "Failing targets:" sio.puts failures.sort end sio.puts sio.string end
test_task(task)
click to toggle source
# File lib/fixman/tester.rb, line 23 def test_task task puts "Collecting targets for #{task.name}..." targets = collect task.condition failures = [] puts "Running the #{task.name} on targets..." targets.each do |target| failures << target unless task.run target end report task.name, targets, failures end