class DocYoSelf

Attributes

tests[RW]

Public Class Methods

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

= = =

# File lib/base.rb, line 58
def self.finish!
  current.sort_by_url!
  current.output_testcases_to_file
  current.clean_up!
end
new() click to toggle source
# File lib/base.rb, line 3
def initialize
  @tests = []
  @skip = 0 # <= Hate this.
end
note(msg) click to toggle source
# File lib/base.rb, line 72
def self.note(msg)
  current.note(msg)
end
run!(request, response) click to toggle source
# File lib/base.rb, line 64
def self.run!(request, response)
  current.run!(request, response)
end
skip() click to toggle source
# File lib/base.rb, line 68
def self.skip
  current.skip
end

Public Instance Methods

add_test_case(request, response, note) click to toggle source
# File lib/base.rb, line 31
def add_test_case(request, response, note)
  test = self.class::TestCase.new(request, response, note)
  test.template = self.class::Conf.template
  self.tests << test
end
clean_up!() click to toggle source
# File lib/base.rb, line 14
def clean_up!
  @tests = []
end
note(msg) click to toggle source
# File lib/base.rb, line 18
def note(msg)
  @note = msg || ''
end
output_testcases_to_file() click to toggle source
# File lib/base.rb, line 41
def output_testcases_to_file
  docs = self.class::Conf.output_file
  raise 'No output file specific for DocYoSelf' 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 22
def run!(request, response)
  @skip += 1
  return if @skip == 2 # Gross.
  add_test_case(request, response, @note)
  @note = ''
  @skip = 0
  self
end
skip() click to toggle source
# File lib/base.rb, line 37
def skip
  @skip += 1
end
sort_by_url!() click to toggle source
# File lib/base.rb, line 8
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 48
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