class Dox::Formatter

Attributes

current_example[RW]
passed_examples[RW]

Public Class Methods

new(output) click to toggle source
Calls superclass method
# File lib/dox/formatter.rb, line 11
def initialize(output)
  super
  self.passed_examples = {}
end

Public Instance Methods

dump_summary(summary) click to toggle source
# File lib/dox/formatter.rb, line 29
def dump_summary(summary)
  return if summary.failed_examples.none?

  warn(summary.fully_formatted)
  exit(-1)
end
example_passed(passed) click to toggle source
# File lib/dox/formatter.rb, line 16
def example_passed(passed)
  self.current_example = CurrentExample.new(passed.example)
  move_example_to_passed if current_example.document?
end
stop(notification) click to toggle source
# File lib/dox/formatter.rb, line 21
def stop(notification)
  if notification.failed_examples.any?
    warn(notification.fully_formatted_failed_examples)
  else
    printer.print(passed_examples)
  end
end

Private Instance Methods

load_or_save_action_to_resource(resource) click to toggle source
# File lib/dox/formatter.rb, line 56
def load_or_save_action_to_resource(resource)
  resource.actions[current_example.action_name] ||= Entities::Action.new(current_example.metadata,
                                                                         current_example.request)
end
load_or_save_group() click to toggle source
# File lib/dox/formatter.rb, line 41
def load_or_save_group
  group_name = current_example.resource_group_name
  group = passed_examples[group_name]

  if group
    group.tap { |g| g.desc ||= current_example.resource_group_desc }
  else
    passed_examples[group_name] = Entities::ResourceGroup.new(current_example.metadata)
  end
end
load_or_save_resource_to_group(group) click to toggle source
# File lib/dox/formatter.rb, line 52
def load_or_save_resource_to_group(group)
  group.resources[current_example.resource_name] ||= Entities::Resource.new(current_example.metadata)
end
move_example_to_passed() click to toggle source
# File lib/dox/formatter.rb, line 61
def move_example_to_passed
  group = load_or_save_group
  resource = load_or_save_resource_to_group(group)
  action = load_or_save_action_to_resource(resource)
  action.examples << Entities::Example.new(current_example.metadata,
                                           current_example.request,
                                           current_example.response)
end
printer() click to toggle source
# File lib/dox/formatter.rb, line 70
def printer
  @printer ||= Printers::DocumentPrinter.new(output)
end