spec_fill 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (498) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +12 -0
  3. data/.rspec +3 -0
  4. data/.travis.yml +7 -0
  5. data/Gemfile +4 -0
  6. data/LICENSE.txt +21 -0
  7. data/README.md +39 -0
  8. data/Rakefile +6 -0
  9. data/bin/console +14 -0
  10. data/bin/setup +8 -0
  11. data/exe/spec_fill +4 -0
  12. data/lib/spec_fill/cli.rb +62 -0
  13. data/lib/spec_fill/version.rb +3 -0
  14. data/lib/spec_fill.rb +51 -0
  15. data/spec_fill.gemspec +39 -0
  16. data/vendor/bundle/ruby/2.6.0/bin/factory_fill +27 -0
  17. data/vendor/bundle/ruby/2.6.0/bin/htmldiff +29 -0
  18. data/vendor/bundle/ruby/2.6.0/bin/ldiff +29 -0
  19. data/vendor/bundle/ruby/2.6.0/bin/rake +27 -0
  20. data/vendor/bundle/ruby/2.6.0/bin/rspec +27 -0
  21. data/vendor/bundle/ruby/2.6.0/bin/thor +27 -0
  22. data/vendor/bundle/ruby/2.6.0/cache/diff-lcs-1.3.gem +0 -0
  23. data/vendor/bundle/ruby/2.6.0/cache/rake-10.5.0.gem +0 -0
  24. data/vendor/bundle/ruby/2.6.0/cache/rspec-3.9.0.gem +0 -0
  25. data/vendor/bundle/ruby/2.6.0/cache/rspec-core-3.9.0.gem +0 -0
  26. data/vendor/bundle/ruby/2.6.0/cache/rspec-expectations-3.9.0.gem +0 -0
  27. data/vendor/bundle/ruby/2.6.0/cache/rspec-mocks-3.9.0.gem +0 -0
  28. data/vendor/bundle/ruby/2.6.0/cache/rspec-support-3.9.0.gem +0 -0
  29. data/vendor/bundle/ruby/2.6.0/cache/thor-0.20.3.gem +0 -0
  30. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/.rspec +1 -0
  31. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/Code-of-Conduct.md +74 -0
  32. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/Contributing.md +83 -0
  33. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/History.md +220 -0
  34. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/License.md +39 -0
  35. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/Manifest.txt +37 -0
  36. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/README.rdoc +84 -0
  37. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/Rakefile +57 -0
  38. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/autotest/discover.rb +1 -0
  39. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/bin/htmldiff +32 -0
  40. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/bin/ldiff +6 -0
  41. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/docs/COPYING.txt +339 -0
  42. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/docs/artistic.txt +127 -0
  43. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/lib/diff/lcs/array.rb +7 -0
  44. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/lib/diff/lcs/block.rb +37 -0
  45. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/lib/diff/lcs/callbacks.rb +322 -0
  46. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/lib/diff/lcs/change.rb +181 -0
  47. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/lib/diff/lcs/htmldiff.rb +149 -0
  48. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/lib/diff/lcs/hunk.rb +276 -0
  49. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/lib/diff/lcs/internals.rb +307 -0
  50. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/lib/diff/lcs/ldiff.rb +167 -0
  51. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/lib/diff/lcs/string.rb +5 -0
  52. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/lib/diff/lcs.rb +725 -0
  53. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/lib/diff-lcs.rb +3 -0
  54. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/spec/change_spec.rb +65 -0
  55. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/spec/diff_spec.rb +47 -0
  56. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/spec/fixtures/ds1.csv +50 -0
  57. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/spec/fixtures/ds2.csv +51 -0
  58. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/spec/hunk_spec.rb +72 -0
  59. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/spec/issues_spec.rb +49 -0
  60. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/spec/lcs_spec.rb +56 -0
  61. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/spec/ldiff_spec.rb +47 -0
  62. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/spec/patch_spec.rb +422 -0
  63. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/spec/sdiff_spec.rb +214 -0
  64. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/spec/spec_helper.rb +321 -0
  65. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/spec/traverse_balanced_spec.rb +310 -0
  66. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/spec/traverse_sequences_spec.rb +139 -0
  67. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/.autotest +7 -0
  68. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/.rubocop.yml +27 -0
  69. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/.togglerc +7 -0
  70. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/CONTRIBUTING.rdoc +38 -0
  71. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/History.rdoc +659 -0
  72. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/MIT-LICENSE +21 -0
  73. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/Manifest.txt +166 -0
  74. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/README.rdoc +139 -0
  75. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/Rakefile +81 -0
  76. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/bin/rake +33 -0
  77. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/command_line_usage.rdoc +158 -0
  78. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/example/Rakefile1 +38 -0
  79. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/example/Rakefile2 +35 -0
  80. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/example/a.c +6 -0
  81. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/example/b.c +6 -0
  82. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/example/main.c +11 -0
  83. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/glossary.rdoc +42 -0
  84. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/jamis.rb +591 -0
  85. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/proto_rake.rdoc +127 -0
  86. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/rake.1 +141 -0
  87. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/rakefile.rdoc +624 -0
  88. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/rational.rdoc +151 -0
  89. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-0.4.14.rdoc +23 -0
  90. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-0.4.15.rdoc +35 -0
  91. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-0.5.0.rdoc +53 -0
  92. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-0.5.3.rdoc +78 -0
  93. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-0.5.4.rdoc +46 -0
  94. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-0.6.0.rdoc +141 -0
  95. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-0.7.0.rdoc +119 -0
  96. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-0.7.1.rdoc +59 -0
  97. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-0.7.2.rdoc +121 -0
  98. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-0.7.3.rdoc +47 -0
  99. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-0.8.0.rdoc +114 -0
  100. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-0.8.2.rdoc +165 -0
  101. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-0.8.3.rdoc +112 -0
  102. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-0.8.4.rdoc +147 -0
  103. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-0.8.5.rdoc +53 -0
  104. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-0.8.6.rdoc +37 -0
  105. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-0.8.7.rdoc +55 -0
  106. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-0.9.0.rdoc +112 -0
  107. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-0.9.1.rdoc +52 -0
  108. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-0.9.2.2.rdoc +55 -0
  109. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-0.9.2.rdoc +49 -0
  110. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-0.9.3.rdoc +102 -0
  111. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-0.9.4.rdoc +60 -0
  112. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-0.9.5.rdoc +55 -0
  113. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-0.9.6.rdoc +64 -0
  114. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-10.0.0.rdoc +178 -0
  115. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-10.0.1.rdoc +58 -0
  116. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-10.0.2.rdoc +53 -0
  117. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-10.0.3.rdoc +191 -0
  118. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-10.1.0.rdoc +61 -0
  119. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/alt_system.rb +110 -0
  120. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/application.rb +790 -0
  121. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/backtrace.rb +23 -0
  122. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/clean.rb +76 -0
  123. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/cloneable.rb +16 -0
  124. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/contrib/.document +1 -0
  125. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/contrib/compositepublisher.rb +21 -0
  126. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/contrib/ftptools.rb +137 -0
  127. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/contrib/publisher.rb +81 -0
  128. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/contrib/rubyforgepublisher.rb +18 -0
  129. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/contrib/sshpublisher.rb +61 -0
  130. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/contrib/sys.rb +4 -0
  131. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/cpu_counter.rb +125 -0
  132. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/default_loader.rb +14 -0
  133. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/dsl_definition.rb +201 -0
  134. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/early_time.rb +21 -0
  135. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/ext/core.rb +25 -0
  136. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/ext/module.rb +2 -0
  137. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/ext/pathname.rb +25 -0
  138. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/ext/string.rb +175 -0
  139. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/ext/time.rb +18 -0
  140. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/file_creation_task.rb +24 -0
  141. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/file_list.rb +428 -0
  142. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/file_task.rb +46 -0
  143. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/file_utils.rb +128 -0
  144. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/file_utils_ext.rb +144 -0
  145. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/gempackagetask.rb +4 -0
  146. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/invocation_chain.rb +56 -0
  147. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/invocation_exception_mixin.rb +16 -0
  148. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/late_time.rb +17 -0
  149. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/linked_list.rb +103 -0
  150. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/loaders/makefile.rb +53 -0
  151. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/multi_task.rb +13 -0
  152. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/name_space.rb +38 -0
  153. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/packagetask.rb +199 -0
  154. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/pathmap.rb +3 -0
  155. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/phony.rb +15 -0
  156. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/private_reader.rb +20 -0
  157. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/promise.rb +99 -0
  158. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/pseudo_status.rb +29 -0
  159. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/rake_module.rb +38 -0
  160. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/rake_test_loader.rb +22 -0
  161. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/rdoctask.rb +4 -0
  162. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/ruby182_test_unit_fix.rb +29 -0
  163. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/rule_recursion_overflow_error.rb +20 -0
  164. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/runtest.rb +27 -0
  165. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/scope.rb +42 -0
  166. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/task.rb +383 -0
  167. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/task_argument_error.rb +7 -0
  168. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/task_arguments.rb +98 -0
  169. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/task_manager.rb +307 -0
  170. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/tasklib.rb +24 -0
  171. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/testtask.rb +213 -0
  172. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/thread_history_display.rb +48 -0
  173. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/thread_pool.rb +164 -0
  174. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/trace_output.rb +22 -0
  175. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/version.rb +7 -0
  176. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/win32.rb +56 -0
  177. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake.rb +79 -0
  178. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/rakelib/publish.rake +20 -0
  179. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/rakelib/test_times.rake +25 -0
  180. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/file_creation.rb +34 -0
  181. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/helper.rb +129 -0
  182. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/support/rakefile_definitions.rb +478 -0
  183. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/support/ruby_runner.rb +34 -0
  184. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_private_reader.rb +42 -0
  185. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake.rb +40 -0
  186. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_application.rb +643 -0
  187. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_application_options.rb +468 -0
  188. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_backtrace.rb +119 -0
  189. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_clean.rb +61 -0
  190. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_cpu_counter.rb +68 -0
  191. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_definitions.rb +84 -0
  192. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_directory_task.rb +76 -0
  193. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_dsl.rb +40 -0
  194. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_early_time.rb +31 -0
  195. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_extension.rb +59 -0
  196. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_file_creation_task.rb +56 -0
  197. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_file_list.rb +670 -0
  198. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_file_list_path_map.rb +8 -0
  199. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_file_task.rb +197 -0
  200. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_file_utils.rb +314 -0
  201. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_ftp_file.rb +74 -0
  202. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_functional.rb +482 -0
  203. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_invocation_chain.rb +64 -0
  204. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_late_time.rb +18 -0
  205. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_linked_list.rb +84 -0
  206. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_makefile_loader.rb +46 -0
  207. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_multi_task.rb +64 -0
  208. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_name_space.rb +57 -0
  209. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_package_task.rb +79 -0
  210. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_path_map.rb +168 -0
  211. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_path_map_explode.rb +34 -0
  212. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_path_map_partial.rb +18 -0
  213. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_pathname_extensions.rb +15 -0
  214. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_pseudo_status.rb +21 -0
  215. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_rake_test_loader.rb +20 -0
  216. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_reduce_compat.rb +26 -0
  217. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_require.rb +40 -0
  218. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_rules.rb +388 -0
  219. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_scope.rb +44 -0
  220. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_task.rb +393 -0
  221. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_task_argument_parsing.rb +119 -0
  222. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_task_arguments.rb +127 -0
  223. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_task_lib.rb +9 -0
  224. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_task_manager.rb +178 -0
  225. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_task_manager_argument_resolution.rb +19 -0
  226. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_task_with_arguments.rb +172 -0
  227. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_test_task.rb +146 -0
  228. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_thread_pool.rb +145 -0
  229. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_top_level_functions.rb +71 -0
  230. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_win32.rb +72 -0
  231. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_thread_history_display.rb +101 -0
  232. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_trace_output.rb +52 -0
  233. data/vendor/bundle/ruby/2.6.0/gems/rspec-3.9.0/LICENSE.md +27 -0
  234. data/vendor/bundle/ruby/2.6.0/gems/rspec-3.9.0/README.md +43 -0
  235. data/vendor/bundle/ruby/2.6.0/gems/rspec-3.9.0/lib/rspec/version.rb +5 -0
  236. data/vendor/bundle/ruby/2.6.0/gems/rspec-3.9.0/lib/rspec.rb +3 -0
  237. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/.document +5 -0
  238. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/.yardopts +8 -0
  239. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/Changelog.md +2265 -0
  240. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/LICENSE.md +26 -0
  241. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/README.md +384 -0
  242. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/exe/rspec +4 -0
  243. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/autorun.rb +3 -0
  244. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/backtrace_formatter.rb +65 -0
  245. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/bisect/coordinator.rb +62 -0
  246. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/bisect/example_minimizer.rb +173 -0
  247. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/bisect/fork_runner.rb +134 -0
  248. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/bisect/server.rb +61 -0
  249. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/bisect/shell_command.rb +126 -0
  250. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/bisect/shell_runner.rb +73 -0
  251. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/bisect/utilities.rb +58 -0
  252. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/configuration.rb +2336 -0
  253. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/configuration_options.rb +233 -0
  254. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/did_you_mean.rb +46 -0
  255. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/drb.rb +113 -0
  256. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/dsl.rb +98 -0
  257. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/example.rb +656 -0
  258. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/example_group.rb +889 -0
  259. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/example_status_persister.rb +235 -0
  260. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/filter_manager.rb +231 -0
  261. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/flat_map.rb +20 -0
  262. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/base_bisect_formatter.rb +45 -0
  263. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/base_formatter.rb +70 -0
  264. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/base_text_formatter.rb +75 -0
  265. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/bisect_drb_formatter.rb +29 -0
  266. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/bisect_progress_formatter.rb +157 -0
  267. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/console_codes.rb +68 -0
  268. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/deprecation_formatter.rb +223 -0
  269. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/documentation_formatter.rb +102 -0
  270. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/exception_presenter.rb +508 -0
  271. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/failure_list_formatter.rb +23 -0
  272. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/fallback_message_formatter.rb +28 -0
  273. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/helpers.rb +110 -0
  274. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/html_formatter.rb +153 -0
  275. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/html_printer.rb +414 -0
  276. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/html_snippet_extractor.rb +120 -0
  277. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/json_formatter.rb +102 -0
  278. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/profile_formatter.rb +68 -0
  279. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/progress_formatter.rb +29 -0
  280. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/protocol.rb +182 -0
  281. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/snippet_extractor.rb +134 -0
  282. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/syntax_highlighter.rb +91 -0
  283. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters.rb +272 -0
  284. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/hooks.rb +632 -0
  285. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/invocations.rb +87 -0
  286. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/memoized_helpers.rb +554 -0
  287. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/metadata.rb +498 -0
  288. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/metadata_filter.rb +255 -0
  289. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/minitest_assertions_adapter.rb +31 -0
  290. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/mocking_adapters/flexmock.rb +31 -0
  291. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/mocking_adapters/mocha.rb +57 -0
  292. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/mocking_adapters/null.rb +14 -0
  293. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/mocking_adapters/rr.rb +31 -0
  294. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/mocking_adapters/rspec.rb +32 -0
  295. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/notifications.rb +521 -0
  296. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/option_parser.rb +317 -0
  297. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/ordering.rb +158 -0
  298. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/output_wrapper.rb +29 -0
  299. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/pending.rb +165 -0
  300. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/profiler.rb +34 -0
  301. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/project_initializer/.rspec +1 -0
  302. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/project_initializer/spec/spec_helper.rb +100 -0
  303. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/project_initializer.rb +48 -0
  304. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/rake_task.rb +188 -0
  305. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/reporter.rb +265 -0
  306. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/ruby_project.rb +53 -0
  307. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/runner.rb +204 -0
  308. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/sandbox.rb +37 -0
  309. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/set.rb +54 -0
  310. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/shared_context.rb +55 -0
  311. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/shared_example_group.rb +269 -0
  312. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/shell_escape.rb +49 -0
  313. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/test_unit_assertions_adapter.rb +30 -0
  314. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/version.rb +9 -0
  315. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/warnings.rb +40 -0
  316. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core/world.rb +275 -0
  317. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.0/lib/rspec/core.rb +186 -0
  318. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/.document +5 -0
  319. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/.yardopts +6 -0
  320. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/Changelog.md +1170 -0
  321. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/LICENSE.md +25 -0
  322. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/README.md +320 -0
  323. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/lib/rspec/expectations/block_snippet_extractor.rb +253 -0
  324. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/lib/rspec/expectations/configuration.rb +215 -0
  325. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/lib/rspec/expectations/expectation_target.rb +127 -0
  326. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/lib/rspec/expectations/fail_with.rb +39 -0
  327. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/lib/rspec/expectations/failure_aggregator.rb +194 -0
  328. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/lib/rspec/expectations/handler.rb +170 -0
  329. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/lib/rspec/expectations/minitest_integration.rb +58 -0
  330. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/lib/rspec/expectations/syntax.rb +132 -0
  331. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/lib/rspec/expectations/version.rb +8 -0
  332. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/lib/rspec/expectations.rb +82 -0
  333. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/aliased_matcher.rb +116 -0
  334. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/all.rb +86 -0
  335. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/base_matcher.rb +193 -0
  336. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/be.rb +288 -0
  337. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/be_between.rb +77 -0
  338. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/be_instance_of.rb +26 -0
  339. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/be_kind_of.rb +20 -0
  340. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/be_within.rb +72 -0
  341. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/change.rb +428 -0
  342. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/compound.rb +276 -0
  343. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/contain_exactly.rb +302 -0
  344. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/cover.rb +24 -0
  345. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/eq.rb +40 -0
  346. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/eql.rb +34 -0
  347. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/equal.rb +81 -0
  348. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/exist.rb +90 -0
  349. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/has.rb +103 -0
  350. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/have_attributes.rb +114 -0
  351. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/include.rb +149 -0
  352. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/match.rb +106 -0
  353. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/operators.rb +128 -0
  354. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/output.rb +200 -0
  355. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/raise_error.rb +230 -0
  356. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/respond_to.rb +174 -0
  357. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/satisfy.rb +60 -0
  358. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/start_or_end_with.rb +94 -0
  359. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/throw_symbol.rb +132 -0
  360. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/yield.rb +432 -0
  361. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in.rb +52 -0
  362. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/composable.rb +171 -0
  363. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/dsl.rb +534 -0
  364. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/english_phrasing.rb +58 -0
  365. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/expecteds_for_multiple_diffs.rb +82 -0
  366. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/fail_matchers.rb +42 -0
  367. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/generated_descriptions.rb +41 -0
  368. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/matcher_delegator.rb +35 -0
  369. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/matcher_protocol.rb +99 -0
  370. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers.rb +1038 -0
  371. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.0/.document +5 -0
  372. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.0/.yardopts +6 -0
  373. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.0/Changelog.md +1125 -0
  374. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.0/LICENSE.md +25 -0
  375. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.0/README.md +463 -0
  376. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/any_instance/chain.rb +111 -0
  377. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/any_instance/error_generator.rb +31 -0
  378. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/any_instance/expect_chain_chain.rb +31 -0
  379. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/any_instance/expectation_chain.rb +50 -0
  380. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/any_instance/message_chains.rb +83 -0
  381. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/any_instance/proxy.rb +116 -0
  382. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/any_instance/recorder.rb +289 -0
  383. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/any_instance/stub_chain.rb +51 -0
  384. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/any_instance/stub_chain_chain.rb +23 -0
  385. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/any_instance.rb +11 -0
  386. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/argument_list_matcher.rb +100 -0
  387. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/argument_matchers.rb +322 -0
  388. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/configuration.rb +212 -0
  389. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/error_generator.rb +369 -0
  390. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/example_methods.rb +434 -0
  391. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/instance_method_stasher.rb +146 -0
  392. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/marshal_extension.rb +41 -0
  393. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/matchers/expectation_customization.rb +20 -0
  394. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/matchers/have_received.rb +134 -0
  395. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/matchers/receive.rb +132 -0
  396. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/matchers/receive_message_chain.rb +82 -0
  397. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/matchers/receive_messages.rb +77 -0
  398. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/message_chain.rb +87 -0
  399. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/message_expectation.rb +751 -0
  400. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/method_double.rb +287 -0
  401. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/method_reference.rb +202 -0
  402. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/minitest_integration.rb +68 -0
  403. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/mutate_const.rb +339 -0
  404. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/object_reference.rb +149 -0
  405. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/order_group.rb +81 -0
  406. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/proxy.rb +503 -0
  407. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/space.rb +238 -0
  408. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/standalone.rb +3 -0
  409. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/syntax.rb +325 -0
  410. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/targets.rb +124 -0
  411. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/test_double.rb +171 -0
  412. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/verifying_double.rb +129 -0
  413. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/verifying_message_expectation.rb +54 -0
  414. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/verifying_proxy.rb +220 -0
  415. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/version.rb +9 -0
  416. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks.rb +130 -0
  417. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.9.0/Changelog.md +275 -0
  418. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.9.0/LICENSE.md +23 -0
  419. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.9.0/README.md +40 -0
  420. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.9.0/lib/rspec/support/caller_filter.rb +83 -0
  421. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.9.0/lib/rspec/support/comparable_version.rb +46 -0
  422. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.9.0/lib/rspec/support/differ.rb +215 -0
  423. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.9.0/lib/rspec/support/directory_maker.rb +63 -0
  424. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.9.0/lib/rspec/support/encoded_string.rb +165 -0
  425. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.9.0/lib/rspec/support/fuzzy_matcher.rb +48 -0
  426. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.9.0/lib/rspec/support/hunk_generator.rb +47 -0
  427. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.9.0/lib/rspec/support/matcher_definition.rb +42 -0
  428. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.9.0/lib/rspec/support/method_signature_verifier.rb +438 -0
  429. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.9.0/lib/rspec/support/mutex.rb +73 -0
  430. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.9.0/lib/rspec/support/object_formatter.rb +275 -0
  431. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.9.0/lib/rspec/support/recursive_const_methods.rb +76 -0
  432. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.9.0/lib/rspec/support/reentrant_mutex.rb +53 -0
  433. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.9.0/lib/rspec/support/ruby_features.rb +176 -0
  434. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.9.0/lib/rspec/support/source/location.rb +21 -0
  435. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.9.0/lib/rspec/support/source/node.rb +110 -0
  436. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.9.0/lib/rspec/support/source/token.rb +87 -0
  437. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.9.0/lib/rspec/support/source.rb +75 -0
  438. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.9.0/lib/rspec/support/spec/deprecation_helpers.rb +64 -0
  439. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.9.0/lib/rspec/support/spec/formatting_support.rb +9 -0
  440. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.9.0/lib/rspec/support/spec/in_sub_process.rb +69 -0
  441. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.9.0/lib/rspec/support/spec/library_wide_checks.rb +150 -0
  442. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.9.0/lib/rspec/support/spec/shell_out.rb +89 -0
  443. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.9.0/lib/rspec/support/spec/stderr_splitter.rb +63 -0
  444. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.9.0/lib/rspec/support/spec/string_matcher.rb +46 -0
  445. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.9.0/lib/rspec/support/spec/with_isolated_directory.rb +13 -0
  446. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.9.0/lib/rspec/support/spec/with_isolated_stderr.rb +13 -0
  447. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.9.0/lib/rspec/support/spec.rb +81 -0
  448. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.9.0/lib/rspec/support/version.rb +7 -0
  449. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.9.0/lib/rspec/support/warnings.rb +39 -0
  450. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.9.0/lib/rspec/support.rb +149 -0
  451. data/vendor/bundle/ruby/2.6.0/gems/thor-0.20.3/.document +5 -0
  452. data/vendor/bundle/ruby/2.6.0/gems/thor-0.20.3/CHANGELOG.md +204 -0
  453. data/vendor/bundle/ruby/2.6.0/gems/thor-0.20.3/CONTRIBUTING.md +15 -0
  454. data/vendor/bundle/ruby/2.6.0/gems/thor-0.20.3/LICENSE.md +20 -0
  455. data/vendor/bundle/ruby/2.6.0/gems/thor-0.20.3/README.md +51 -0
  456. data/vendor/bundle/ruby/2.6.0/gems/thor-0.20.3/bin/thor +6 -0
  457. data/vendor/bundle/ruby/2.6.0/gems/thor-0.20.3/lib/thor/actions/create_file.rb +104 -0
  458. data/vendor/bundle/ruby/2.6.0/gems/thor-0.20.3/lib/thor/actions/create_link.rb +60 -0
  459. data/vendor/bundle/ruby/2.6.0/gems/thor-0.20.3/lib/thor/actions/directory.rb +118 -0
  460. data/vendor/bundle/ruby/2.6.0/gems/thor-0.20.3/lib/thor/actions/empty_directory.rb +143 -0
  461. data/vendor/bundle/ruby/2.6.0/gems/thor-0.20.3/lib/thor/actions/file_manipulation.rb +373 -0
  462. data/vendor/bundle/ruby/2.6.0/gems/thor-0.20.3/lib/thor/actions/inject_into_file.rb +109 -0
  463. data/vendor/bundle/ruby/2.6.0/gems/thor-0.20.3/lib/thor/actions.rb +331 -0
  464. data/vendor/bundle/ruby/2.6.0/gems/thor-0.20.3/lib/thor/base.rb +678 -0
  465. data/vendor/bundle/ruby/2.6.0/gems/thor-0.20.3/lib/thor/command.rb +135 -0
  466. data/vendor/bundle/ruby/2.6.0/gems/thor-0.20.3/lib/thor/core_ext/hash_with_indifferent_access.rb +97 -0
  467. data/vendor/bundle/ruby/2.6.0/gems/thor-0.20.3/lib/thor/core_ext/io_binary_read.rb +12 -0
  468. data/vendor/bundle/ruby/2.6.0/gems/thor-0.20.3/lib/thor/core_ext/ordered_hash.rb +129 -0
  469. data/vendor/bundle/ruby/2.6.0/gems/thor-0.20.3/lib/thor/error.rb +114 -0
  470. data/vendor/bundle/ruby/2.6.0/gems/thor-0.20.3/lib/thor/group.rb +281 -0
  471. data/vendor/bundle/ruby/2.6.0/gems/thor-0.20.3/lib/thor/invocation.rb +177 -0
  472. data/vendor/bundle/ruby/2.6.0/gems/thor-0.20.3/lib/thor/line_editor/basic.rb +37 -0
  473. data/vendor/bundle/ruby/2.6.0/gems/thor-0.20.3/lib/thor/line_editor/readline.rb +88 -0
  474. data/vendor/bundle/ruby/2.6.0/gems/thor-0.20.3/lib/thor/line_editor.rb +17 -0
  475. data/vendor/bundle/ruby/2.6.0/gems/thor-0.20.3/lib/thor/parser/argument.rb +70 -0
  476. data/vendor/bundle/ruby/2.6.0/gems/thor-0.20.3/lib/thor/parser/arguments.rb +175 -0
  477. data/vendor/bundle/ruby/2.6.0/gems/thor-0.20.3/lib/thor/parser/option.rb +146 -0
  478. data/vendor/bundle/ruby/2.6.0/gems/thor-0.20.3/lib/thor/parser/options.rb +226 -0
  479. data/vendor/bundle/ruby/2.6.0/gems/thor-0.20.3/lib/thor/parser.rb +4 -0
  480. data/vendor/bundle/ruby/2.6.0/gems/thor-0.20.3/lib/thor/rake_compat.rb +71 -0
  481. data/vendor/bundle/ruby/2.6.0/gems/thor-0.20.3/lib/thor/runner.rb +324 -0
  482. data/vendor/bundle/ruby/2.6.0/gems/thor-0.20.3/lib/thor/shell/basic.rb +482 -0
  483. data/vendor/bundle/ruby/2.6.0/gems/thor-0.20.3/lib/thor/shell/color.rb +149 -0
  484. data/vendor/bundle/ruby/2.6.0/gems/thor-0.20.3/lib/thor/shell/html.rb +126 -0
  485. data/vendor/bundle/ruby/2.6.0/gems/thor-0.20.3/lib/thor/shell.rb +81 -0
  486. data/vendor/bundle/ruby/2.6.0/gems/thor-0.20.3/lib/thor/util.rb +268 -0
  487. data/vendor/bundle/ruby/2.6.0/gems/thor-0.20.3/lib/thor/version.rb +3 -0
  488. data/vendor/bundle/ruby/2.6.0/gems/thor-0.20.3/lib/thor.rb +509 -0
  489. data/vendor/bundle/ruby/2.6.0/gems/thor-0.20.3/thor.gemspec +21 -0
  490. data/vendor/bundle/ruby/2.6.0/specifications/diff-lcs-1.3.gemspec +61 -0
  491. data/vendor/bundle/ruby/2.6.0/specifications/rake-10.5.0.gemspec +43 -0
  492. data/vendor/bundle/ruby/2.6.0/specifications/rspec-3.9.0.gemspec +43 -0
  493. data/vendor/bundle/ruby/2.6.0/specifications/rspec-core-3.9.0.gemspec +63 -0
  494. data/vendor/bundle/ruby/2.6.0/specifications/rspec-expectations-3.9.0.gemspec +51 -0
  495. data/vendor/bundle/ruby/2.6.0/specifications/rspec-mocks-3.9.0.gemspec +51 -0
  496. data/vendor/bundle/ruby/2.6.0/specifications/rspec-support-3.9.0.gemspec +39 -0
  497. data/vendor/bundle/ruby/2.6.0/specifications/thor-0.20.3.gemspec +35 -0
  498. metadata +600 -0
