genkaio 0.0.1

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 (364) hide show
  1. checksums.yaml +7 -0
  2. data/.bundle/config +2 -0
  3. data/.gitignore +2 -0
  4. data/CODE_OF_CONDUCT.md +74 -0
  5. data/Gemfile +7 -0
  6. data/Gemfile.lock +34 -0
  7. data/LICENSE.txt +21 -0
  8. data/README.md +78 -0
  9. data/Rakefile +6 -0
  10. data/bin/console +14 -0
  11. data/bin/genkaio +66 -0
  12. data/bin/setup +8 -0
  13. data/demo.gif +0 -0
  14. data/genkaio.gemspec +28 -0
  15. data/lib/.genkaio.rb.swp +0 -0
  16. data/lib/dic/dicdata_2019_1108 +212408 -0
  17. data/lib/genkaio/version.rb +3 -0
  18. data/lib/genkaio.rb +73 -0
  19. data/pkg/genkaio-0.0.1.gem +0 -0
  20. data/vendor/bundle/ruby/2.5.0/bin/genkaio +27 -0
  21. data/vendor/bundle/ruby/2.5.0/bin/htmldiff +29 -0
  22. data/vendor/bundle/ruby/2.5.0/bin/ldiff +29 -0
  23. data/vendor/bundle/ruby/2.5.0/bin/rake +27 -0
  24. data/vendor/bundle/ruby/2.5.0/bin/rspec +27 -0
  25. data/vendor/bundle/ruby/2.5.0/cache/diff-lcs-1.3.gem +0 -0
  26. data/vendor/bundle/ruby/2.5.0/cache/rake-12.3.3.gem +0 -0
  27. data/vendor/bundle/ruby/2.5.0/cache/rspec-3.9.0.gem +0 -0
  28. data/vendor/bundle/ruby/2.5.0/cache/rspec-core-3.9.0.gem +0 -0
  29. data/vendor/bundle/ruby/2.5.0/cache/rspec-expectations-3.9.0.gem +0 -0
  30. data/vendor/bundle/ruby/2.5.0/cache/rspec-mocks-3.9.0.gem +0 -0
  31. data/vendor/bundle/ruby/2.5.0/cache/rspec-support-3.9.0.gem +0 -0
  32. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/.rspec +1 -0
  33. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/Code-of-Conduct.md +74 -0
  34. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/Contributing.md +83 -0
  35. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/History.md +220 -0
  36. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/License.md +39 -0
  37. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/Manifest.txt +37 -0
  38. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/README.rdoc +84 -0
  39. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/Rakefile +57 -0
  40. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/autotest/discover.rb +1 -0
  41. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/bin/htmldiff +32 -0
  42. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/bin/ldiff +6 -0
  43. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/docs/COPYING.txt +339 -0
  44. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/docs/artistic.txt +127 -0
  45. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff/lcs/array.rb +7 -0
  46. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff/lcs/block.rb +37 -0
  47. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff/lcs/callbacks.rb +322 -0
  48. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff/lcs/change.rb +181 -0
  49. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff/lcs/htmldiff.rb +149 -0
  50. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff/lcs/hunk.rb +276 -0
  51. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff/lcs/internals.rb +307 -0
  52. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff/lcs/ldiff.rb +167 -0
  53. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff/lcs/string.rb +5 -0
  54. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff/lcs.rb +725 -0
  55. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff-lcs.rb +3 -0
  56. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/change_spec.rb +65 -0
  57. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/diff_spec.rb +47 -0
  58. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/fixtures/ds1.csv +50 -0
  59. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/fixtures/ds2.csv +51 -0
  60. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/hunk_spec.rb +72 -0
  61. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/issues_spec.rb +49 -0
  62. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/lcs_spec.rb +56 -0
  63. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/ldiff_spec.rb +47 -0
  64. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/patch_spec.rb +422 -0
  65. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/sdiff_spec.rb +214 -0
  66. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/spec_helper.rb +321 -0
  67. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/traverse_balanced_spec.rb +310 -0
  68. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/traverse_sequences_spec.rb +139 -0
  69. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/CONTRIBUTING.rdoc +43 -0
  70. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/Gemfile +3 -0
  71. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/History.rdoc +2344 -0
  72. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/MIT-LICENSE +21 -0
  73. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/README.rdoc +156 -0
  74. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/Rakefile +41 -0
  75. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/azure-pipelines.yml +11 -0
  76. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/bin/bundle +105 -0
  77. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/bin/console +7 -0
  78. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/bin/rake +29 -0
  79. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/bin/rdoc +29 -0
  80. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/bin/rubocop +29 -0
  81. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/bin/setup +6 -0
  82. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/doc/command_line_usage.rdoc +158 -0
  83. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/doc/example/Rakefile1 +38 -0
  84. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/doc/example/Rakefile2 +35 -0
  85. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/doc/example/a.c +6 -0
  86. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/doc/example/b.c +6 -0
  87. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/doc/example/main.c +11 -0
  88. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/doc/glossary.rdoc +42 -0
  89. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/doc/jamis.rb +592 -0
  90. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/doc/proto_rake.rdoc +127 -0
  91. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/doc/rake.1 +156 -0
  92. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/doc/rakefile.rdoc +622 -0
  93. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/doc/rational.rdoc +151 -0
  94. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/exe/rake +27 -0
  95. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/application.rb +824 -0
  96. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/backtrace.rb +24 -0
  97. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/clean.rb +78 -0
  98. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/cloneable.rb +17 -0
  99. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/cpu_counter.rb +107 -0
  100. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/default_loader.rb +15 -0
  101. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/dsl_definition.rb +195 -0
  102. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/early_time.rb +22 -0
  103. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/ext/core.rb +26 -0
  104. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/ext/string.rb +176 -0
  105. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/file_creation_task.rb +25 -0
  106. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/file_list.rb +435 -0
  107. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/file_task.rb +54 -0
  108. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/file_utils.rb +137 -0
  109. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/file_utils_ext.rb +145 -0
  110. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/invocation_chain.rb +57 -0
  111. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/invocation_exception_mixin.rb +17 -0
  112. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/late_time.rb +18 -0
  113. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/linked_list.rb +112 -0
  114. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/loaders/makefile.rb +54 -0
  115. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/multi_task.rb +14 -0
  116. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/name_space.rb +38 -0
  117. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/packagetask.rb +207 -0
  118. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/phony.rb +16 -0
  119. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/private_reader.rb +21 -0
  120. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/promise.rb +100 -0
  121. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/pseudo_status.rb +30 -0
  122. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/rake_module.rb +67 -0
  123. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/rake_test_loader.rb +27 -0
  124. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/rule_recursion_overflow_error.rb +20 -0
  125. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/scope.rb +43 -0
  126. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/task.rb +413 -0
  127. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/task_argument_error.rb +8 -0
  128. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/task_arguments.rb +109 -0
  129. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/task_manager.rb +324 -0
  130. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/tasklib.rb +12 -0
  131. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/testtask.rb +224 -0
  132. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/thread_history_display.rb +49 -0
  133. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/thread_pool.rb +163 -0
  134. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/trace_output.rb +23 -0
  135. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/version.rb +10 -0
  136. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/win32.rb +51 -0
  137. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake.rb +71 -0
  138. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/rake.gemspec +42 -0
  139. data/vendor/bundle/ruby/2.5.0/gems/rspec-3.9.0/LICENSE.md +27 -0
  140. data/vendor/bundle/ruby/2.5.0/gems/rspec-3.9.0/README.md +43 -0
  141. data/vendor/bundle/ruby/2.5.0/gems/rspec-3.9.0/lib/rspec/version.rb +5 -0
  142. data/vendor/bundle/ruby/2.5.0/gems/rspec-3.9.0/lib/rspec.rb +3 -0
  143. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/.document +5 -0
  144. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/.yardopts +8 -0
  145. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/Changelog.md +2265 -0
  146. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/LICENSE.md +26 -0
  147. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/README.md +384 -0
  148. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/exe/rspec +4 -0
  149. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/autorun.rb +3 -0
  150. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/backtrace_formatter.rb +65 -0
  151. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/bisect/coordinator.rb +62 -0
  152. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/bisect/example_minimizer.rb +173 -0
  153. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/bisect/fork_runner.rb +134 -0
  154. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/bisect/server.rb +61 -0
  155. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/bisect/shell_command.rb +126 -0
  156. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/bisect/shell_runner.rb +73 -0
  157. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/bisect/utilities.rb +58 -0
  158. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/configuration.rb +2336 -0
  159. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/configuration_options.rb +233 -0
  160. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/did_you_mean.rb +46 -0
  161. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/drb.rb +113 -0
  162. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/dsl.rb +98 -0
  163. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/example.rb +656 -0
  164. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/example_group.rb +889 -0
  165. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/example_status_persister.rb +235 -0
  166. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/filter_manager.rb +231 -0
  167. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/flat_map.rb +20 -0
  168. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/base_bisect_formatter.rb +45 -0
  169. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/base_formatter.rb +70 -0
  170. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/base_text_formatter.rb +75 -0
  171. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/bisect_drb_formatter.rb +29 -0
  172. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/bisect_progress_formatter.rb +157 -0
  173. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/console_codes.rb +68 -0
  174. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/deprecation_formatter.rb +223 -0
  175. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/documentation_formatter.rb +102 -0
  176. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/exception_presenter.rb +508 -0
  177. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/failure_list_formatter.rb +23 -0
  178. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/fallback_message_formatter.rb +28 -0
  179. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/helpers.rb +110 -0
  180. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/html_formatter.rb +153 -0
  181. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/html_printer.rb +414 -0
  182. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/html_snippet_extractor.rb +120 -0
  183. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/json_formatter.rb +102 -0
  184. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/profile_formatter.rb +68 -0
  185. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/progress_formatter.rb +29 -0
  186. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/protocol.rb +182 -0
  187. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/snippet_extractor.rb +134 -0
  188. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/syntax_highlighter.rb +91 -0
  189. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters.rb +272 -0
  190. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/hooks.rb +632 -0
  191. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/invocations.rb +87 -0
  192. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/memoized_helpers.rb +554 -0
  193. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/metadata.rb +498 -0
  194. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/metadata_filter.rb +255 -0
  195. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/minitest_assertions_adapter.rb +31 -0
  196. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/mocking_adapters/flexmock.rb +31 -0
  197. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/mocking_adapters/mocha.rb +57 -0
  198. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/mocking_adapters/null.rb +14 -0
  199. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/mocking_adapters/rr.rb +31 -0
  200. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/mocking_adapters/rspec.rb +32 -0
  201. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/notifications.rb +521 -0
  202. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/option_parser.rb +317 -0
  203. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/ordering.rb +158 -0
  204. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/output_wrapper.rb +29 -0
  205. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/pending.rb +165 -0
  206. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/profiler.rb +34 -0
  207. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/project_initializer/.rspec +1 -0
  208. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/project_initializer/spec/spec_helper.rb +100 -0
  209. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/project_initializer.rb +48 -0
  210. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/rake_task.rb +188 -0
  211. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/reporter.rb +265 -0
  212. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/ruby_project.rb +53 -0
  213. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/runner.rb +204 -0
  214. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/sandbox.rb +37 -0
  215. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/set.rb +54 -0
  216. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/shared_context.rb +55 -0
  217. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/shared_example_group.rb +269 -0
  218. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/shell_escape.rb +49 -0
  219. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/test_unit_assertions_adapter.rb +30 -0
  220. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/version.rb +9 -0
  221. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/warnings.rb +40 -0
  222. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/world.rb +275 -0
  223. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core.rb +186 -0
  224. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/.document +5 -0
  225. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/.yardopts +6 -0
  226. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/Changelog.md +1170 -0
  227. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/LICENSE.md +25 -0
  228. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/README.md +320 -0
  229. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/expectations/block_snippet_extractor.rb +253 -0
  230. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/expectations/configuration.rb +215 -0
  231. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/expectations/expectation_target.rb +127 -0
  232. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/expectations/fail_with.rb +39 -0
  233. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/expectations/failure_aggregator.rb +194 -0
  234. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/expectations/handler.rb +170 -0
  235. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/expectations/minitest_integration.rb +58 -0
  236. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/expectations/syntax.rb +132 -0
  237. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/expectations/version.rb +8 -0
  238. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/expectations.rb +82 -0
  239. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/aliased_matcher.rb +116 -0
  240. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/all.rb +86 -0
  241. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/base_matcher.rb +193 -0
  242. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/be.rb +288 -0
  243. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/be_between.rb +77 -0
  244. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/be_instance_of.rb +26 -0
  245. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/be_kind_of.rb +20 -0
  246. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/be_within.rb +72 -0
  247. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/change.rb +428 -0
  248. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/compound.rb +276 -0
  249. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/contain_exactly.rb +302 -0
  250. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/cover.rb +24 -0
  251. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/eq.rb +40 -0
  252. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/eql.rb +34 -0
  253. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/equal.rb +81 -0
  254. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/exist.rb +90 -0
  255. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/has.rb +103 -0
  256. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/have_attributes.rb +114 -0
  257. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/include.rb +149 -0
  258. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/match.rb +106 -0
  259. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/operators.rb +128 -0
  260. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/output.rb +200 -0
  261. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/raise_error.rb +230 -0
  262. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/respond_to.rb +174 -0
  263. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/satisfy.rb +60 -0
  264. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/start_or_end_with.rb +94 -0
  265. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/throw_symbol.rb +132 -0
  266. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/yield.rb +432 -0
  267. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in.rb +52 -0
  268. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/composable.rb +171 -0
  269. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/dsl.rb +534 -0
  270. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/english_phrasing.rb +58 -0
  271. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/expecteds_for_multiple_diffs.rb +82 -0
  272. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/fail_matchers.rb +42 -0
  273. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/generated_descriptions.rb +41 -0
  274. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/matcher_delegator.rb +35 -0
  275. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/matcher_protocol.rb +99 -0
  276. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers.rb +1038 -0
  277. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/.document +5 -0
  278. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/.yardopts +6 -0
  279. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/Changelog.md +1125 -0
  280. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/LICENSE.md +25 -0
  281. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/README.md +463 -0
  282. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/any_instance/chain.rb +111 -0
  283. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/any_instance/error_generator.rb +31 -0
  284. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/any_instance/expect_chain_chain.rb +31 -0
  285. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/any_instance/expectation_chain.rb +50 -0
  286. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/any_instance/message_chains.rb +83 -0
  287. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/any_instance/proxy.rb +116 -0
  288. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/any_instance/recorder.rb +289 -0
  289. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/any_instance/stub_chain.rb +51 -0
  290. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/any_instance/stub_chain_chain.rb +23 -0
  291. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/any_instance.rb +11 -0
  292. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/argument_list_matcher.rb +100 -0
  293. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/argument_matchers.rb +322 -0
  294. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/configuration.rb +212 -0
  295. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/error_generator.rb +369 -0
  296. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/example_methods.rb +434 -0
  297. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/instance_method_stasher.rb +146 -0
  298. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/marshal_extension.rb +41 -0
  299. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/matchers/expectation_customization.rb +20 -0
  300. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/matchers/have_received.rb +134 -0
  301. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/matchers/receive.rb +132 -0
  302. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/matchers/receive_message_chain.rb +82 -0
  303. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/matchers/receive_messages.rb +77 -0
  304. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/message_chain.rb +87 -0
  305. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/message_expectation.rb +751 -0
  306. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/method_double.rb +287 -0
  307. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/method_reference.rb +202 -0
  308. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/minitest_integration.rb +68 -0
  309. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/mutate_const.rb +339 -0
  310. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/object_reference.rb +149 -0
  311. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/order_group.rb +81 -0
  312. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/proxy.rb +503 -0
  313. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/space.rb +238 -0
  314. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/standalone.rb +3 -0
  315. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/syntax.rb +325 -0
  316. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/targets.rb +124 -0
  317. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/test_double.rb +171 -0
  318. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/verifying_double.rb +129 -0
  319. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/verifying_message_expectation.rb +54 -0
  320. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/verifying_proxy.rb +220 -0
  321. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/version.rb +9 -0
  322. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks.rb +130 -0
  323. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/Changelog.md +275 -0
  324. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/LICENSE.md +23 -0
  325. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/README.md +40 -0
  326. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/caller_filter.rb +83 -0
  327. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/comparable_version.rb +46 -0
  328. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/differ.rb +215 -0
  329. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/directory_maker.rb +63 -0
  330. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/encoded_string.rb +165 -0
  331. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/fuzzy_matcher.rb +48 -0
  332. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/hunk_generator.rb +47 -0
  333. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/matcher_definition.rb +42 -0
  334. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/method_signature_verifier.rb +438 -0
  335. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/mutex.rb +73 -0
  336. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/object_formatter.rb +275 -0
  337. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/recursive_const_methods.rb +76 -0
  338. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/reentrant_mutex.rb +53 -0
  339. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/ruby_features.rb +176 -0
  340. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/source/location.rb +21 -0
  341. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/source/node.rb +110 -0
  342. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/source/token.rb +87 -0
  343. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/source.rb +75 -0
  344. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/spec/deprecation_helpers.rb +64 -0
  345. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/spec/formatting_support.rb +9 -0
  346. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/spec/in_sub_process.rb +69 -0
  347. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/spec/library_wide_checks.rb +150 -0
  348. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/spec/shell_out.rb +89 -0
  349. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/spec/stderr_splitter.rb +63 -0
  350. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/spec/string_matcher.rb +46 -0
  351. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/spec/with_isolated_directory.rb +13 -0
  352. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/spec/with_isolated_stderr.rb +13 -0
  353. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/spec.rb +81 -0
  354. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/version.rb +7 -0
  355. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/warnings.rb +39 -0
  356. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support.rb +149 -0
  357. data/vendor/bundle/ruby/2.5.0/specifications/diff-lcs-1.3.gemspec +61 -0
  358. data/vendor/bundle/ruby/2.5.0/specifications/rake-12.3.3.gemspec +49 -0
  359. data/vendor/bundle/ruby/2.5.0/specifications/rspec-3.9.0.gemspec +43 -0
  360. data/vendor/bundle/ruby/2.5.0/specifications/rspec-core-3.9.0.gemspec +63 -0
  361. data/vendor/bundle/ruby/2.5.0/specifications/rspec-expectations-3.9.0.gemspec +51 -0
  362. data/vendor/bundle/ruby/2.5.0/specifications/rspec-mocks-3.9.0.gemspec +51 -0
  363. data/vendor/bundle/ruby/2.5.0/specifications/rspec-support-3.9.0.gemspec +39 -0
  364. metadata +411 -0
