class UsecaseTracer

Attributes

testresult[R]
tracelog[R]

Public Class Methods

class_tracer(*args) click to toggle source
# File lib/usecase_tracer.rb, line 24
def self.class_tracer(*args)
  a = *args
  @@classes = a.map(&:to_s)
end
ignore_methods(*args) click to toggle source
# File lib/usecase_tracer.rb, line 29
def self.ignore_methods(*args)
  a = *args
  @@ignore_methods = a.flatten
end
new() click to toggle source
# File lib/usecase_tracer.rb, line 15
def initialize()
  
  @usecases = []
  cases()
  @tracelog = []
  @testresult = []
      
end

Public Instance Methods

passed?() click to toggle source
# File lib/usecase_tracer.rb, line 47
def passed?()
  @testresult.map(&:last).all?
end
run() click to toggle source
# File lib/usecase_tracer.rb, line 34
def run()
  
  @usecases.each.with_index do |x, i| 
    
    desc, blk = x
    @desc = desc
    r = blk.call
    @testresult << [i, r] if r.is_a?(TrueClass) or r.is_a?(FalseClass)
    
  end
  
end
trace(ignore: []) { || ... } click to toggle source
# File lib/usecase_tracer.rb, line 51
def trace(ignore: [])
  
  it = IndentedTracer.new
  it.classes = @@classes
  it.ignore_methods = (@@ignore_methods + [*ignore].map(&:to_sym))
  it.on
  
  yield
  
  it.off
  @tracelog << it.log(@desc, tags: @@classes)
  
end

Private Instance Methods

cases() click to toggle source

override this method with your own implementation of usecase methods

# File lib/usecase_tracer.rb, line 69
def cases()
  
end
usecase(desc='', &blk) click to toggle source
# File lib/usecase_tracer.rb, line 73
def usecase(desc='', &blk)
  @usecases << [desc, blk]
end