@@ -0,0 +1,508 @@
1
+ # encoding: utf-8
2
+ RSpec::Support.require_rspec_core "formatters/console_codes"
3
+ RSpec::Support.require_rspec_core "formatters/snippet_extractor"
4
+ RSpec::Support.require_rspec_core 'formatters/syntax_highlighter'
5
+ RSpec::Support.require_rspec_support "encoded_string"
6
+
7
+ module RSpec
8
+ module Core
9
+ module Formatters
10
+ # @private
11
+ class ExceptionPresenter
12
+ attr_reader :exception, :example, :description, :message_color,
13
+ :detail_formatter, :extra_detail_formatter, :backtrace_formatter
14
+ private :message_color, :detail_formatter, :extra_detail_formatter, :backtrace_formatter
15
+
16
+ def initialize(exception, example, options={})
17
+ @exception = exception
18
+ @example = example
19
+ @message_color = options.fetch(:message_color) { RSpec.configuration.failure_color }
20
+ @description = options.fetch(:description) { example.full_description }
21
+ @detail_formatter = options.fetch(:detail_formatter) { Proc.new {} }
22
+ @extra_detail_formatter = options.fetch(:extra_detail_formatter) { Proc.new {} }
23
+ @backtrace_formatter = options.fetch(:backtrace_formatter) { RSpec.configuration.backtrace_formatter }
24
+ @indentation = options.fetch(:indentation, 2)
25
+ @skip_shared_group_trace = options.fetch(:skip_shared_group_trace, false)
26
+ @failure_lines = options[:failure_lines]
27
+ end
28
+
29
+ def message_lines
30
+ add_shared_group_lines(failure_lines, Notifications::NullColorizer)
31
+ end
32
+
33
+ def colorized_message_lines(colorizer=::RSpec::Core::Formatters::ConsoleCodes)
34
+ add_shared_group_lines(failure_lines, colorizer).map do |line|
35
+ colorizer.wrap line, message_color
36
+ end
37
+ end
38
+
39
+ def formatted_backtrace(exception=@exception)
40
+ backtrace_formatter.format_backtrace(exception.backtrace, example.metadata) +
41
+ formatted_cause(exception)
42
+ end
43
+
44
+ if RSpec::Support::RubyFeatures.supports_exception_cause?
45
+ def formatted_cause(exception)
46
+ last_cause = final_exception(exception)
47
+ cause = []
48
+
49
+ if exception.cause
50
+ cause << '------------------'
51
+ cause << '--- Caused by: ---'
52
+ cause << "#{exception_class_name(last_cause)}:" unless exception_class_name(last_cause) =~ /RSpec/
53
+
54
+ encoded_string(last_cause.message.to_s).split("\n").each do |line|
55
+ cause << " #{line}"
56
+ end
57
+
58
+ cause << (" #{backtrace_formatter.format_backtrace(last_cause.backtrace, example.metadata).first}")
59
+ end
60
+
61
+ cause
62
+ end
63
+ else
64
+ # :nocov:
65
+ def formatted_cause(_)
66
+ []
67
+ end
68
+ # :nocov:
69
+ end
70
+
71
+ def colorized_formatted_backtrace(colorizer=::RSpec::Core::Formatters::ConsoleCodes)
72
+ formatted_backtrace.map do |backtrace_info|
73
+ colorizer.wrap "# #{backtrace_info}", RSpec.configuration.detail_color
74
+ end
75
+ end
76
+
77
+ def fully_formatted(failure_number, colorizer=::RSpec::Core::Formatters::ConsoleCodes)
78
+ lines = fully_formatted_lines(failure_number, colorizer)
79
+ lines.join("\n") << "\n"
80
+ end
81
+
82
+ def fully_formatted_lines(failure_number, colorizer)
83
+ lines = [
84
+ encoded_description(description),
85
+ detail_formatter.call(example, colorizer),
86
+ formatted_message_and_backtrace(colorizer),
87
+ extra_detail_formatter.call(failure_number, colorizer),
88
+ ].compact.flatten
89
+
90
+ lines = indent_lines(lines, failure_number)
91
+ lines.unshift("")
92
+ lines
93
+ end
94
+
95
+ private
96
+
97
+ def final_exception(exception, previous=[])
98
+ cause = exception.cause
99
+ if cause && !previous.include?(cause)
100
+ previous << cause
101
+ final_exception(cause, previous)
102
+ else
103
+ exception
104
+ end
105
+ end
106
+
107
+ if String.method_defined?(:encoding)
108
+ def encoding_of(string)
109
+ string.encoding
110
+ end
111
+
112
+ def encoded_string(string)
113
+ RSpec::Support::EncodedString.new(string, Encoding.default_external)
114
+ end
115
+ else # for 1.8.7
116
+ # :nocov:
117
+ def encoding_of(_string)
118
+ end
119
+
120
+ def encoded_string(string)
121
+ RSpec::Support::EncodedString.new(string)
122
+ end
123
+ # :nocov:
124
+ end
125
+
126
+ def indent_lines(lines, failure_number)
127
+ alignment_basis = ' ' * @indentation
128
+ alignment_basis << "#{failure_number}) " if failure_number
129
+ indentation = ' ' * alignment_basis.length
130
+
131
+ lines.each_with_index.map do |line, index|
132
+ if index == 0
133
+ "#{alignment_basis}#{line}"
134
+ elsif line.empty?
135
+ line
136
+ else
137
+ "#{indentation}#{line}"
138
+ end
139
+ end
140
+ end
141
+
142
+ def exception_class_name(exception=@exception)
143
+ name = exception.class.name.to_s
144
+ name = "(anonymous error class)" if name == ''
145
+ name
146
+ end
147
+
148
+ def failure_lines
149
+ @failure_lines ||= [].tap do |lines|
150
+ lines.concat(failure_slash_error_lines)
151
+
152
+ sections = [failure_slash_error_lines, exception_lines]
153
+ if sections.any? { |section| section.size > 1 } && !exception_lines.first.empty?
154
+ lines << ''
155
+ end
156
+
157
+ lines.concat(exception_lines)
158
+ lines.concat(extra_failure_lines)
159
+ end
160
+ end
161
+
162
+ def failure_slash_error_lines
163
+ lines = read_failed_lines
164
+ if lines.count == 1
165
+ lines[0] = "Failure/Error: #{lines[0].strip}"
166
+ else
167
+ least_indentation = SnippetExtractor.least_indentation_from(lines)
168
+ lines = lines.map { |line| line.sub(/^#{least_indentation}/, ' ') }
169
+ lines.unshift('Failure/Error:')
170
+ end
171
+ lines
172
+ end
173
+
174
+ def exception_lines
175
+ lines = []
176
+ lines << "#{exception_class_name}:" unless exception_class_name =~ /RSpec/
177
+ encoded_string(exception.message.to_s).split("\n").each do |line|
178
+ lines << (line.empty? ? line : " #{line}")
179
+ end
180
+ lines
181
+ end
182
+
183
+ def extra_failure_lines
184
+ @extra_failure_lines ||= begin
185
+ lines = Array(example.metadata[:extra_failure_lines])
186
+ unless lines.empty?
187
+ lines.unshift('')
188
+ lines.push('')
189
+ end
190
+ lines
191
+ end
192
+ end
193
+
194
+ def add_shared_group_lines(lines, colorizer)
195
+ return lines if @skip_shared_group_trace
196
+
197
+ example.metadata[:shared_group_inclusion_backtrace].each do |frame|
198
+ lines << colorizer.wrap(frame.description, RSpec.configuration.default_color)
199
+ end
200
+
201
+ lines
202
+ end
203
+
204
+ def read_failed_lines
205
+ matching_line = find_failed_line
206
+ unless matching_line
207
+ return ["Unable to find matching line from backtrace"]
208
+ end
209
+
210
+ file_and_line_number = matching_line.match(/(.+?):(\d+)(|:\d+)/)
211
+
212
+ unless file_and_line_number
213
+ return ["Unable to infer file and line number from backtrace"]
214
+ end
215
+
216
+ file_path, line_number = file_and_line_number[1..2]
217
+ max_line_count = RSpec.configuration.max_displayed_failure_line_count
218
+ lines = SnippetExtractor.extract_expression_lines_at(file_path, line_number.to_i, max_line_count)
219
+ RSpec.world.syntax_highlighter.highlight(lines)
220
+ rescue SnippetExtractor::NoSuchFileError
221
+ ["Unable to find #{file_path} to read failed line"]
222
+ rescue SnippetExtractor::NoSuchLineError
223
+ ["Unable to find matching line in #{file_path}"]
224
+ rescue SecurityError
225
+ ["Unable to read failed line"]
226
+ end
227
+
228
+ def find_failed_line
229
+ line_regex = RSpec.configuration.in_project_source_dir_regex
230
+ loaded_spec_files = RSpec.configuration.loaded_spec_files
231
+
232
+ exception_backtrace.find do |line|
233
+ next unless (line_path = line[/(.+?):(\d+)(|:\d+)/, 1])
234
+ path = File.expand_path(line_path)
235
+ loaded_spec_files.include?(path) || path =~ line_regex
236
+ end || exception_backtrace.first
237
+ end
238
+
239
+ def formatted_message_and_backtrace(colorizer)
240
+ lines = colorized_message_lines(colorizer) + colorized_formatted_backtrace(colorizer)
241
+ encoding = encoding_of("")
242
+ lines.map do |line|
243
+ RSpec::Support::EncodedString.new(line, encoding)
244
+ end
245
+ end
246
+
247
+ if String.method_defined?(:encoding)
248
+ def encoded_description(description)
249
+ return if description.nil?
250
+ encoded_string(description)
251
+ end
252
+ else # for 1.8.7
253
+ def encoded_description(description)
254
+ description
255
+ end
256
+ end
257
+
258
+ def exception_backtrace
259
+ exception.backtrace || []
260
+ end
261
+
262
+ # @private
263
+ # Configuring the `ExceptionPresenter` with the right set of options to handle
264
+ # pending vs failed vs skipped and aggregated (or not) failures is not simple.
265
+ # This class takes care of building an appropriate `ExceptionPresenter` for the
266
+ # provided example.
267
+ class Factory
268
+ def build
269
+ ExceptionPresenter.new(@exception, @example, options)
270
+ end
271
+
272
+ private
273
+
274
+ def initialize(example)
275
+ @example = example
276
+ @execution_result = example.execution_result
277
+ @exception = if @execution_result.status == :pending
278
+ @execution_result.pending_exception
279
+ else
280
+ @execution_result.exception
281
+ end
282
+ end
283
+
284
+ def options
285
+ with_multiple_error_options_as_needed(@exception, pending_options || {})
286
+ end
287
+
288
+ def pending_options
289
+ if @execution_result.pending_fixed?
290
+ {
291
+ :description => "#{@example.full_description} FIXED",
292
+ :message_color => RSpec.configuration.fixed_color,
293
+ :failure_lines => [
294
+ "Expected pending '#{@execution_result.pending_message}' to fail. No error was raised."
295
+ ]
296
+ }
297
+ elsif @execution_result.status == :pending
298
+ {
299
+ :message_color => RSpec.configuration.pending_color,
300
+ :detail_formatter => PENDING_DETAIL_FORMATTER
301
+ }
302
+ end
303
+ end
304
+
305
+ def with_multiple_error_options_as_needed(exception, options)
306
+ return options unless multiple_exceptions_error?(exception)
307
+
308
+ options = options.merge(
309
+ :failure_lines => [],
310
+ :extra_detail_formatter => sub_failure_list_formatter(exception, options[:message_color]),
311
+ :detail_formatter => multiple_exception_summarizer(exception,
312
+ options[:detail_formatter],
313
+ options[:message_color])
314
+ )
315
+
316
+ return options unless exception.aggregation_metadata[:hide_backtrace]
317
+ options[:backtrace_formatter] = EmptyBacktraceFormatter
318
+ options
319
+ end
320
+
321
+ def multiple_exceptions_error?(exception)
322
+ MultipleExceptionError::InterfaceTag === exception
323
+ end
324
+
325
+ def multiple_exception_summarizer(exception, prior_detail_formatter, color)
326
+ lambda do |example, colorizer|
327
+ summary = if exception.aggregation_metadata[:hide_backtrace]
328
+ # Since the backtrace is hidden, the subfailures will come
329
+ # immediately after this, and using `:` will read well.
330
+ "Got #{exception.exception_count_description}:"
331
+ else
332
+ # The backtrace comes after this, so using a `:` doesn't make sense
333
+ # since the failures may be many lines below.
334
+ "#{exception.summary}."
335
+ end
336
+
337
+ summary = colorizer.wrap(summary, color || RSpec.configuration.failure_color)
338
+ return summary unless prior_detail_formatter
339
+ [
340
+ prior_detail_formatter.call(example, colorizer),
341
+ summary
342
+ ]
343
+ end
344
+ end
345
+
346
+ def sub_failure_list_formatter(exception, message_color)
347
+ common_backtrace_truncater = CommonBacktraceTruncater.new(exception)
348
+
349
+ lambda do |failure_number, colorizer|
350
+ FlatMap.flat_map(exception.all_exceptions.each_with_index) do |failure, index|
351
+ options = with_multiple_error_options_as_needed(
352
+ failure,
353
+ :description => nil,
354
+ :indentation => 0,
355
+ :message_color => message_color || RSpec.configuration.failure_color,
356
+ :skip_shared_group_trace => true
357
+ )
358
+
359
+ failure = common_backtrace_truncater.with_truncated_backtrace(failure)
360
+ presenter = ExceptionPresenter.new(failure, @example, options)
361
+ presenter.fully_formatted_lines(
362
+ "#{failure_number ? "#{failure_number}." : ''}#{index + 1}",
363
+ colorizer
364
+ )
365
+ end
366
+ end
367
+ end
368
+
369
+ # @private
370
+ # Used to prevent a confusing backtrace from showing up from the `aggregate_failures`
371
+ # block declared for `:aggregate_failures` metadata.
372
+ module EmptyBacktraceFormatter
373
+ def self.format_backtrace(*)
374
+ []
375
+ end
376
+ end
377
+
378
+ # @private
379
+ class CommonBacktraceTruncater
380
+ def initialize(parent)
381
+ @parent = parent
382
+ end
383
+
384
+ def with_truncated_backtrace(child)
385
+ child_bt = child.backtrace
386
+ parent_bt = @parent.backtrace
387
+ return child if child_bt.nil? || child_bt.empty? || parent_bt.nil?
388
+
389
+ index_before_first_common_frame = -1.downto(-child_bt.size).find do |index|
390
+ parent_bt[index] != child_bt[index]
391
+ end
392
+
393
+ return child if index_before_first_common_frame.nil?
394
+ return child if index_before_first_common_frame == -1
395
+
396
+ child = child.dup
397
+ child.set_backtrace(child_bt[0..index_before_first_common_frame])
398
+ child
399
+ end
400
+ end
401
+ end
402
+
403
+ # @private
404
+ PENDING_DETAIL_FORMATTER = Proc.new do |example, colorizer|
405
+ colorizer.wrap("# #{example.execution_result.pending_message}", :detail)
406
+ end
407
+ end
408
+ end
409
+
410
+ # Provides a single exception instance that provides access to
411
+ # multiple sub-exceptions. This is used in situations where a single
412
+ # individual spec has multiple exceptions, such as one in the `it` block
413
+ # and one in an `after` block.
414
+ class MultipleExceptionError < StandardError
415
+ # @private
416
+ # Used so there is a common module in the ancestor chain of this class
417
+ # and `RSpec::Expectations::MultipleExpectationsNotMetError`, which allows
418
+ # code to detect exceptions that are instances of either, without first
419
+ # checking to see if rspec-expectations is loaded.
420
+ module InterfaceTag
421
+ # Appends the provided exception to the list.
422
+ # @param exception [Exception] Exception to append to the list.
423
+ # @private
424
+ def add(exception)
425
+ # `PendingExampleFixedError` can be assigned to an example that initially has no
426
+ # failures, but when the `aggregate_failures` around hook completes, it notifies of
427
+ # a failure. If we do not ignore `PendingExampleFixedError` it would be surfaced to
428
+ # the user as part of a multiple exception error, which is undesirable. While it's
429
+ # pretty weird we handle this here, it's the best solution I've been able to come
430
+ # up with, and `PendingExampleFixedError` always represents the _lack_ of any exception
431
+ # so clearly when we are transitioning to a `MultipleExceptionError`, it makes sense to
432
+ # ignore it.
433
+ return if Pending::PendingExampleFixedError === exception
434
+
435
+ return if exception == self
436
+
437
+ all_exceptions << exception
438
+
439
+ if exception.class.name =~ /RSpec/
440
+ failures << exception
441
+ else
442
+ other_errors << exception
443
+ end
444
+ end
445
+
446
+ # Provides a way to force `ex` to be something that satisfies the multiple
447
+ # exception error interface. If it already satisfies it, it will be returned;
448
+ # otherwise it will wrap it in a `MultipleExceptionError`.
449
+ # @private
450
+ def self.for(ex)
451
+ return ex if self === ex
452
+ MultipleExceptionError.new(ex)
453
+ end
454
+ end
455
+
456
+ include InterfaceTag
457
+
458
+ # @return [Array<Exception>] The list of failures.
459
+ attr_reader :failures
460
+
461
+ # @return [Array<Exception>] The list of other errors.
462
+ attr_reader :other_errors
463
+
464
+ # @return [Array<Exception>] The list of failures and other exceptions, combined.
465
+ attr_reader :all_exceptions
466
+
467
+ # @return [Hash] Metadata used by RSpec for formatting purposes.
468
+ attr_reader :aggregation_metadata
469
+
470
+ # @return [nil] Provided only for interface compatibility with
471
+ # `RSpec::Expectations::MultipleExpectationsNotMetError`.
472
+ attr_reader :aggregation_block_label
473
+
474
+ # @param exceptions [Array<Exception>] The initial list of exceptions.
475
+ def initialize(*exceptions)
476
+ super()
477
+
478
+ @failures = []
479
+ @other_errors = []
480
+ @all_exceptions = []
481
+ @aggregation_metadata = { :hide_backtrace => true }
482
+ @aggregation_block_label = nil
483
+
484
+ exceptions.each { |e| add e }
485
+ end
486
+
487
+ # @return [String] Combines all the exception messages into a single string.
488
+ # @note RSpec does not actually use this -- instead it formats each exception
489
+ # individually.
490
+ def message
491
+ all_exceptions.map(&:message).join("\n\n")
492
+ end
493
+
494
+ # @return [String] A summary of the failure, including the block label and a count of failures.
495
+ def summary
496
+ "Got #{exception_count_description}"
497
+ end
498
+
499
+ # return [String] A description of the failure/error counts.
500
+ def exception_count_description
501
+ failure_count = Formatters::Helpers.pluralize(failures.size, "failure")
502
+ return failure_count if other_errors.empty?
503
+ error_count = Formatters::Helpers.pluralize(other_errors.size, "other error")
504
+ "#{failure_count} and #{error_count}"
505
+ end
506
+ end
507
+ end
508
+ end
@@ -0,0 +1,23 @@
1
+ RSpec::Support.require_rspec_core "formatters/base_formatter"
2
+
3
+ module RSpec
4
+ module Core
5
+ module Formatters
6
+ # @private
7
+ class FailureListFormatter < BaseFormatter
8
+ Formatters.register self, :example_failed, :dump_profile, :message
9
+
10
+ def example_failed(failure)
11
+ output.puts "#{failure.example.location}:#{failure.example.description}"
12
+ end
13
+
14
+ # Discard profile and messages
15
+ #
16
+ # These outputs are not really relevant in the context of this failure
17
+ # list formatter.
18
+ def dump_profile(_profile); end
19
+ def message(_message); end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,28 @@
1
+ module RSpec
2
+ module Core
3
+ module Formatters
4
+ # @api private
5
+ # Formatter for providing message output as a fallback when no other
6
+ # profiler implements #message
7
+ class FallbackMessageFormatter
8
+ Formatters.register self, :message
9
+
10
+ def initialize(output)
11
+ @output = output
12
+ end
13
+
14
+ # @private
15
+ attr_reader :output
16
+
17
+ # @api public
18
+ #
19
+ # Used by the reporter to send messages to the output stream.
20
+ #
21
+ # @param notification [MessageNotification] containing message
22
+ def message(notification)
23
+ output.puts notification.message
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,110 @@
1
+ RSpec::Support.require_rspec_core "shell_escape"
2
+
3
+ module RSpec
4
+ module Core
5
+ module Formatters
6
+ # Formatters helpers.
7
+ module Helpers
8
+ # @private
9
+ SUB_SECOND_PRECISION = 5
10
+
11
+ # @private
12
+ DEFAULT_PRECISION = 2
13
+
14
+ # @api private
15
+ #
16
+ # Formats seconds into a human-readable string.
17
+ #
18
+ # @param duration [Float, Fixnum] in seconds
19
+ # @return [String] human-readable time
20
+ #
21
+ # @example
22
+ # format_duration(1) #=> "1 minute 1 second"
23
+ # format_duration(135.14) #=> "2 minutes 15.14 seconds"
24
+ def self.format_duration(duration)
25
+ precision = case
26
+ when duration < 1 then SUB_SECOND_PRECISION
27
+ when duration < 120 then DEFAULT_PRECISION
28
+ when duration < 300 then 1
29
+ else 0
30
+ end
31
+
32
+ if duration > 60
33
+ minutes = (duration.round / 60).to_i
34
+ seconds = (duration - minutes * 60)
35
+
36
+ "#{pluralize(minutes, 'minute')} #{pluralize(format_seconds(seconds, precision), 'second')}"
37
+ else
38
+ pluralize(format_seconds(duration, precision), 'second')
39
+ end
40
+ end
41
+
42
+ # @api private
43
+ #
44
+ # Formats seconds to have 5 digits of precision with trailing zeros
45
+ # removed if the number is less than 1 or with 2 digits of precision if
46
+ # the number is greater than zero.
47
+ #
48
+ # @param float [Float]
49
+ # @return [String] formatted float
50
+ #
51
+ # @example
52
+ # format_seconds(0.000006) #=> "0.00001"
53
+ # format_seconds(0.020000) #=> "0.02"
54
+ # format_seconds(1.00000000001) #=> "1"
55
+ #
56
+ # The precision used is set in {Helpers::SUB_SECOND_PRECISION} and
57
+ # {Helpers::DEFAULT_PRECISION}.
58
+ #
59
+ # @see #strip_trailing_zeroes
60
+ def self.format_seconds(float, precision=nil)
61
+ return '0' if float < 0
62
+ precision ||= (float < 1) ? SUB_SECOND_PRECISION : DEFAULT_PRECISION
63
+ formatted = "%.#{precision}f" % float
64
+ strip_trailing_zeroes(formatted)
65
+ end
66
+
67
+ # @api private
68
+ #
69
+ # Remove trailing zeros from a string.
70
+ #
71
+ # Only remove trailing zeros after a decimal place.
72
+ # see: http://rubular.com/r/ojtTydOgpn
73
+ #
74
+ # @param string [String] string with trailing zeros
75
+ # @return [String] string with trailing zeros removed
76
+ def self.strip_trailing_zeroes(string)
77
+ string.sub(/(?:(\..*[^0])0+|\.0+)$/, '\1')
78
+ end
79
+ private_class_method :strip_trailing_zeroes
80
+
81
+ # @api private
82
+ #
83
+ # Pluralize a word based on a count.
84
+ #
85
+ # @param count [Fixnum] number of objects
86
+ # @param string [String] word to be pluralized
87
+ # @return [String] pluralized word
88
+ def self.pluralize(count, string)
89
+ "#{count} #{string}#{'s' unless count.to_f == 1}"
90
+ end
91
+
92
+ # @api private
93
+ # Given a list of example ids, organizes them into a compact, ordered list.
94
+ def self.organize_ids(ids)
95
+ grouped = ids.inject(Hash.new { |h, k| h[k] = [] }) do |hash, id|
96
+ file, id = Example.parse_id(id)
97
+ hash[file] << id
98
+ hash
99
+ end
100
+
101
+ grouped.sort_by(&:first).map do |file, grouped_ids|
102
+ grouped_ids = grouped_ids.sort_by { |id| id.split(':').map(&:to_i) }
103
+ id = Metadata.id_from(:rerun_file_path => file, :scoped_id => grouped_ids.join(','))
104
+ ShellEscape.conditionally_quote(id)
105
+ end
106
+ end
107
+ end
108
+ end
109
+ end
110
+ end