class SmarfDoc

Attributes

tests[RW]

Public Class Methods

config() { |Conf| ... } click to toggle source
# File lib/base.rb, line 91
def self.config(&block)
  yield(self::Conf)
end
current() click to toggle source
# File lib/base.rb, line 87
def self.current
  Thread.current[:instance] ||= self.new
end
finish!() click to toggle source

= = =

# File lib/base.rb, line 65
def self.finish!
  current.sort_by_url!
  current.output_testcases_to_file
  current.clean_up!
end
information(key, value) click to toggle source
# File lib/base.rb, line 83
def self.information(key, value)
  current.information(key, value)
end
new() click to toggle source
# File lib/base.rb, line 3
def initialize
  @tests = []
  @skip = false
  @note = ''
  @information = {}
end
note(msg) click to toggle source
# File lib/base.rb, line 79
def self.note(msg)
  current.note(msg)
end
run!(request, response) click to toggle source
# File lib/base.rb, line 71
def self.run!(request, response)
  current.run!(request, response)
end
skip() click to toggle source
# File lib/base.rb, line 75
def self.skip
  current.skip
end

Public Instance Methods

add_test_case(request, response) click to toggle source
# File lib/base.rb, line 38
def add_test_case(request, response)
  test = self.class::TestCase.new(request, response, @note, @information)
  test.template = self.class::Conf.template
  self.tests << test
end
clean_up!() click to toggle source
# File lib/base.rb, line 16
def clean_up!
  @tests = []
end
information(key, value) click to toggle source
# File lib/base.rb, line 24
def information(key, value)
  @information[key] = value
end
note(msg) click to toggle source
# File lib/base.rb, line 20
def note(msg)
  @note = msg
end
output_testcases_to_file() click to toggle source
# File lib/base.rb, line 48
def output_testcases_to_file
  docs = self.class::Conf.output_file
  raise 'No output file specific for SmarfDoc' unless docs
  File.delete docs if File.exists? docs
  write_to_file
end
run!(request, response) click to toggle source
# File lib/base.rb, line 28
def run!(request, response)
  if @skip
    @skip = false
    return
  end
  add_test_case(request, response)
  @note = ''
  self
end
skip() click to toggle source
# File lib/base.rb, line 44
def skip
  @skip = true
end
sort_by_url!() click to toggle source
# File lib/base.rb, line 10
def sort_by_url!
  @tests.sort! do |x, y|
    x.request.path <=> y.request.path
  end
end
write_to_file() click to toggle source
# File lib/base.rb, line 55
def write_to_file
  File.open(self.class::Conf.output_file, 'a') do |file|
    @tests.each do |test|
      file.write(test.compile_template)
    end
  end
end