Guest User

Untitled

a guest
Apr 26th, 2018
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.02 KB | None | 0 0
  1. require 'spec/runner/formatter/base_text_formatter'
  2.  
  3. module Spec
  4. module Runner
  5. module Formatter
  6. class LatexIdiopidaeFormatter < BaseTextFormatter
  7. END_EXAMPLE_GROUP_CONTENT = "\\end{itemize}\n### @end\n\n"
  8.  
  9. ESCAPE_CHARACTERS = %w{ # _ $ % }
  10.  
  11. def escape(string)
  12. ESCAPE_CHARACTERS.each do |c|
  13. string.gsub!(c, "\\#{c}")
  14. end
  15. string
  16. end
  17.  
  18. def initialize(options, output)
  19. super
  20. @current_example_group_number = 0
  21. end
  22.  
  23. def add_example_group(example_group)
  24. super
  25. @current_example_group_number += 1
  26. unless @current_example_group_number == 1
  27. output.puts END_EXAMPLE_GROUP_CONTENT
  28. end
  29. output.puts "### @export \"#{escape(example_group.description)}\""
  30. output.puts escape(example_group.description)
  31. output.puts "\\begin{itemize}"
  32. output.flush
  33. end
  34.  
  35. # This content gets printed at end. Close any open lists.
  36. def start_dump
  37. output.puts END_EXAMPLE_GROUP_CONTENT
  38. end
  39.  
  40. def example_failed(example, counter, failure)
  41. message = if failure.expectation_not_met?
  42. "\\item #{escape(example.description)} (FAILED - #{counter})"
  43. else
  44. "\\item #{escape(example.description)} (ERROR - #{counter})"
  45. end
  46.  
  47. output.puts(failure.expectation_not_met? ? red(message) : magenta(message))
  48. output.flush
  49. end
  50.  
  51. def example_passed(example)
  52. message = "\\item #{escape(example.description)}"
  53. output.puts green(message)
  54. output.flush
  55. end
  56.  
  57. def example_pending(example_group_description, example, message)
  58. super
  59. output.puts yellow("\\item #{escape(example.description)} (PENDING: #{message})")
  60. output.flush
  61. end
  62. end
  63. end
  64. end
  65. end
Add Comment
Please, Sign In to add comment