class Rspec::Usecases::Generator::DebugGenerator

Debug Generator helps to visualize the data that is collected from use cases

Public Instance Methods

generate() click to toggle source
# File lib/rspec/usecases/generator/debug_generator.rb, line 25
def generate
  print_document_header
  print_groups(document.groups)
end
run() click to toggle source
# File lib/rspec/usecases/generator/debug_generator.rb, line 10
def run
  @key_width = 30
  @indent_size = 0

  generate

  print_output if options.printable?

  return unless options.writable?

  write_file(options.file)

  open_file_in_vscode(options.file) if options.openable?
end

Private Instance Methods

green(value) click to toggle source
# File lib/rspec/usecases/generator/debug_generator.rb, line 92
def green(value)
  "\033[32m#{value}\033[0m"
end
indent() click to toggle source
# File lib/rspec/usecases/generator/debug_generator.rb, line 96
def indent
  @indent_size += 2
end
indentation() click to toggle source
# File lib/rspec/usecases/generator/debug_generator.rb, line 88
def indentation
  ' ' * @indent_size
end
kv(key, value, key_width = @key_width) click to toggle source
# File lib/rspec/usecases/generator/debug_generator.rb, line 83
def kv(key, value, key_width = @key_width)
  key_width -= @indent_size
  write_line "#{indentation}#{green(key.to_s.ljust(key_width))}: #{value}"
end
outdent() click to toggle source
# File lib/rspec/usecases/generator/debug_generator.rb, line 100
def outdent
  @indent_size -= 2
end
print_document_header() click to toggle source
print_groups(groups) click to toggle source
print_usecase(usecase) click to toggle source
print_usecase_content(content) click to toggle source

rubocop:disable Metrics/PerceivedComplexity, Metrics/CyclomaticComplexity, Metrics/AbcSize

print_usecase_header(usecase) click to toggle source

rubocop:disable Metrics/AbcSize

wl(value) click to toggle source

rubocop:enable Metrics/PerceivedComplexity, Metrics/CyclomaticComplexity, Metrics/AbcSize

# File lib/rspec/usecases/generator/debug_generator.rb, line 79
def wl(value)
  write_line "#{indentation}#{value}"
end