pad_character 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 (374) hide show
  1. checksums.yaml +7 -0
  2. data/.rspec +3 -0
  3. data/.ruby-version +1 -0
  4. data/CHANGELOG.md +5 -0
  5. data/CODE_OF_CONDUCT.md +84 -0
  6. data/Gemfile +10 -0
  7. data/Gemfile.lock +35 -0
  8. data/LICENSE.txt +21 -0
  9. data/README.md +46 -0
  10. data/Rakefile +8 -0
  11. data/lib/pad_character/format_pad_character.rb +6 -0
  12. data/lib/pad_character/version.rb +5 -0
  13. data/lib/pad_character.rb +9 -0
  14. data/pad_character.gemspec +39 -0
  15. data/sig/pad_character.rbs +4 -0
  16. data/vendor/bundle/ruby/2.6.0/bin/htmldiff +29 -0
  17. data/vendor/bundle/ruby/2.6.0/bin/ldiff +29 -0
  18. data/vendor/bundle/ruby/2.6.0/bin/rake +29 -0
  19. data/vendor/bundle/ruby/2.6.0/bin/rspec +29 -0
  20. data/vendor/bundle/ruby/2.6.0/cache/diff-lcs-1.5.0.gem +0 -0
  21. data/vendor/bundle/ruby/2.6.0/cache/rake-13.0.6.gem +0 -0
  22. data/vendor/bundle/ruby/2.6.0/cache/rspec-3.12.0.gem +0 -0
  23. data/vendor/bundle/ruby/2.6.0/cache/rspec-core-3.12.0.gem +0 -0
  24. data/vendor/bundle/ruby/2.6.0/cache/rspec-expectations-3.12.0.gem +0 -0
  25. data/vendor/bundle/ruby/2.6.0/cache/rspec-mocks-3.12.0.gem +0 -0
  26. data/vendor/bundle/ruby/2.6.0/cache/rspec-support-3.12.0.gem +0 -0
  27. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/.rspec +1 -0
  28. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/Code-of-Conduct.md +74 -0
  29. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/Contributing.md +119 -0
  30. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/History.md +400 -0
  31. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/License.md +39 -0
  32. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/Manifest.txt +59 -0
  33. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/README.rdoc +84 -0
  34. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/Rakefile +121 -0
  35. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/bin/htmldiff +35 -0
  36. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/bin/ldiff +9 -0
  37. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/docs/COPYING.txt +339 -0
  38. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/docs/artistic.txt +127 -0
  39. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/lib/diff/lcs/array.rb +7 -0
  40. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/lib/diff/lcs/backports.rb +9 -0
  41. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/lib/diff/lcs/block.rb +37 -0
  42. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/lib/diff/lcs/callbacks.rb +325 -0
  43. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/lib/diff/lcs/change.rb +174 -0
  44. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/lib/diff/lcs/htmldiff.rb +150 -0
  45. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/lib/diff/lcs/hunk.rb +358 -0
  46. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/lib/diff/lcs/internals.rb +308 -0
  47. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/lib/diff/lcs/ldiff.rb +171 -0
  48. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/lib/diff/lcs/string.rb +5 -0
  49. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/lib/diff/lcs.rb +739 -0
  50. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/lib/diff-lcs.rb +3 -0
  51. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/spec/change_spec.rb +89 -0
  52. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/spec/diff_spec.rb +51 -0
  53. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/spec/fixtures/aX +1 -0
  54. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/spec/fixtures/bXaX +1 -0
  55. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/spec/fixtures/ds1.csv +50 -0
  56. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/spec/fixtures/ds2.csv +51 -0
  57. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/spec/fixtures/ldiff/output.diff +4 -0
  58. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/spec/fixtures/ldiff/output.diff-c +7 -0
  59. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/spec/fixtures/ldiff/output.diff-e +3 -0
  60. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/spec/fixtures/ldiff/output.diff-f +3 -0
  61. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/spec/fixtures/ldiff/output.diff-u +5 -0
  62. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/spec/fixtures/ldiff/output.diff.chef +4 -0
  63. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/spec/fixtures/ldiff/output.diff.chef-c +15 -0
  64. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/spec/fixtures/ldiff/output.diff.chef-e +3 -0
  65. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/spec/fixtures/ldiff/output.diff.chef-f +3 -0
  66. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/spec/fixtures/ldiff/output.diff.chef-u +9 -0
  67. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/spec/fixtures/ldiff/output.diff.chef2 +7 -0
  68. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/spec/fixtures/ldiff/output.diff.chef2-c +20 -0
  69. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/spec/fixtures/ldiff/output.diff.chef2-d +7 -0
  70. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/spec/fixtures/ldiff/output.diff.chef2-e +7 -0
  71. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/spec/fixtures/ldiff/output.diff.chef2-f +7 -0
  72. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/spec/fixtures/ldiff/output.diff.chef2-u +16 -0
  73. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/spec/fixtures/new-chef +4 -0
  74. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/spec/fixtures/new-chef2 +17 -0
  75. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/spec/fixtures/old-chef +4 -0
  76. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/spec/fixtures/old-chef2 +14 -0
  77. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/spec/hunk_spec.rb +83 -0
  78. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/spec/issues_spec.rb +154 -0
  79. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/spec/lcs_spec.rb +56 -0
  80. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/spec/ldiff_spec.rb +87 -0
  81. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/spec/patch_spec.rb +416 -0
  82. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/spec/sdiff_spec.rb +214 -0
  83. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/spec/spec_helper.rb +374 -0
  84. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/spec/traverse_balanced_spec.rb +310 -0
  85. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/spec/traverse_sequences_spec.rb +137 -0
  86. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/History.rdoc +2403 -0
  87. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/MIT-LICENSE +21 -0
  88. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/README.rdoc +155 -0
  89. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/doc/command_line_usage.rdoc +158 -0
  90. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/doc/example/Rakefile1 +38 -0
  91. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/doc/example/Rakefile2 +35 -0
  92. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/doc/example/a.c +6 -0
  93. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/doc/example/b.c +6 -0
  94. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/doc/example/main.c +11 -0
  95. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/doc/glossary.rdoc +42 -0
  96. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/doc/jamis.rb +592 -0
  97. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/doc/proto_rake.rdoc +127 -0
  98. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/doc/rake.1 +156 -0
  99. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/doc/rakefile.rdoc +622 -0
  100. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/doc/rational.rdoc +151 -0
  101. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/exe/rake +27 -0
  102. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/lib/rake/application.rb +831 -0
  103. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/lib/rake/backtrace.rb +24 -0
  104. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/lib/rake/clean.rb +78 -0
  105. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/lib/rake/cloneable.rb +17 -0
  106. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/lib/rake/cpu_counter.rb +107 -0
  107. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/lib/rake/default_loader.rb +15 -0
  108. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/lib/rake/dsl_definition.rb +195 -0
  109. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/lib/rake/early_time.rb +22 -0
  110. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/lib/rake/ext/core.rb +26 -0
  111. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/lib/rake/ext/string.rb +176 -0
  112. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/lib/rake/file_creation_task.rb +25 -0
  113. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/lib/rake/file_list.rb +435 -0
  114. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/lib/rake/file_task.rb +54 -0
  115. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/lib/rake/file_utils.rb +134 -0
  116. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/lib/rake/file_utils_ext.rb +134 -0
  117. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/lib/rake/invocation_chain.rb +57 -0
  118. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/lib/rake/invocation_exception_mixin.rb +17 -0
  119. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/lib/rake/late_time.rb +18 -0
  120. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/lib/rake/linked_list.rb +112 -0
  121. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/lib/rake/loaders/makefile.rb +54 -0
  122. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/lib/rake/multi_task.rb +14 -0
  123. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/lib/rake/name_space.rb +38 -0
  124. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/lib/rake/packagetask.rb +222 -0
  125. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/lib/rake/phony.rb +16 -0
  126. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/lib/rake/private_reader.rb +21 -0
  127. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/lib/rake/promise.rb +100 -0
  128. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/lib/rake/pseudo_status.rb +30 -0
  129. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/lib/rake/rake_module.rb +67 -0
  130. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/lib/rake/rake_test_loader.rb +27 -0
  131. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/lib/rake/rule_recursion_overflow_error.rb +20 -0
  132. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/lib/rake/scope.rb +43 -0
  133. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/lib/rake/task.rb +434 -0
  134. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/lib/rake/task_argument_error.rb +8 -0
  135. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/lib/rake/task_arguments.rb +109 -0
  136. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/lib/rake/task_manager.rb +331 -0
  137. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/lib/rake/tasklib.rb +12 -0
  138. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/lib/rake/testtask.rb +189 -0
  139. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/lib/rake/thread_history_display.rb +49 -0
  140. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/lib/rake/thread_pool.rb +163 -0
  141. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/lib/rake/trace_output.rb +23 -0
  142. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/lib/rake/version.rb +10 -0
  143. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/lib/rake/win32.rb +51 -0
  144. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/lib/rake.rb +71 -0
  145. data/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/rake.gemspec +100 -0
  146. data/vendor/bundle/ruby/2.6.0/gems/rspec-3.12.0/LICENSE.md +27 -0
  147. data/vendor/bundle/ruby/2.6.0/gems/rspec-3.12.0/README.md +47 -0
  148. data/vendor/bundle/ruby/2.6.0/gems/rspec-3.12.0/lib/rspec/version.rb +5 -0
  149. data/vendor/bundle/ruby/2.6.0/gems/rspec-3.12.0/lib/rspec.rb +3 -0
  150. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/.document +5 -0
  151. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/.yardopts +8 -0
  152. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/Changelog.md +2360 -0
  153. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/LICENSE.md +26 -0
  154. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/README.md +384 -0
  155. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/exe/rspec +4 -0
  156. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/autorun.rb +3 -0
  157. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/backtrace_formatter.rb +65 -0
  158. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/bisect/coordinator.rb +62 -0
  159. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/bisect/example_minimizer.rb +173 -0
  160. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/bisect/fork_runner.rb +138 -0
  161. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/bisect/server.rb +61 -0
  162. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/bisect/shell_command.rb +126 -0
  163. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/bisect/shell_runner.rb +73 -0
  164. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/bisect/utilities.rb +69 -0
  165. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/configuration.rb +2385 -0
  166. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/configuration_options.rb +233 -0
  167. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/did_you_mean.rb +46 -0
  168. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/drb.rb +120 -0
  169. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/dsl.rb +98 -0
  170. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/example.rb +666 -0
  171. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/example_group.rb +905 -0
  172. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/example_status_persister.rb +235 -0
  173. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/filter_manager.rb +231 -0
  174. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/flat_map.rb +20 -0
  175. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/formatters/base_bisect_formatter.rb +45 -0
  176. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/formatters/base_formatter.rb +70 -0
  177. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/formatters/base_text_formatter.rb +75 -0
  178. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/formatters/bisect_drb_formatter.rb +29 -0
  179. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/formatters/bisect_progress_formatter.rb +157 -0
  180. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/formatters/console_codes.rb +76 -0
  181. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/formatters/deprecation_formatter.rb +223 -0
  182. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/formatters/documentation_formatter.rb +102 -0
  183. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/formatters/exception_presenter.rb +525 -0
  184. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/formatters/failure_list_formatter.rb +23 -0
  185. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/formatters/fallback_message_formatter.rb +28 -0
  186. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/formatters/helpers.rb +118 -0
  187. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/formatters/html_formatter.rb +153 -0
  188. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/formatters/html_printer.rb +412 -0
  189. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/formatters/html_snippet_extractor.rb +120 -0
  190. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/formatters/json_formatter.rb +102 -0
  191. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/formatters/profile_formatter.rb +68 -0
  192. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/formatters/progress_formatter.rb +29 -0
  193. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/formatters/protocol.rb +182 -0
  194. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/formatters/snippet_extractor.rb +134 -0
  195. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/formatters/syntax_highlighter.rb +91 -0
  196. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/formatters.rb +279 -0
  197. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/hooks.rb +646 -0
  198. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/invocations.rb +87 -0
  199. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/memoized_helpers.rb +580 -0
  200. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/metadata.rb +498 -0
  201. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/metadata_filter.rb +255 -0
  202. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/minitest_assertions_adapter.rb +31 -0
  203. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/mocking_adapters/flexmock.rb +31 -0
  204. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/mocking_adapters/mocha.rb +57 -0
  205. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/mocking_adapters/null.rb +14 -0
  206. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/mocking_adapters/rr.rb +31 -0
  207. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/mocking_adapters/rspec.rb +32 -0
  208. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/notifications.rb +521 -0
  209. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/option_parser.rb +323 -0
  210. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/ordering.rb +169 -0
  211. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/output_wrapper.rb +29 -0
  212. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/pending.rb +157 -0
  213. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/profiler.rb +34 -0
  214. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/project_initializer/.rspec +1 -0
  215. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/project_initializer/spec/spec_helper.rb +98 -0
  216. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/project_initializer.rb +48 -0
  217. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/rake_task.rb +188 -0
  218. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/reporter.rb +265 -0
  219. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/ruby_project.rb +53 -0
  220. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb +212 -0
  221. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/sandbox.rb +37 -0
  222. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/set.rb +54 -0
  223. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/shared_context.rb +55 -0
  224. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/shared_example_group.rb +271 -0
  225. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/shell_escape.rb +49 -0
  226. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/test_unit_assertions_adapter.rb +30 -0
  227. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/version.rb +9 -0
  228. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/warnings.rb +40 -0
  229. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/world.rb +287 -0
  230. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core.rb +212 -0
  231. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/.document +5 -0
  232. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/.yardopts +6 -0
  233. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/Changelog.md +1285 -0
  234. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/LICENSE.md +25 -0
  235. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/README.md +320 -0
  236. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/expectations/block_snippet_extractor.rb +253 -0
  237. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/expectations/configuration.rb +230 -0
  238. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/expectations/expectation_target.rb +163 -0
  239. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/expectations/fail_with.rb +39 -0
  240. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/expectations/failure_aggregator.rb +212 -0
  241. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/expectations/handler.rb +182 -0
  242. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/expectations/minitest_integration.rb +58 -0
  243. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/expectations/syntax.rb +132 -0
  244. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/expectations/version.rb +8 -0
  245. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/expectations.rb +82 -0
  246. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers/aliased_matcher.rb +116 -0
  247. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers/built_in/all.rb +86 -0
  248. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers/built_in/base_matcher.rb +198 -0
  249. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers/built_in/be.rb +191 -0
  250. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers/built_in/be_between.rb +77 -0
  251. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers/built_in/be_instance_of.rb +26 -0
  252. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers/built_in/be_kind_of.rb +20 -0
  253. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers/built_in/be_within.rb +72 -0
  254. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers/built_in/change.rb +450 -0
  255. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers/built_in/compound.rb +290 -0
  256. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers/built_in/contain_exactly.rb +310 -0
  257. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers/built_in/count_expectation.rb +169 -0
  258. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers/built_in/cover.rb +24 -0
  259. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers/built_in/eq.rb +40 -0
  260. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers/built_in/eql.rb +34 -0
  261. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers/built_in/equal.rb +81 -0
  262. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers/built_in/exist.rb +90 -0
  263. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers/built_in/has.rb +167 -0
  264. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers/built_in/have_attributes.rb +114 -0
  265. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers/built_in/include.rb +206 -0
  266. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers/built_in/match.rb +106 -0
  267. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers/built_in/operators.rb +128 -0
  268. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers/built_in/output.rb +207 -0
  269. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers/built_in/raise_error.rb +271 -0
  270. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers/built_in/respond_to.rb +200 -0
  271. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers/built_in/satisfy.rb +60 -0
  272. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers/built_in/start_or_end_with.rb +94 -0
  273. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers/built_in/throw_symbol.rb +138 -0
  274. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers/built_in/yield.rb +375 -0
  275. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers/built_in.rb +53 -0
  276. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers/composable.rb +171 -0
  277. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers/dsl.rb +544 -0
  278. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers/english_phrasing.rb +58 -0
  279. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers/expecteds_for_multiple_diffs.rb +82 -0
  280. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers/fail_matchers.rb +42 -0
  281. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers/generated_descriptions.rb +41 -0
  282. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers/matcher_delegator.rb +35 -0
  283. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers/matcher_protocol.rb +105 -0
  284. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers.rb +1044 -0
  285. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.0/.document +5 -0
  286. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.0/.yardopts +6 -0
  287. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.0/Changelog.md +1212 -0
  288. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.0/LICENSE.md +25 -0
  289. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.0/README.md +463 -0
  290. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.0/lib/rspec/mocks/any_instance/chain.rb +111 -0
  291. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.0/lib/rspec/mocks/any_instance/error_generator.rb +31 -0
  292. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.0/lib/rspec/mocks/any_instance/expect_chain_chain.rb +31 -0
  293. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.0/lib/rspec/mocks/any_instance/expectation_chain.rb +50 -0
  294. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.0/lib/rspec/mocks/any_instance/message_chains.rb +83 -0
  295. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.0/lib/rspec/mocks/any_instance/proxy.rb +116 -0
  296. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.0/lib/rspec/mocks/any_instance/recorder.rb +295 -0
  297. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.0/lib/rspec/mocks/any_instance/stub_chain.rb +51 -0
  298. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.0/lib/rspec/mocks/any_instance/stub_chain_chain.rb +23 -0
  299. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.0/lib/rspec/mocks/any_instance.rb +11 -0
  300. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.0/lib/rspec/mocks/argument_list_matcher.rb +115 -0
  301. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.0/lib/rspec/mocks/argument_matchers.rb +322 -0
  302. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.0/lib/rspec/mocks/configuration.rb +212 -0
  303. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.0/lib/rspec/mocks/error_generator.rb +380 -0
  304. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.0/lib/rspec/mocks/example_methods.rb +434 -0
  305. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.0/lib/rspec/mocks/instance_method_stasher.rb +146 -0
  306. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.0/lib/rspec/mocks/marshal_extension.rb +41 -0
  307. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.0/lib/rspec/mocks/matchers/expectation_customization.rb +20 -0
  308. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.0/lib/rspec/mocks/matchers/have_received.rb +134 -0
  309. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.0/lib/rspec/mocks/matchers/receive.rb +133 -0
  310. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.0/lib/rspec/mocks/matchers/receive_message_chain.rb +82 -0
  311. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.0/lib/rspec/mocks/matchers/receive_messages.rb +77 -0
  312. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.0/lib/rspec/mocks/message_chain.rb +87 -0
  313. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.0/lib/rspec/mocks/message_expectation.rb +820 -0
  314. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.0/lib/rspec/mocks/method_double.rb +291 -0
  315. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.0/lib/rspec/mocks/method_reference.rb +214 -0
  316. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.0/lib/rspec/mocks/minitest_integration.rb +68 -0
  317. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.0/lib/rspec/mocks/mutate_const.rb +339 -0
  318. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.0/lib/rspec/mocks/object_reference.rb +149 -0
  319. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.0/lib/rspec/mocks/order_group.rb +81 -0
  320. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.0/lib/rspec/mocks/proxy.rb +525 -0
  321. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.0/lib/rspec/mocks/space.rb +238 -0
  322. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.0/lib/rspec/mocks/standalone.rb +3 -0
  323. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.0/lib/rspec/mocks/syntax.rb +325 -0
  324. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.0/lib/rspec/mocks/targets.rb +124 -0
  325. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.0/lib/rspec/mocks/test_double.rb +171 -0
  326. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.0/lib/rspec/mocks/verifying_double.rb +121 -0
  327. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.0/lib/rspec/mocks/verifying_message_expectation.rb +55 -0
  328. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.0/lib/rspec/mocks/verifying_proxy.rb +220 -0
  329. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.0/lib/rspec/mocks/version.rb +9 -0
  330. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.0/lib/rspec/mocks.rb +133 -0
  331. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.12.0/Changelog.md +364 -0
  332. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.12.0/LICENSE.md +23 -0
  333. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.12.0/README.md +40 -0
  334. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.12.0/lib/rspec/support/caller_filter.rb +83 -0
  335. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.12.0/lib/rspec/support/comparable_version.rb +46 -0
  336. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.12.0/lib/rspec/support/differ.rb +215 -0
  337. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.12.0/lib/rspec/support/directory_maker.rb +63 -0
  338. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.12.0/lib/rspec/support/encoded_string.rb +161 -0
  339. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.12.0/lib/rspec/support/fuzzy_matcher.rb +48 -0
  340. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.12.0/lib/rspec/support/hunk_generator.rb +47 -0
  341. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.12.0/lib/rspec/support/matcher_definition.rb +42 -0
  342. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.12.0/lib/rspec/support/method_signature_verifier.rb +438 -0
  343. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.12.0/lib/rspec/support/mutex.rb +73 -0
  344. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.12.0/lib/rspec/support/object_formatter.rb +275 -0
  345. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.12.0/lib/rspec/support/recursive_const_methods.rb +76 -0
  346. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.12.0/lib/rspec/support/reentrant_mutex.rb +78 -0
  347. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.12.0/lib/rspec/support/ruby_features.rb +198 -0
  348. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.12.0/lib/rspec/support/source/location.rb +21 -0
  349. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.12.0/lib/rspec/support/source/node.rb +110 -0
  350. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.12.0/lib/rspec/support/source/token.rb +94 -0
  351. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.12.0/lib/rspec/support/source.rb +85 -0
  352. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.12.0/lib/rspec/support/spec/deprecation_helpers.rb +48 -0
  353. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.12.0/lib/rspec/support/spec/diff_helpers.rb +31 -0
  354. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.12.0/lib/rspec/support/spec/formatting_support.rb +9 -0
  355. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.12.0/lib/rspec/support/spec/in_sub_process.rb +67 -0
  356. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.12.0/lib/rspec/support/spec/library_wide_checks.rb +150 -0
  357. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.12.0/lib/rspec/support/spec/shell_out.rb +105 -0
  358. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.12.0/lib/rspec/support/spec/stderr_splitter.rb +75 -0
  359. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.12.0/lib/rspec/support/spec/string_matcher.rb +45 -0
  360. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.12.0/lib/rspec/support/spec/with_isolated_directory.rb +13 -0
  361. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.12.0/lib/rspec/support/spec/with_isolated_stderr.rb +13 -0
  362. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.12.0/lib/rspec/support/spec.rb +82 -0
  363. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.12.0/lib/rspec/support/version.rb +7 -0
  364. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.12.0/lib/rspec/support/warnings.rb +39 -0
  365. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.12.0/lib/rspec/support/with_keywords_when_needed.rb +33 -0
  366. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.12.0/lib/rspec/support.rb +154 -0
  367. data/vendor/bundle/ruby/2.6.0/specifications/diff-lcs-1.5.0.gemspec +50 -0
  368. data/vendor/bundle/ruby/2.6.0/specifications/rake-13.0.6.gemspec +26 -0
  369. data/vendor/bundle/ruby/2.6.0/specifications/rspec-3.12.0.gemspec +39 -0
  370. data/vendor/bundle/ruby/2.6.0/specifications/rspec-core-3.12.0.gemspec +53 -0
  371. data/vendor/bundle/ruby/2.6.0/specifications/rspec-expectations-3.12.0.gemspec +44 -0
  372. data/vendor/bundle/ruby/2.6.0/specifications/rspec-mocks-3.12.0.gemspec +44 -0
  373. data/vendor/bundle/ruby/2.6.0/specifications/rspec-support-3.12.0.gemspec +36 -0
  374. metadata +419 -0