@@ -0,0 +1,153 @@
1
+ RSpec::Support.require_rspec_core "formatters/base_text_formatter"
2
+ RSpec::Support.require_rspec_core "formatters/html_printer"
3
+
4
+ module RSpec
5
+ module Core
6
+ module Formatters
7
+ # @private
8
+ class HtmlFormatter < BaseFormatter
9
+ Formatters.register self, :start, :example_group_started, :start_dump,
10
+ :example_started, :example_passed, :example_failed,
11
+ :example_pending, :dump_summary
12
+
13
+ def initialize(output)
14
+ super(output)
15
+ @failed_examples = []
16
+ @example_group_number = 0
17
+ @example_number = 0
18
+ @header_red = nil
19
+ @printer = HtmlPrinter.new(output)
20
+ end
21
+
22
+ def start(notification)
23
+ super
24
+ @printer.print_html_start
25
+ @printer.flush
26
+ end
27
+
28
+ def example_group_started(notification)
29
+ super
30
+ @example_group_red = false
31
+ @example_group_number += 1
32
+
33
+ @printer.print_example_group_end unless example_group_number == 1
34
+ @printer.print_example_group_start(example_group_number,
35
+ notification.group.description,
36
+ notification.group.parent_groups.size)
37
+ @printer.flush
38
+ end
39
+
40
+ def start_dump(_notification)
41
+ @printer.print_example_group_end
42
+ @printer.flush
43
+ end
44
+
45
+ def example_started(_notification)
46
+ @example_number += 1
47
+ end
48
+
49
+ def example_passed(passed)
50
+ @printer.move_progress(percent_done)
51
+ @printer.print_example_passed(passed.example.description, passed.example.execution_result.run_time)
52
+ @printer.flush
53
+ end
54
+
55
+ def example_failed(failure)
56
+ @failed_examples << failure.example
57
+ unless @header_red
58
+ @header_red = true
59
+ @printer.make_header_red
60
+ end
61
+
62
+ unless @example_group_red
63
+ @example_group_red = true
64
+ @printer.make_example_group_header_red(example_group_number)
65
+ end
66
+
67
+ @printer.move_progress(percent_done)
68
+
69
+ example = failure.example
70
+
71
+ exception = failure.exception
72
+ message_lines = failure.fully_formatted_lines(nil, RSpec::Core::Notifications::NullColorizer)
73
+ exception_details = if exception
74
+ {
75
+ # drop 2 removes the description (regardless of newlines) and leading blank line
76
+ :message => message_lines.drop(2).join("\n"),
77
+ :backtrace => failure.formatted_backtrace.join("\n"),
78
+ }
79
+ end
80
+ extra = extra_failure_content(failure)
81
+
82
+ @printer.print_example_failed(
83
+ example.execution_result.pending_fixed,
84
+ example.description,
85
+ example.execution_result.run_time,
86
+ @failed_examples.size,
87
+ exception_details,
88
+ (extra == "") ? false : extra
89
+ )
90
+ @printer.flush
91
+ end
92
+
93
+ def example_pending(pending)
94
+ example = pending.example
95
+
96
+ @printer.make_header_yellow unless @header_red
97
+ @printer.make_example_group_header_yellow(example_group_number) unless @example_group_red
98
+ @printer.move_progress(percent_done)
99
+ @printer.print_example_pending(example.description, example.execution_result.pending_message)
100
+ @printer.flush
101
+ end
102
+
103
+ def dump_summary(summary)
104
+ @printer.print_summary(
105
+ summary.duration,
106
+ summary.example_count,
107
+ summary.failure_count,
108
+ summary.pending_count
109
+ )
110
+ @printer.flush
111
+ end
112
+
113
+ private
114
+
115
+ # If these methods are declared with attr_reader Ruby will issue a
116
+ # warning because they are private.
117
+ # rubocop:disable Style/TrivialAccessors
118
+
119
+ # The number of the currently running example_group.
120
+ def example_group_number
121
+ @example_group_number
122
+ end
123
+
124
+ # The number of the currently running example (a global counter).
125
+ def example_number
126
+ @example_number
127
+ end
128
+ # rubocop:enable Style/TrivialAccessors
129
+
130
+ def percent_done
131
+ result = 100.0
132
+ if @example_count > 0
133
+ result = (((example_number).to_f / @example_count.to_f * 1000).to_i / 10.0).to_f
134
+ end
135
+ result
136
+ end
137
+
138
+ # Override this method if you wish to output extra HTML for a failed
139
+ # spec. For example, you could output links to images or other files
140
+ # produced during the specs.
141
+ def extra_failure_content(failure)
142
+ RSpec::Support.require_rspec_core "formatters/html_snippet_extractor"
143
+ backtrace = (failure.exception.backtrace || []).map do |line|
144
+ RSpec.configuration.backtrace_formatter.backtrace_line(line)
145
+ end
146
+ backtrace.compact!
147
+ @snippet_extractor ||= HtmlSnippetExtractor.new
148
+ " <pre class=\"ruby\"><code>#{@snippet_extractor.snippet(backtrace)}</code></pre>"
149
+ end
150
+ end
151
+ end
152
+ end
153
+ end
@@ -0,0 +1,414 @@
1
+ require 'erb'
2
+
3
+ module RSpec
4
+ module Core
5
+ module Formatters
6
+ # @private
7
+ class HtmlPrinter
8
+ include ERB::Util # For the #h method.
9
+ def initialize(output)
10
+ @output = output
11
+ end
12
+
13
+ def print_html_start
14
+ @output.puts HTML_HEADER
15
+ @output.puts REPORT_HEADER
16
+ end
17
+
18
+ def print_example_group_end
19
+ @output.puts " </dl>"
20
+ @output.puts "</div>"
21
+ end
22
+
23
+ def print_example_group_start(group_id, description, number_of_parents)
24
+ @output.puts "<div id=\"div_group_#{group_id}\" class=\"example_group passed\">"
25
+ @output.puts " <dl #{indentation_style(number_of_parents)}>"
26
+ @output.puts " <dt id=\"example_group_#{group_id}\" class=\"passed\">#{h(description)}</dt>"
27
+ end
28
+
29
+ def print_example_passed(description, run_time)
30
+ formatted_run_time = "%.5f" % run_time
31
+ @output.puts " <dd class=\"example passed\">" \
32
+ "<span class=\"passed_spec_name\">#{h(description)}</span>" \
33
+ "<span class='duration'>#{formatted_run_time}s</span></dd>"
34
+ end
35
+
36
+ # rubocop:disable Metrics/ParameterLists
37
+ def print_example_failed(pending_fixed, description, run_time, failure_id,
38
+ exception, extra_content)
39
+ # rubocop:enable Metrics/ParameterLists
40
+ formatted_run_time = "%.5f" % run_time
41
+
42
+ @output.puts " <dd class=\"example #{pending_fixed ? 'pending_fixed' : 'failed'}\">"
43
+ @output.puts " <span class=\"failed_spec_name\">#{h(description)}</span>"
44
+ @output.puts " <span class=\"duration\">#{formatted_run_time}s</span>"
45
+ @output.puts " <div class=\"failure\" id=\"failure_#{failure_id}\">"
46
+ if exception
47
+ @output.puts " <div class=\"message\"><pre>#{h(exception[:message])}</pre></div>"
48
+ @output.puts " <div class=\"backtrace\"><pre>#{h exception[:backtrace]}</pre></div>"
49
+ end
50
+ @output.puts extra_content if extra_content
51
+ @output.puts " </div>"
52
+ @output.puts " </dd>"
53
+ end
54
+
55
+ def print_example_pending(description, pending_message)
56
+ @output.puts " <dd class=\"example not_implemented\">" \
57
+ "<span class=\"not_implemented_spec_name\">#{h(description)} " \
58
+ "(PENDING: #{h(pending_message)})</span></dd>"
59
+ end
60
+
61
+ def print_summary(duration, example_count, failure_count, pending_count)
62
+ totals = String.new(
63
+ "#{example_count} example#{'s' unless example_count == 1}, "
64
+ )
65
+ totals << "#{failure_count} failure#{'s' unless failure_count == 1}"
66
+ totals << ", #{pending_count} pending" if pending_count > 0
67
+
68
+ formatted_duration = "%.5f" % duration
69
+
70
+ @output.puts "<script type=\"text/javascript\">" \
71
+ "document.getElementById('duration').innerHTML = \"Finished in " \
72
+ "<strong>#{formatted_duration} seconds</strong>\";</script>"
73
+ @output.puts "<script type=\"text/javascript\">" \
74
+ "document.getElementById('totals').innerHTML = \"#{totals}\";</script>"
75
+ @output.puts "</div>"
76
+ @output.puts "</div>"
77
+ @output.puts "</body>"
78
+ @output.puts "</html>"
79
+ end
80
+
81
+ def flush
82
+ @output.flush
83
+ end
84
+
85
+ def move_progress(percent_done)
86
+ @output.puts " <script type=\"text/javascript\">moveProgressBar('#{percent_done}');</script>"
87
+ @output.flush
88
+ end
89
+
90
+ def make_header_red
91
+ @output.puts " <script type=\"text/javascript\">makeRed('rspec-header');</script>"
92
+ end
93
+
94
+ def make_header_yellow
95
+ @output.puts " <script type=\"text/javascript\">makeYellow('rspec-header');</script>"
96
+ end
97
+
98
+ def make_example_group_header_red(group_id)
99
+ @output.puts " <script type=\"text/javascript\">" \
100
+ "makeRed('div_group_#{group_id}');</script>"
101
+ @output.puts " <script type=\"text/javascript\">" \
102
+ "makeRed('example_group_#{group_id}');</script>"
103
+ end
104
+
105
+ def make_example_group_header_yellow(group_id)
106
+ @output.puts " <script type=\"text/javascript\">" \
107
+ "makeYellow('div_group_#{group_id}');</script>"
108
+ @output.puts " <script type=\"text/javascript\">" \
109
+ "makeYellow('example_group_#{group_id}');</script>"
110
+ end
111
+
112
+ private
113
+
114
+ def indentation_style(number_of_parents)
115
+ "style=\"margin-left: #{(number_of_parents - 1) * 15}px;\""
116
+ end
117
+
118
+ REPORT_HEADER = <<-EOF
119
+ <div class="rspec-report">
120
+
121
+ <div id="rspec-header">
122
+ <div id="label">
123
+ <h1>RSpec Code Examples</h1>
124
+ </div>
125
+
126
+ <div id="display-filters">
127
+ <input id="passed_checkbox" name="passed_checkbox" type="checkbox" checked="checked" onchange="apply_filters()" value="1" /> <label for="passed_checkbox">Passed</label>
128
+ <input id="failed_checkbox" name="failed_checkbox" type="checkbox" checked="checked" onchange="apply_filters()" value="2" /> <label for="failed_checkbox">Failed</label>
129
+ <input id="pending_checkbox" name="pending_checkbox" type="checkbox" checked="checked" onchange="apply_filters()" value="3" /> <label for="pending_checkbox">Pending</label>
130
+ </div>
131
+
132
+ <div id="summary">
133
+ <p id="totals">&#160;</p>
134
+ <p id="duration">&#160;</p>
135
+ </div>
136
+ </div>
137
+
138
+
139
+ <div class="results">
140
+ EOF
141
+
142
+ GLOBAL_SCRIPTS = <<-EOF
143
+
144
+ function addClass(element_id, classname) {
145
+ document.getElementById(element_id).className += (" " + classname);
146
+ }
147
+
148
+ function removeClass(element_id, classname) {
149
+ var elem = document.getElementById(element_id);
150
+ var classlist = elem.className.replace(classname,'');
151
+ elem.className = classlist;
152
+ }
153
+
154
+ function moveProgressBar(percentDone) {
155
+ document.getElementById("rspec-header").style.width = percentDone +"%";
156
+ }
157
+
158
+ function makeRed(element_id) {
159
+ removeClass(element_id, 'passed');
160
+ removeClass(element_id, 'not_implemented');
161
+ addClass(element_id,'failed');
162
+ }
163
+
164
+ function makeYellow(element_id) {
165
+ var elem = document.getElementById(element_id);
166
+ if (elem.className.indexOf("failed") == -1) { // class doesn't includes failed
167
+ if (elem.className.indexOf("not_implemented") == -1) { // class doesn't include not_implemented
168
+ removeClass(element_id, 'passed');
169
+ addClass(element_id,'not_implemented');
170
+ }
171
+ }
172
+ }
173
+
174
+ function apply_filters() {
175
+ var passed_filter = document.getElementById('passed_checkbox').checked;
176
+ var failed_filter = document.getElementById('failed_checkbox').checked;
177
+ var pending_filter = document.getElementById('pending_checkbox').checked;
178
+
179
+ assign_display_style("example passed", passed_filter);
180
+ assign_display_style("example failed", failed_filter);
181
+ assign_display_style("example not_implemented", pending_filter);
182
+
183
+ assign_display_style_for_group("example_group passed", passed_filter);
184
+ assign_display_style_for_group("example_group not_implemented", pending_filter, pending_filter || passed_filter);
185
+ assign_display_style_for_group("example_group failed", failed_filter, failed_filter || pending_filter || passed_filter);
186
+ }
187
+
188
+ function get_display_style(display_flag) {
189
+ var style_mode = 'none';
190
+ if (display_flag == true) {
191
+ style_mode = 'block';
192
+ }
193
+ return style_mode;
194
+ }
195
+
196
+ function assign_display_style(classname, display_flag) {
197
+ var style_mode = get_display_style(display_flag);
198
+ var elems = document.getElementsByClassName(classname)
199
+ for (var i=0; i<elems.length;i++) {
200
+ elems[i].style.display = style_mode;
201
+ }
202
+ }
203
+
204
+ function assign_display_style_for_group(classname, display_flag, subgroup_flag) {
205
+ var display_style_mode = get_display_style(display_flag);
206
+ var subgroup_style_mode = get_display_style(subgroup_flag);
207
+ var elems = document.getElementsByClassName(classname)
208
+ for (var i=0; i<elems.length;i++) {
209
+ var style_mode = display_style_mode;
210
+ if ((display_flag != subgroup_flag) && (elems[i].getElementsByTagName('dt')[0].innerHTML.indexOf(", ") != -1)) {
211
+ elems[i].style.display = subgroup_style_mode;
212
+ } else {
213
+ elems[i].style.display = display_style_mode;
214
+ }
215
+ }
216
+ }
217
+ EOF
218
+ # rubocop:enable LineLength
219
+
220
+ GLOBAL_STYLES = <<-EOF
221
+ #rspec-header {
222
+ background: #65C400; color: #fff; height: 4em;
223
+ }
224
+
225
+ .rspec-report h1 {
226
+ margin: 0px 10px 0px 10px;
227
+ padding: 10px;
228
+ font-family: "Lucida Grande", Helvetica, sans-serif;
229
+ font-size: 1.8em;
230
+ position: absolute;
231
+ }
232
+
233
+ #label {
234
+ float:left;
235
+ }
236
+
237
+ #display-filters {
238
+ float:left;
239
+ padding: 28px 0 0 40%;
240
+ font-family: "Lucida Grande", Helvetica, sans-serif;
241
+ }
242
+
243
+ #summary {
244
+ float:right;
245
+ padding: 5px 10px;
246
+ font-family: "Lucida Grande", Helvetica, sans-serif;
247
+ text-align: right;
248
+ }
249
+
250
+ #summary p {
251
+ margin: 0 0 0 2px;
252
+ }
253
+
254
+ #summary #totals {
255
+ font-size: 1.2em;
256
+ }
257
+
258
+ .example_group {
259
+ margin: 0 10px 5px;
260
+ background: #fff;
261
+ }
262
+
263
+ dl {
264
+ margin: 0; padding: 0 0 5px;
265
+ font: normal 11px "Lucida Grande", Helvetica, sans-serif;
266
+ }
267
+
268
+ dt {
269
+ padding: 3px;
270
+ background: #65C400;
271
+ color: #fff;
272
+ font-weight: bold;
273
+ }
274
+
275
+ dd {
276
+ margin: 5px 0 5px 5px;
277
+ padding: 3px 3px 3px 18px;
278
+ }
279
+
280
+ dd .duration {
281
+ padding-left: 5px;
282
+ text-align: right;
283
+ right: 0px;
284
+ float:right;
285
+ }
286
+
287
+ dd.example.passed {
288
+ border-left: 5px solid #65C400;
289
+ border-bottom: 1px solid #65C400;
290
+ background: #DBFFB4; color: #3D7700;
291
+ }
292
+
293
+ dd.example.not_implemented {
294
+ border-left: 5px solid #FAF834;
295
+ border-bottom: 1px solid #FAF834;
296
+ background: #FCFB98; color: #131313;
297
+ }
298
+
299
+ dd.example.pending_fixed {
300
+ border-left: 5px solid #0000C2;
301
+ border-bottom: 1px solid #0000C2;
302
+ color: #0000C2; background: #D3FBFF;
303
+ }
304
+
305
+ dd.example.failed {
306
+ border-left: 5px solid #C20000;
307
+ border-bottom: 1px solid #C20000;
308
+ color: #C20000; background: #FFFBD3;
309
+ }
310
+
311
+
312
+ dt.not_implemented {
313
+ color: #000000; background: #FAF834;
314
+ }
315
+
316
+ dt.pending_fixed {
317
+ color: #FFFFFF; background: #C40D0D;
318
+ }
319
+
320
+ dt.failed {
321
+ color: #FFFFFF; background: #C40D0D;
322
+ }
323
+
324
+
325
+ #rspec-header.not_implemented {
326
+ color: #000000; background: #FAF834;
327
+ }
328
+
329
+ #rspec-header.pending_fixed {
330
+ color: #FFFFFF; background: #C40D0D;
331
+ }
332
+
333
+ #rspec-header.failed {
334
+ color: #FFFFFF; background: #C40D0D;
335
+ }
336
+
337
+
338
+ .backtrace {
339
+ color: #000;
340
+ font-size: 12px;
341
+ }
342
+
343
+ a {
344
+ color: #BE5C00;
345
+ }
346
+
347
+ /* Ruby code, style similar to vibrant ink */
348
+ .ruby {
349
+ font-size: 12px;
350
+ font-family: monospace;
351
+ color: white;
352
+ background-color: black;
353
+ padding: 0.1em 0 0.2em 0;
354
+ }
355
+
356
+ .ruby .keyword { color: #FF6600; }
357
+ .ruby .constant { color: #339999; }
358
+ .ruby .attribute { color: white; }
359
+ .ruby .global { color: white; }
360
+ .ruby .module { color: white; }
361
+ .ruby .class { color: white; }
362
+ .ruby .string { color: #66FF00; }
363
+ .ruby .ident { color: white; }
364
+ .ruby .method { color: #FFCC00; }
365
+ .ruby .number { color: white; }
366
+ .ruby .char { color: white; }
367
+ .ruby .comment { color: #9933CC; }
368
+ .ruby .symbol { color: white; }
369
+ .ruby .regex { color: #44B4CC; }
370
+ .ruby .punct { color: white; }
371
+ .ruby .escape { color: white; }
372
+ .ruby .interp { color: white; }
373
+ .ruby .expr { color: white; }
374
+
375
+ .ruby .offending { background-color: gray; }
376
+ .ruby .linenum {
377
+ width: 75px;
378
+ padding: 0.1em 1em 0.2em 0;
379
+ color: #000000;
380
+ background-color: #FFFBD3;
381
+ }
382
+ EOF
383
+
384
+ HTML_HEADER = <<-EOF
385
+ <!DOCTYPE html>
386
+ <html lang='en'>
387
+ <head>
388
+ <title>RSpec results</title>
389
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
390
+ <meta http-equiv="Expires" content="-1" />
391
+ <meta http-equiv="Pragma" content="no-cache" />
392
+ <style type="text/css">
393
+ body {
394
+ margin: 0;
395
+ padding: 0;
396
+ background: #fff;
397
+ font-size: 80%;
398
+ }
399
+ </style>
400
+ <script type="text/javascript">
401
+ // <![CDATA[
402
+ #{GLOBAL_SCRIPTS}
403
+ // ]]>
404
+ </script>
405
+ <style type="text/css">
406
+ #{GLOBAL_STYLES}
407
+ </style>
408
+ </head>
409
+ <body>
410
+ EOF
411
+ end
412
+ end
413
+ end
414
+ end
@@ -0,0 +1,120 @@
1
+ module RSpec
2
+ module Core
3
+ module Formatters
4
+ # @api private
5
+ #
6
+ # Extracts code snippets by looking at the backtrace of the passed error
7
+ # and applies synax highlighting and line numbers using html.
8
+ class HtmlSnippetExtractor
9
+ # @private
10
+ module NullConverter
11
+ def self.convert(code)
12
+ %Q(#{code}\n<span class="comment"># Install the coderay gem to get syntax highlighting</span>)
13
+ end
14
+ end
15
+
16
+ # @private
17
+ module CoderayConverter
18
+ def self.convert(code)
19
+ CodeRay.scan(code, :ruby).html(:line_numbers => false)
20
+ end
21
+ end
22
+
23
+ # rubocop:disable Style/ClassVars
24
+ # @private
25
+ @@converter = NullConverter
26
+
27
+ begin
28
+ require 'coderay'
29
+ RSpec::Support.require_rspec_core 'formatters/syntax_highlighter'
30
+ RSpec::Core::Formatters::SyntaxHighlighter.attempt_to_add_rspec_terms_to_coderay_keywords
31
+ @@converter = CoderayConverter
32
+ # rubocop:disable Lint/HandleExceptions
33
+ rescue LoadError
34
+ # it'll fall back to the NullConverter assigned above
35
+ # rubocop:enable Lint/HandleExceptions
36
+ end
37
+
38
+ # rubocop:enable Style/ClassVars
39
+
40
+ # @api private
41
+ #
42
+ # Extract lines of code corresponding to a backtrace.
43
+ #
44
+ # @param backtrace [String] the backtrace from a test failure
45
+ # @return [String] highlighted code snippet indicating where the test
46
+ # failure occured
47
+ #
48
+ # @see #post_process
49
+ def snippet(backtrace)
50
+ raw_code, line = snippet_for(backtrace[0])
51
+ highlighted = @@converter.convert(raw_code)
52
+ post_process(highlighted, line)
53
+ end
54
+ # rubocop:enable Style/ClassVars
55
+
56
+ # @api private
57
+ #
58
+ # Create a snippet from a line of code.
59
+ #
60
+ # @param error_line [String] file name with line number (i.e.
61
+ # 'foo_spec.rb:12')
62
+ # @return [String] lines around the target line within the file
63
+ #
64
+ # @see #lines_around
65
+ def snippet_for(error_line)
66
+ if error_line =~ /(.*):(\d+)/
67
+ file = Regexp.last_match[1]
68
+ line = Regexp.last_match[2].to_i
69
+ [lines_around(file, line), line]
70
+ else
71
+ ["# Couldn't get snippet for #{error_line}", 1]
72
+ end
73
+ end
74
+
75
+ # @api private
76
+ #
77
+ # Extract lines of code centered around a particular line within a
78
+ # source file.
79
+ #
80
+ # @param file [String] filename
81
+ # @param line [Fixnum] line number
82
+ # @return [String] lines around the target line within the file (2 above
83
+ # and 1 below).
84
+ def lines_around(file, line)
85
+ if File.file?(file)
86
+ lines = File.read(file).split("\n")
87
+ min = [0, line - 3].max
88
+ max = [line + 1, lines.length - 1].min
89
+ selected_lines = []
90
+ selected_lines.join("\n")
91
+ lines[min..max].join("\n")
92
+ else
93
+ "# Couldn't get snippet for #{file}"
94
+ end
95
+ rescue SecurityError
96
+ "# Couldn't get snippet for #{file}"
97
+ end
98
+
99
+ # @api private
100
+ #
101
+ # Adds line numbers to all lines and highlights the line where the
102
+ # failure occurred using html `span` tags.
103
+ #
104
+ # @param highlighted [String] syntax-highlighted snippet surrounding the
105
+ # offending line of code
106
+ # @param offending_line [Fixnum] line where failure occured
107
+ # @return [String] completed snippet
108
+ def post_process(highlighted, offending_line)
109
+ new_lines = []
110
+ highlighted.split("\n").each_with_index do |line, i|
111
+ new_line = "<span class=\"linenum\">#{offending_line + i - 2}</span>#{line}"
112
+ new_line = "<span class=\"offending\">#{new_line}</span>" if i == 2
113
+ new_lines << new_line
114
+ end
115
+ new_lines.join("\n")
116
+ end
117
+ end
118
+ end
119
+ end
120
+ end