@@ -0,0 +1,666 @@
1
+ module RSpec
2
+ module Core
3
+ # Wrapper for an instance of a subclass of {ExampleGroup}. An instance of
4
+ # `RSpec::Core::Example` is returned by example definition methods
5
+ # such as {ExampleGroup.it it} and is yielded to the {ExampleGroup.it it},
6
+ # {Hooks#before before}, {Hooks#after after}, {Hooks#around around},
7
+ # {MemoizedHelpers::ClassMethods#let let} and
8
+ # {MemoizedHelpers::ClassMethods#subject subject} blocks.
9
+ #
10
+ # This allows us to provide rich metadata about each individual
11
+ # example without adding tons of methods directly to the ExampleGroup
12
+ # that users may inadvertently redefine.
13
+ #
14
+ # Useful for configuring logging and/or taking some action based
15
+ # on the state of an example's metadata.
16
+ #
17
+ # @example
18
+ #
19
+ # RSpec.configure do |config|
20
+ # config.before do |example|
21
+ # log example.description
22
+ # end
23
+ #
24
+ # config.after do |example|
25
+ # log example.description
26
+ # end
27
+ #
28
+ # config.around do |example|
29
+ # log example.description
30
+ # example.run
31
+ # end
32
+ # end
33
+ #
34
+ # shared_examples "auditable" do
35
+ # it "does something" do
36
+ # log "#{example.full_description}: #{auditable.inspect}"
37
+ # auditable.should do_something
38
+ # end
39
+ # end
40
+ #
41
+ # @see ExampleGroup
42
+ # @note Example blocks are evaluated in the context of an instance
43
+ # of an `ExampleGroup`, not in the context of an instance of `Example`.
44
+ class Example
45
+ # @private
46
+ #
47
+ # Used to define methods that delegate to this example's metadata.
48
+ def self.delegate_to_metadata(key)
49
+ define_method(key) { @metadata[key] }
50
+ end
51
+
52
+ # @return [ExecutionResult] represents the result of running this example.
53
+ delegate_to_metadata :execution_result
54
+ # @return [String] the relative path to the file where this example was
55
+ # defined.
56
+ delegate_to_metadata :file_path
57
+ # @return [String] the full description (including the docstrings of
58
+ # all parent example groups).
59
+ delegate_to_metadata :full_description
60
+ # @return [String] the exact source location of this example in a form
61
+ # like `./path/to/spec.rb:17`
62
+ delegate_to_metadata :location
63
+ # @return [Boolean] flag that indicates that the example is not expected
64
+ # to pass. It will be run and will either have a pending result (if a
65
+ # failure occurs) or a failed result (if no failure occurs).
66
+ delegate_to_metadata :pending
67
+ # @return [Boolean] flag that will cause the example to not run.
68
+ # The {ExecutionResult} status will be `:pending`.
69
+ delegate_to_metadata :skip
70
+
71
+ # Returns the string submitted to `example` or its aliases (e.g.
72
+ # `specify`, `it`, etc). If no string is submitted (e.g.
73
+ # `it { is_expected.to do_something }`) it returns the message generated
74
+ # by the matcher if there is one, otherwise returns a message including
75
+ # the location of the example.
76
+ def description
77
+ description = if metadata[:description].to_s.empty?
78
+ location_description
79
+ else
80
+ metadata[:description]
81
+ end
82
+
83
+ RSpec.configuration.format_docstrings_block.call(description)
84
+ end
85
+
86
+ # Returns a description of the example that always includes the location.
87
+ def inspect_output
88
+ inspect_output = "\"#{description}\""
89
+ unless metadata[:description].to_s.empty?
90
+ inspect_output += " (#{location})"
91
+ end
92
+ inspect_output
93
+ end
94
+
95
+ # Returns the location-based argument that can be passed to the `rspec` command to rerun this example.
96
+ def location_rerun_argument
97
+ @location_rerun_argument ||= begin
98
+ loaded_spec_files = RSpec.configuration.loaded_spec_files
99
+
100
+ Metadata.ascending(metadata) do |meta|
101
+ return meta[:location] if loaded_spec_files.include?(meta[:absolute_file_path])
102
+ end
103
+ end
104
+ end
105
+
106
+ # Returns the location-based argument that can be passed to the `rspec` command to rerun this example.
107
+ #
108
+ # @deprecated Use {#location_rerun_argument} instead.
109
+ # @note If there are multiple examples identified by this location, they will use {#id}
110
+ # to rerun instead, but this method will still return the location (that's why it is deprecated!).
111
+ def rerun_argument
112
+ location_rerun_argument
113
+ end
114
+
115
+ # @return [String] the unique id of this example. Pass
116
+ # this at the command line to re-run this exact example.
117
+ def id
118
+ @id ||= Metadata.id_from(metadata)
119
+ end
120
+
121
+ # @private
122
+ def self.parse_id(id)
123
+ # http://rubular.com/r/OMZSAPcAfn
124
+ id.match(/\A(.*?)(?:\[([\d\s:,]+)\])?\z/).captures
125
+ end
126
+
127
+ # Duplicates the example and overrides metadata with the provided
128
+ # hash.
129
+ #
130
+ # @param metadata_overrides [Hash] the hash to override the example metadata
131
+ # @return [Example] a duplicate of the example with modified metadata
132
+ def duplicate_with(metadata_overrides={})
133
+ new_metadata = metadata.clone.merge(metadata_overrides)
134
+
135
+ RSpec::Core::Metadata::RESERVED_KEYS.each do |reserved_key|
136
+ new_metadata.delete reserved_key
137
+ end
138
+
139
+ # don't clone the example group because the new example
140
+ # must belong to the same example group (not a clone).
141
+ #
142
+ # block is nil in new_metadata so we have to get it from metadata.
143
+ Example.new(example_group, description.clone,
144
+ new_metadata, metadata[:block])
145
+ end
146
+
147
+ # @private
148
+ def update_inherited_metadata(updates)
149
+ metadata.update(updates) do |_key, existing_example_value, _new_inherited_value|
150
+ existing_example_value
151
+ end
152
+ end
153
+
154
+ # @attr_reader
155
+ #
156
+ # Returns the first exception raised in the context of running this
157
+ # example (nil if no exception is raised).
158
+ attr_reader :exception
159
+
160
+ # @attr_reader
161
+ #
162
+ # Returns the metadata object associated with this example.
163
+ attr_reader :metadata
164
+
165
+ # @attr_reader
166
+ # @private
167
+ #
168
+ # Returns the example_group_instance that provides the context for
169
+ # running this example.
170
+ attr_reader :example_group_instance
171
+
172
+ # @attr
173
+ # @private
174
+ attr_accessor :clock
175
+
176
+ # Creates a new instance of Example.
177
+ # @param example_group_class [Class] the subclass of ExampleGroup in which
178
+ # this Example is declared
179
+ # @param description [String] the String passed to the `it` method (or
180
+ # alias)
181
+ # @param user_metadata [Hash] additional args passed to `it` to be used as
182
+ # metadata
183
+ # @param example_block [Proc] the block of code that represents the
184
+ # example
185
+ # @api private
186
+ def initialize(example_group_class, description, user_metadata, example_block=nil)
187
+ @example_group_class = example_group_class
188
+ @example_block = example_block
189
+
190
+ # Register the example with the group before creating the metadata hash.
191
+ # This is necessary since creating the metadata hash triggers
192
+ # `when_first_matching_example_defined` callbacks, in which users can
193
+ # load RSpec support code which defines hooks. For that to work, the
194
+ # examples and example groups must be registered at the time the
195
+ # support code is called or be defined afterwards.
196
+ # Begin defined beforehand but registered afterwards causes hooks to
197
+ # not be applied where they should.
198
+ example_group_class.examples << self
199
+
200
+ @metadata = Metadata::ExampleHash.create(
201
+ @example_group_class.metadata, user_metadata,
202
+ example_group_class.method(:next_runnable_index_for),
203
+ description, example_block
204
+ )
205
+
206
+ config = RSpec.configuration
207
+ config.apply_derived_metadata_to(@metadata)
208
+
209
+ # This should perhaps be done in `Metadata::ExampleHash.create`,
210
+ # but the logic there has no knowledge of `RSpec.world` and we
211
+ # want to keep it that way. It's easier to just assign it here.
212
+ @metadata[:last_run_status] = config.last_run_statuses[id]
213
+
214
+ @example_group_instance = @exception = nil
215
+ @clock = RSpec::Core::Time
216
+ @reporter = RSpec::Core::NullReporter
217
+ end
218
+
219
+ # Provide a human-readable representation of this class
220
+ def inspect
221
+ "#<#{self.class.name} #{description.inspect}>"
222
+ end
223
+ alias to_s inspect
224
+
225
+ # @return [RSpec::Core::Reporter] the current reporter for the example
226
+ attr_reader :reporter
227
+
228
+ # Returns the example group class that provides the context for running
229
+ # this example.
230
+ def example_group
231
+ @example_group_class
232
+ end
233
+
234
+ def pending?
235
+ !!pending
236
+ end
237
+
238
+ def skipped?
239
+ !!skip
240
+ end
241
+
242
+ # @api private
243
+ # instance_execs the block passed to the constructor in the context of
244
+ # the instance of {ExampleGroup}.
245
+ # @param example_group_instance the instance of an ExampleGroup subclass
246
+ def run(example_group_instance, reporter)
247
+ @example_group_instance = example_group_instance
248
+ @reporter = reporter
249
+ RSpec.configuration.configure_example(self, hooks)
250
+ RSpec.current_example = self
251
+
252
+ start(reporter)
253
+ Pending.mark_pending!(self, pending) if pending?
254
+
255
+ begin
256
+ if skipped?
257
+ Pending.mark_pending! self, skip
258
+ elsif !RSpec.configuration.dry_run?
259
+ with_around_and_singleton_context_hooks do
260
+ begin
261
+ run_before_example
262
+ RSpec.current_scope = :example
263
+ @example_group_instance.instance_exec(self, &@example_block)
264
+
265
+ if pending?
266
+ Pending.mark_fixed! self
267
+
268
+ raise Pending::PendingExampleFixedError,
269
+ 'Expected example to fail since it is pending, but it passed.',
270
+ [location]
271
+ end
272
+ rescue Pending::SkipDeclaredInExample => _
273
+ # The "=> _" is normally useless but on JRuby it is a workaround
274
+ # for a bug that prevents us from getting backtraces:
275
+ # https://github.com/jruby/jruby/issues/4467
276
+ #
277
+ # no-op, required metadata has already been set by the `skip`
278
+ # method.
279
+ rescue AllExceptionsExcludingDangerousOnesOnRubiesThatAllowIt => e
280
+ set_exception(e)
281
+ ensure
282
+ RSpec.current_scope = :after_example_hook
283
+ run_after_example
284
+ end
285
+ end
286
+ end
287
+ rescue Support::AllExceptionsExceptOnesWeMustNotRescue => e
288
+ set_exception(e)
289
+ ensure
290
+ @example_group_instance = nil # if you love something... let it go
291
+ end
292
+
293
+ finish(reporter)
294
+ ensure
295
+ execution_result.ensure_timing_set(clock)
296
+ RSpec.current_example = nil
297
+ end
298
+
299
+ if RSpec::Support::Ruby.jruby? || RUBY_VERSION.to_f < 1.9
300
+ # :nocov:
301
+ # For some reason, rescuing `Support::AllExceptionsExceptOnesWeMustNotRescue`
302
+ # in place of `Exception` above can cause the exit status to be the wrong
303
+ # thing. I have no idea why. See:
304
+ # https://github.com/rspec/rspec-core/pull/2063#discussion_r38284978
305
+ # @private
306
+ AllExceptionsExcludingDangerousOnesOnRubiesThatAllowIt = Exception
307
+ # :nocov:
308
+ else
309
+ # @private
310
+ AllExceptionsExcludingDangerousOnesOnRubiesThatAllowIt = Support::AllExceptionsExceptOnesWeMustNotRescue
311
+ end
312
+
313
+ # Wraps both a `Proc` and an {Example} for use in {Hooks#around
314
+ # around} hooks. In around hooks we need to yield this special
315
+ # kind of object (rather than the raw {Example}) because when
316
+ # there are multiple `around` hooks we have to wrap them recursively.
317
+ #
318
+ # @example
319
+ #
320
+ # RSpec.configure do |c|
321
+ # c.around do |ex| # Procsy which wraps the example
322
+ # if ex.metadata[:key] == :some_value && some_global_condition
323
+ # raise "some message"
324
+ # end
325
+ # ex.run # run delegates to ex.call.
326
+ # end
327
+ # end
328
+ #
329
+ # @note This class also exposes the instance methods of {Example},
330
+ # proxying them through to the wrapped {Example} instance.
331
+ class Procsy
332
+ # The {Example} instance.
333
+ attr_reader :example
334
+
335
+ Example.public_instance_methods(false).each do |name|
336
+ name_sym = name.to_sym
337
+ next if name_sym == :run || name_sym == :inspect || name_sym == :to_s
338
+
339
+ define_method(name) { |*a, &b| @example.__send__(name, *a, &b) }
340
+ end
341
+
342
+ Proc.public_instance_methods(false).each do |name|
343
+ name_sym = name.to_sym
344
+ next if name_sym == :call || name_sym == :inspect || name_sym == :to_s || name_sym == :to_proc
345
+
346
+ define_method(name) { |*a, &b| @proc.__send__(name, *a, &b) }
347
+ end
348
+
349
+ # Calls the proc and notes that the example has been executed.
350
+ def call(*args, &block)
351
+ @executed = true
352
+ @proc.call(*args, &block)
353
+ end
354
+ alias run call
355
+
356
+ # Provides a wrapped proc that will update our `executed?` state when
357
+ # executed.
358
+ def to_proc
359
+ method(:call).to_proc
360
+ end
361
+
362
+ def initialize(example, &block)
363
+ @example = example
364
+ @proc = block
365
+ @executed = false
366
+ end
367
+
368
+ # @private
369
+ def wrap(&block)
370
+ self.class.new(example, &block)
371
+ end
372
+
373
+ # Indicates whether or not the around hook has executed the example.
374
+ def executed?
375
+ @executed
376
+ end
377
+
378
+ # @private
379
+ def inspect
380
+ @example.inspect.gsub('Example', 'Example::Procsy')
381
+ end
382
+ end
383
+
384
+ # @private
385
+ #
386
+ # The exception that will be displayed to the user -- either the failure of
387
+ # the example or the `pending_exception` if the example is pending.
388
+ def display_exception
389
+ @exception || execution_result.pending_exception
390
+ end
391
+
392
+ # @private
393
+ #
394
+ # Assigns the exception that will be displayed to the user -- either the failure of
395
+ # the example or the `pending_exception` if the example is pending.
396
+ def display_exception=(ex)
397
+ if pending? && !(Pending::PendingExampleFixedError === ex)
398
+ @exception = nil
399
+ execution_result.pending_fixed = false
400
+ execution_result.pending_exception = ex
401
+ else
402
+ @exception = ex
403
+ end
404
+ end
405
+
406
+ # rubocop:disable Naming/AccessorMethodName
407
+
408
+ # @private
409
+ #
410
+ # Used internally to set an exception in an after hook, which
411
+ # captures the exception but doesn't raise it.
412
+ def set_exception(exception)
413
+ return self.display_exception = exception unless display_exception
414
+
415
+ unless RSpec::Core::MultipleExceptionError === display_exception
416
+ self.display_exception = RSpec::Core::MultipleExceptionError.new(display_exception)
417
+ end
418
+
419
+ display_exception.add exception
420
+ end
421
+
422
+ # @private
423
+ #
424
+ # Used to set the exception when `aggregate_failures` fails.
425
+ def set_aggregate_failures_exception(exception)
426
+ return set_exception(exception) unless display_exception
427
+
428
+ exception = RSpec::Core::MultipleExceptionError::InterfaceTag.for(exception)
429
+ exception.add display_exception
430
+ self.display_exception = exception
431
+ end
432
+
433
+ # rubocop:enable Naming/AccessorMethodName
434
+
435
+ # @private
436
+ #
437
+ # Used internally to set an exception and fail without actually executing
438
+ # the example when an exception is raised in before(:context).
439
+ def fail_with_exception(reporter, exception)
440
+ start(reporter)
441
+ set_exception(exception)
442
+ finish(reporter)
443
+ end
444
+
445
+ # @private
446
+ #
447
+ # Used internally to skip without actually executing the example when
448
+ # skip is used in before(:context).
449
+ def skip_with_exception(reporter, exception)
450
+ start(reporter)
451
+ Pending.mark_skipped! self, exception.argument
452
+ finish(reporter)
453
+ end
454
+
455
+ # @private
456
+ def instance_exec(*args, &block)
457
+ @example_group_instance.instance_exec(*args, &block)
458
+ end
459
+
460
+ private
461
+
462
+ def hooks
463
+ example_group_instance.singleton_class.hooks
464
+ end
465
+
466
+ def with_around_example_hooks
467
+ RSpec.current_scope = :before_example_hook
468
+ hooks.run(:around, :example, self) { yield }
469
+ rescue Support::AllExceptionsExceptOnesWeMustNotRescue => e
470
+ set_exception(e)
471
+ end
472
+
473
+ def start(reporter)
474
+ reporter.example_started(self)
475
+ execution_result.started_at = clock.now
476
+ end
477
+
478
+ def finish(reporter)
479
+ pending_message = execution_result.pending_message
480
+
481
+ if @exception
482
+ execution_result.exception = @exception
483
+ record_finished :failed, reporter
484
+ reporter.example_failed self
485
+ false
486
+ elsif pending_message
487
+ execution_result.pending_message = pending_message
488
+ record_finished :pending, reporter
489
+ reporter.example_pending self
490
+ true
491
+ else
492
+ record_finished :passed, reporter
493
+ reporter.example_passed self
494
+ true
495
+ end
496
+ end
497
+
498
+ def record_finished(status, reporter)
499
+ execution_result.record_finished(status, clock.now)
500
+ reporter.example_finished(self)
501
+ end
502
+
503
+ def run_before_example
504
+ @example_group_instance.setup_mocks_for_rspec
505
+ hooks.run(:before, :example, self)
506
+ end
507
+
508
+ def with_around_and_singleton_context_hooks
509
+ singleton_context_hooks_host = example_group_instance.singleton_class
510
+ singleton_context_hooks_host.run_before_context_hooks(example_group_instance)
511
+ with_around_example_hooks { yield }
512
+ ensure
513
+ singleton_context_hooks_host.run_after_context_hooks(example_group_instance)
514
+ end
515
+
516
+ def run_after_example
517
+ assign_generated_description if defined?(::RSpec::Matchers)
518
+ hooks.run(:after, :example, self)
519
+ verify_mocks
520
+ ensure
521
+ @example_group_instance.teardown_mocks_for_rspec
522
+ end
523
+
524
+ def verify_mocks
525
+ @example_group_instance.verify_mocks_for_rspec if mocks_need_verification?
526
+ rescue Support::AllExceptionsExceptOnesWeMustNotRescue => e
527
+ set_exception(e)
528
+ end
529
+
530
+ def mocks_need_verification?
531
+ exception.nil? || execution_result.pending_fixed?
532
+ end
533
+
534
+ def assign_generated_description
535
+ if metadata[:description].empty? && (description = generate_description)
536
+ metadata[:description] = description
537
+ metadata[:full_description] += description
538
+ end
539
+ ensure
540
+ RSpec::Matchers.clear_generated_description
541
+ end
542
+
543
+ def generate_description
544
+ RSpec::Matchers.generated_description
545
+ rescue Support::AllExceptionsExceptOnesWeMustNotRescue => e
546
+ location_description + " (Got an error when generating description " \
547
+ "from matcher: #{e.class}: #{e.message} -- #{e.backtrace.first})"
548
+ end
549
+
550
+ def location_description
551
+ "example at #{location}"
552
+ end
553
+
554
+ # Represents the result of executing an example.
555
+ # Behaves like a hash for backwards compatibility.
556
+ class ExecutionResult
557
+ include HashImitatable
558
+
559
+ # @return [Symbol] `:passed`, `:failed` or `:pending`.
560
+ attr_accessor :status
561
+
562
+ # @return [Exception, nil] The failure, if there was one.
563
+ attr_accessor :exception
564
+
565
+ # @return [Time] When the example started.
566
+ attr_accessor :started_at
567
+
568
+ # @return [Time] When the example finished.
569
+ attr_accessor :finished_at
570
+
571
+ # @return [Float] How long the example took in seconds.
572
+ attr_accessor :run_time
573
+
574
+ # @return [String, nil] The reason the example was pending,
575
+ # or nil if the example was not pending.
576
+ attr_accessor :pending_message
577
+
578
+ # @return [Exception, nil] The exception triggered while
579
+ # executing the pending example. If no exception was triggered
580
+ # it would no longer get a status of `:pending` unless it was
581
+ # tagged with `:skip`.
582
+ attr_accessor :pending_exception
583
+
584
+ # @return [Boolean] For examples tagged with `:pending`,
585
+ # this indicates whether or not it now passes.
586
+ attr_accessor :pending_fixed
587
+
588
+ def pending_fixed?
589
+ !!pending_fixed
590
+ end
591
+
592
+ # @return [Boolean] Indicates if the example was completely skipped
593
+ # (typically done via `:skip` metadata or the `skip` method). Skipped examples
594
+ # will have a `:pending` result. A `:pending` result can also come from examples
595
+ # that were marked as `:pending`, which causes them to be run, and produces a
596
+ # `:failed` result if the example passes.
597
+ def example_skipped?
598
+ status == :pending && !pending_exception
599
+ end
600
+
601
+ # @api private
602
+ # Records the finished status of the example.
603
+ def record_finished(status, finished_at)
604
+ self.status = status
605
+ calculate_run_time(finished_at)
606
+ end
607
+
608
+ # @api private
609
+ # Populates finished_at and run_time if it has not yet been set
610
+ def ensure_timing_set(clock)
611
+ calculate_run_time(clock.now) unless finished_at
612
+ end
613
+
614
+ private
615
+
616
+ def calculate_run_time(finished_at)
617
+ self.finished_at = finished_at
618
+ self.run_time = (finished_at - started_at).to_f
619
+ end
620
+
621
+ # For backwards compatibility we present `status` as a string
622
+ # when presenting the legacy hash interface.
623
+ def hash_for_delegation
624
+ super.tap do |hash|
625
+ hash[:status] &&= status.to_s
626
+ end
627
+ end
628
+
629
+ def set_value(name, value)
630
+ value &&= value.to_sym if name == :status
631
+ super(name, value)
632
+ end
633
+
634
+ def get_value(name)
635
+ if name == :status
636
+ status.to_s if status
637
+ else
638
+ super
639
+ end
640
+ end
641
+
642
+ def issue_deprecation(_method_name, *_args)
643
+ RSpec.deprecate("Treating `metadata[:execution_result]` as a hash",
644
+ :replacement => "the attributes methods to access the data")
645
+ end
646
+ end
647
+ end
648
+
649
+ # @private
650
+ # Provides an execution context for before/after :suite hooks.
651
+ class SuiteHookContext < Example
652
+ def initialize(hook_description, reporter)
653
+ super(AnonymousExampleGroup, hook_description, {})
654
+ @example_group_instance = AnonymousExampleGroup.new
655
+ @reporter = reporter
656
+ end
657
+
658
+ # rubocop:disable Naming/AccessorMethodName
659
+ def set_exception(exception)
660
+ reporter.notify_non_example_exception(exception, "An error occurred in #{description}.")
661
+ RSpec.world.wants_to_quit = true
662
+ end
663
+ # rubocop:enable Naming/AccessorMethodName
664
+ end
665
+ end
666
+ end