cli-nasa 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 (633) hide show
  1. checksums.yaml +7 -0
  2. data/.DS_Store +0 -0
  3. data/.gitignore +11 -0
  4. data/.rspec +3 -0
  5. data/.travis.yml +6 -0
  6. data/Gemfile +7 -0
  7. data/Gemfile.lock +38 -0
  8. data/LICENSE.txt +21 -0
  9. data/README.md +56 -0
  10. data/Rakefile +6 -0
  11. data/bin/run_me +10 -0
  12. data/cli-nasa.gemspec +28 -0
  13. data/config/environment.rb +5 -0
  14. data/lib/models/content.rb +28 -0
  15. data/lib/services/cli.rb +202 -0
  16. data/lib/services/cli_nasa_API.rb +28 -0
  17. data/lib/services/version.rb +4 -0
  18. data/vendor/bundle/ruby/2.7.0/bin/htmldiff +27 -0
  19. data/vendor/bundle/ruby/2.7.0/bin/httparty +27 -0
  20. data/vendor/bundle/ruby/2.7.0/bin/ldiff +27 -0
  21. data/vendor/bundle/ruby/2.7.0/bin/rake +27 -0
  22. data/vendor/bundle/ruby/2.7.0/bin/rspec +27 -0
  23. data/vendor/bundle/ruby/2.7.0/bin/ruby_executable_hooks +25 -0
  24. data/vendor/bundle/ruby/2.7.0/cache/diff-lcs-1.4.4.gem +0 -0
  25. data/vendor/bundle/ruby/2.7.0/cache/httparty-0.18.1.gem +0 -0
  26. data/vendor/bundle/ruby/2.7.0/cache/json-2.3.1.gem +0 -0
  27. data/vendor/bundle/ruby/2.7.0/cache/mime-types-3.3.1.gem +0 -0
  28. data/vendor/bundle/ruby/2.7.0/cache/mime-types-data-3.2020.0512.gem +0 -0
  29. data/vendor/bundle/ruby/2.7.0/cache/multi_xml-0.6.0.gem +0 -0
  30. data/vendor/bundle/ruby/2.7.0/cache/rake-12.3.3.gem +0 -0
  31. data/vendor/bundle/ruby/2.7.0/cache/rspec-3.9.0.gem +0 -0
  32. data/vendor/bundle/ruby/2.7.0/cache/rspec-core-3.9.2.gem +0 -0
  33. data/vendor/bundle/ruby/2.7.0/cache/rspec-expectations-3.9.2.gem +0 -0
  34. data/vendor/bundle/ruby/2.7.0/cache/rspec-mocks-3.9.1.gem +0 -0
  35. data/vendor/bundle/ruby/2.7.0/cache/rspec-support-3.9.3.gem +0 -0
  36. data/vendor/bundle/ruby/2.7.0/extensions/x86_64-darwin-18/2.7.0/json-2.3.1/gem.build_complete +0 -0
  37. data/vendor/bundle/ruby/2.7.0/extensions/x86_64-darwin-18/2.7.0/json-2.3.1/gem_make.out +13 -0
  38. data/vendor/bundle/ruby/2.7.0/extensions/x86_64-darwin-18/2.7.0/json-2.3.1/json/ext/generator.bundle +0 -0
  39. data/vendor/bundle/ruby/2.7.0/extensions/x86_64-darwin-18/2.7.0/json-2.3.1/json/ext/parser.bundle +0 -0
  40. data/vendor/bundle/ruby/2.7.0/extensions/x86_64-darwin-18/2.7.0/json-2.3.1/mkmf.log +62 -0
  41. data/vendor/bundle/ruby/2.7.0/gems/diff-lcs-1.4.4/.rspec +1 -0
  42. data/vendor/bundle/ruby/2.7.0/gems/diff-lcs-1.4.4/Code-of-Conduct.md +74 -0
  43. data/vendor/bundle/ruby/2.7.0/gems/diff-lcs-1.4.4/Contributing.md +118 -0
  44. data/vendor/bundle/ruby/2.7.0/gems/diff-lcs-1.4.4/History.md +319 -0
  45. data/vendor/bundle/ruby/2.7.0/gems/diff-lcs-1.4.4/License.md +39 -0
  46. data/vendor/bundle/ruby/2.7.0/gems/diff-lcs-1.4.4/Manifest.txt +45 -0
  47. data/vendor/bundle/ruby/2.7.0/gems/diff-lcs-1.4.4/README.rdoc +84 -0
  48. data/vendor/bundle/ruby/2.7.0/gems/diff-lcs-1.4.4/Rakefile +74 -0
  49. data/vendor/bundle/ruby/2.7.0/gems/diff-lcs-1.4.4/autotest/discover.rb +3 -0
  50. data/vendor/bundle/ruby/2.7.0/gems/diff-lcs-1.4.4/bin/htmldiff +35 -0
  51. data/vendor/bundle/ruby/2.7.0/gems/diff-lcs-1.4.4/bin/ldiff +9 -0
  52. data/vendor/bundle/ruby/2.7.0/gems/diff-lcs-1.4.4/docs/COPYING.txt +339 -0
  53. data/vendor/bundle/ruby/2.7.0/gems/diff-lcs-1.4.4/docs/artistic.txt +127 -0
  54. data/vendor/bundle/ruby/2.7.0/gems/diff-lcs-1.4.4/lib/diff-lcs.rb +3 -0
  55. data/vendor/bundle/ruby/2.7.0/gems/diff-lcs-1.4.4/lib/diff/lcs.rb +739 -0
  56. data/vendor/bundle/ruby/2.7.0/gems/diff-lcs-1.4.4/lib/diff/lcs/array.rb +7 -0
  57. data/vendor/bundle/ruby/2.7.0/gems/diff-lcs-1.4.4/lib/diff/lcs/backports.rb +9 -0
  58. data/vendor/bundle/ruby/2.7.0/gems/diff-lcs-1.4.4/lib/diff/lcs/block.rb +37 -0
  59. data/vendor/bundle/ruby/2.7.0/gems/diff-lcs-1.4.4/lib/diff/lcs/callbacks.rb +325 -0
  60. data/vendor/bundle/ruby/2.7.0/gems/diff-lcs-1.4.4/lib/diff/lcs/change.rb +174 -0
  61. data/vendor/bundle/ruby/2.7.0/gems/diff-lcs-1.4.4/lib/diff/lcs/htmldiff.rb +150 -0
  62. data/vendor/bundle/ruby/2.7.0/gems/diff-lcs-1.4.4/lib/diff/lcs/hunk.rb +358 -0
  63. data/vendor/bundle/ruby/2.7.0/gems/diff-lcs-1.4.4/lib/diff/lcs/internals.rb +304 -0
  64. data/vendor/bundle/ruby/2.7.0/gems/diff-lcs-1.4.4/lib/diff/lcs/ldiff.rb +171 -0
  65. data/vendor/bundle/ruby/2.7.0/gems/diff-lcs-1.4.4/lib/diff/lcs/string.rb +5 -0
  66. data/vendor/bundle/ruby/2.7.0/gems/diff-lcs-1.4.4/spec/change_spec.rb +89 -0
  67. data/vendor/bundle/ruby/2.7.0/gems/diff-lcs-1.4.4/spec/diff_spec.rb +51 -0
  68. data/vendor/bundle/ruby/2.7.0/gems/diff-lcs-1.4.4/spec/fixtures/aX +1 -0
  69. data/vendor/bundle/ruby/2.7.0/gems/diff-lcs-1.4.4/spec/fixtures/bXaX +1 -0
  70. data/vendor/bundle/ruby/2.7.0/gems/diff-lcs-1.4.4/spec/fixtures/ds1.csv +50 -0
  71. data/vendor/bundle/ruby/2.7.0/gems/diff-lcs-1.4.4/spec/fixtures/ds2.csv +51 -0
  72. data/vendor/bundle/ruby/2.7.0/gems/diff-lcs-1.4.4/spec/fixtures/ldiff/output.diff +4 -0
  73. data/vendor/bundle/ruby/2.7.0/gems/diff-lcs-1.4.4/spec/fixtures/ldiff/output.diff-c +7 -0
  74. data/vendor/bundle/ruby/2.7.0/gems/diff-lcs-1.4.4/spec/fixtures/ldiff/output.diff-e +3 -0
  75. data/vendor/bundle/ruby/2.7.0/gems/diff-lcs-1.4.4/spec/fixtures/ldiff/output.diff-f +3 -0
  76. data/vendor/bundle/ruby/2.7.0/gems/diff-lcs-1.4.4/spec/fixtures/ldiff/output.diff-u +5 -0
  77. data/vendor/bundle/ruby/2.7.0/gems/diff-lcs-1.4.4/spec/hunk_spec.rb +83 -0
  78. data/vendor/bundle/ruby/2.7.0/gems/diff-lcs-1.4.4/spec/issues_spec.rb +154 -0
  79. data/vendor/bundle/ruby/2.7.0/gems/diff-lcs-1.4.4/spec/lcs_spec.rb +56 -0
  80. data/vendor/bundle/ruby/2.7.0/gems/diff-lcs-1.4.4/spec/ldiff_spec.rb +87 -0
  81. data/vendor/bundle/ruby/2.7.0/gems/diff-lcs-1.4.4/spec/patch_spec.rb +416 -0
  82. data/vendor/bundle/ruby/2.7.0/gems/diff-lcs-1.4.4/spec/sdiff_spec.rb +214 -0
  83. data/vendor/bundle/ruby/2.7.0/gems/diff-lcs-1.4.4/spec/spec_helper.rb +375 -0
  84. data/vendor/bundle/ruby/2.7.0/gems/diff-lcs-1.4.4/spec/traverse_balanced_spec.rb +310 -0
  85. data/vendor/bundle/ruby/2.7.0/gems/diff-lcs-1.4.4/spec/traverse_sequences_spec.rb +139 -0
  86. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/.editorconfig +18 -0
  87. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/.gitignore +13 -0
  88. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/.rubocop.yml +92 -0
  89. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/.rubocop_todo.yml +124 -0
  90. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/.simplecov +1 -0
  91. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/.travis.yml +11 -0
  92. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/CONTRIBUTING.md +23 -0
  93. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/Changelog.md +530 -0
  94. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/Gemfile +24 -0
  95. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/Guardfile +16 -0
  96. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/MIT-LICENSE +20 -0
  97. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/README.md +81 -0
  98. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/Rakefile +10 -0
  99. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/bin/httparty +123 -0
  100. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/cucumber.yml +1 -0
  101. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/docs/README.md +106 -0
  102. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/examples/README.md +86 -0
  103. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/examples/aaws.rb +32 -0
  104. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/examples/basic.rb +28 -0
  105. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/examples/body_stream.rb +14 -0
  106. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/examples/crack.rb +19 -0
  107. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/examples/custom_parsers.rb +68 -0
  108. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/examples/delicious.rb +37 -0
  109. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/examples/google.rb +16 -0
  110. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/examples/headers_and_user_agents.rb +10 -0
  111. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/examples/logging.rb +36 -0
  112. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/examples/microsoft_graph.rb +52 -0
  113. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/examples/multipart.rb +22 -0
  114. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/examples/nokogiri_html_parser.rb +19 -0
  115. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/examples/peer_cert.rb +9 -0
  116. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/examples/rescue_json.rb +17 -0
  117. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/examples/rubyurl.rb +14 -0
  118. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/examples/stackexchange.rb +24 -0
  119. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/examples/stream_download.rb +26 -0
  120. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/examples/tripit_sign_in.rb +44 -0
  121. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/examples/twitter.rb +31 -0
  122. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/examples/whoismyrep.rb +10 -0
  123. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/httparty.gemspec +30 -0
  124. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/lib/httparty.rb +668 -0
  125. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/lib/httparty/connection_adapter.rb +254 -0
  126. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/lib/httparty/cookie_hash.rb +21 -0
  127. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/lib/httparty/exceptions.rb +33 -0
  128. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/lib/httparty/hash_conversions.rb +69 -0
  129. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/lib/httparty/headers_processor.rb +30 -0
  130. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/lib/httparty/logger/apache_formatter.rb +45 -0
  131. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/lib/httparty/logger/curl_formatter.rb +91 -0
  132. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/lib/httparty/logger/logger.rb +28 -0
  133. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/lib/httparty/logger/logstash_formatter.rb +59 -0
  134. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/lib/httparty/module_inheritable_attributes.rb +56 -0
  135. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/lib/httparty/net_digest_auth.rb +136 -0
  136. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/lib/httparty/parser.rb +150 -0
  137. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/lib/httparty/request.rb +379 -0
  138. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/lib/httparty/request/body.rb +84 -0
  139. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/lib/httparty/request/multipart_boundary.rb +11 -0
  140. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/lib/httparty/response.rb +154 -0
  141. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/lib/httparty/response/headers.rb +33 -0
  142. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/lib/httparty/response_fragment.rb +19 -0
  143. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/lib/httparty/text_encoder.rb +70 -0
  144. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/lib/httparty/utils.rb +11 -0
  145. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/lib/httparty/version.rb +3 -0
  146. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/script/release +42 -0
  147. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/website/css/common.css +47 -0
  148. data/vendor/bundle/ruby/2.7.0/gems/httparty-0.18.1/website/index.html +73 -0
  149. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/.gitignore +18 -0
  150. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/.travis.yml +26 -0
  151. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/CHANGES.md +424 -0
  152. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/Gemfile +14 -0
  153. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/README-json-jruby.md +33 -0
  154. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/README.md +425 -0
  155. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/Rakefile +334 -0
  156. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/VERSION +1 -0
  157. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/diagrams/.keep +0 -0
  158. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/ext/json/ext/fbuffer/fbuffer.h +187 -0
  159. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/ext/json/ext/generator/.sitearchdir.-.json.-.ext.time +0 -0
  160. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/ext/json/ext/generator/depend +1 -0
  161. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/ext/json/ext/generator/extconf.rb +4 -0
  162. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/ext/json/ext/generator/generator.c +1569 -0
  163. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/ext/json/ext/generator/generator.h +171 -0
  164. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/ext/json/ext/parser/.sitearchdir.-.json.-.ext.time +0 -0
  165. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/ext/json/ext/parser/depend +1 -0
  166. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/ext/json/ext/parser/extconf.rb +6 -0
  167. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/ext/json/ext/parser/parser.c +2137 -0
  168. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/ext/json/ext/parser/parser.h +91 -0
  169. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/ext/json/ext/parser/parser.rl +897 -0
  170. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/ext/json/extconf.rb +2 -0
  171. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/install.rb +23 -0
  172. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/java/src/json/ext/ByteListTranscoder.java +166 -0
  173. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/java/src/json/ext/Generator.java +466 -0
  174. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/java/src/json/ext/GeneratorMethods.java +231 -0
  175. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/java/src/json/ext/GeneratorService.java +42 -0
  176. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/java/src/json/ext/GeneratorState.java +490 -0
  177. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/java/src/json/ext/OptionsReader.java +113 -0
  178. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/java/src/json/ext/Parser.java +2362 -0
  179. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/java/src/json/ext/Parser.rl +893 -0
  180. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/java/src/json/ext/ParserService.java +34 -0
  181. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/java/src/json/ext/RuntimeInfo.java +116 -0
  182. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/java/src/json/ext/StringDecoder.java +166 -0
  183. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/java/src/json/ext/StringEncoder.java +111 -0
  184. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/java/src/json/ext/Utils.java +88 -0
  185. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/json-java.gemspec +37 -0
  186. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/json.gemspec +139 -0
  187. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/json_pure.gemspec +33 -0
  188. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/lib/json.rb +412 -0
  189. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/lib/json/add/bigdecimal.rb +29 -0
  190. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/lib/json/add/complex.rb +29 -0
  191. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/lib/json/add/core.rb +12 -0
  192. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/lib/json/add/date.rb +34 -0
  193. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/lib/json/add/date_time.rb +50 -0
  194. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/lib/json/add/exception.rb +31 -0
  195. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/lib/json/add/ostruct.rb +31 -0
  196. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/lib/json/add/range.rb +29 -0
  197. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/lib/json/add/rational.rb +28 -0
  198. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/lib/json/add/regexp.rb +30 -0
  199. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/lib/json/add/set.rb +29 -0
  200. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/lib/json/add/struct.rb +30 -0
  201. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/lib/json/add/symbol.rb +25 -0
  202. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/lib/json/add/time.rb +38 -0
  203. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/lib/json/common.rb +691 -0
  204. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/lib/json/ext.rb +15 -0
  205. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/lib/json/ext/.keep +0 -0
  206. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/lib/json/generic_object.rb +71 -0
  207. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/lib/json/pure.rb +15 -0
  208. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/lib/json/pure/generator.rb +459 -0
  209. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/lib/json/pure/parser.rb +319 -0
  210. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/lib/json/version.rb +9 -0
  211. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/references/rfc7159.txt +899 -0
  212. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/tests/fixtures/fail10.json +1 -0
  213. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/tests/fixtures/fail11.json +1 -0
  214. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/tests/fixtures/fail12.json +1 -0
  215. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/tests/fixtures/fail13.json +1 -0
  216. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/tests/fixtures/fail14.json +1 -0
  217. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/tests/fixtures/fail18.json +1 -0
  218. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/tests/fixtures/fail19.json +1 -0
  219. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/tests/fixtures/fail2.json +1 -0
  220. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/tests/fixtures/fail20.json +1 -0
  221. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/tests/fixtures/fail21.json +1 -0
  222. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/tests/fixtures/fail22.json +1 -0
  223. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/tests/fixtures/fail23.json +1 -0
  224. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/tests/fixtures/fail24.json +1 -0
  225. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/tests/fixtures/fail25.json +1 -0
  226. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/tests/fixtures/fail27.json +2 -0
  227. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/tests/fixtures/fail28.json +2 -0
  228. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/tests/fixtures/fail3.json +1 -0
  229. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/tests/fixtures/fail4.json +1 -0
  230. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/tests/fixtures/fail5.json +1 -0
  231. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/tests/fixtures/fail6.json +1 -0
  232. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/tests/fixtures/fail7.json +1 -0
  233. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/tests/fixtures/fail8.json +1 -0
  234. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/tests/fixtures/fail9.json +1 -0
  235. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/tests/fixtures/obsolete_fail1.json +1 -0
  236. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/tests/fixtures/pass1.json +56 -0
  237. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/tests/fixtures/pass15.json +1 -0
  238. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/tests/fixtures/pass16.json +1 -0
  239. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/tests/fixtures/pass17.json +1 -0
  240. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/tests/fixtures/pass2.json +1 -0
  241. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/tests/fixtures/pass26.json +1 -0
  242. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/tests/fixtures/pass3.json +6 -0
  243. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/tests/json_addition_test.rb +203 -0
  244. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/tests/json_common_interface_test.rb +126 -0
  245. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/tests/json_encoding_test.rb +107 -0
  246. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/tests/json_ext_parser_test.rb +15 -0
  247. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/tests/json_fixtures_test.rb +37 -0
  248. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/tests/json_generator_test.rb +421 -0
  249. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/tests/json_generic_object_test.rb +82 -0
  250. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/tests/json_parser_test.rb +472 -0
  251. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/tests/json_string_matching_test.rb +38 -0
  252. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/tests/test_helper.rb +17 -0
  253. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/tools/diff.sh +18 -0
  254. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/tools/fuzz.rb +131 -0
  255. data/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/tools/server.rb +62 -0
  256. data/vendor/bundle/ruby/2.7.0/gems/mime-types-3.3.1/Code-of-Conduct.md +73 -0
  257. data/vendor/bundle/ruby/2.7.0/gems/mime-types-3.3.1/Contributing.md +143 -0
  258. data/vendor/bundle/ruby/2.7.0/gems/mime-types-3.3.1/History.md +240 -0
  259. data/vendor/bundle/ruby/2.7.0/gems/mime-types-3.3.1/Licence.md +25 -0
  260. data/vendor/bundle/ruby/2.7.0/gems/mime-types-3.3.1/Manifest.txt +31 -0
  261. data/vendor/bundle/ruby/2.7.0/gems/mime-types-3.3.1/README.rdoc +193 -0
  262. data/vendor/bundle/ruby/2.7.0/gems/mime-types-3.3.1/Rakefile +284 -0
  263. data/vendor/bundle/ruby/2.7.0/gems/mime-types-3.3.1/lib/mime-types.rb +3 -0
  264. data/vendor/bundle/ruby/2.7.0/gems/mime-types-3.3.1/lib/mime/type.rb +587 -0
  265. data/vendor/bundle/ruby/2.7.0/gems/mime-types-3.3.1/lib/mime/type/columnar.rb +57 -0
  266. data/vendor/bundle/ruby/2.7.0/gems/mime-types-3.3.1/lib/mime/types.rb +231 -0
  267. data/vendor/bundle/ruby/2.7.0/gems/mime-types-3.3.1/lib/mime/types/_columnar.rb +136 -0
  268. data/vendor/bundle/ruby/2.7.0/gems/mime-types-3.3.1/lib/mime/types/cache.rb +58 -0
  269. data/vendor/bundle/ruby/2.7.0/gems/mime-types-3.3.1/lib/mime/types/columnar.rb +3 -0
  270. data/vendor/bundle/ruby/2.7.0/gems/mime-types-3.3.1/lib/mime/types/container.rb +96 -0
  271. data/vendor/bundle/ruby/2.7.0/gems/mime-types-3.3.1/lib/mime/types/deprecations.rb +32 -0
  272. data/vendor/bundle/ruby/2.7.0/gems/mime-types-3.3.1/lib/mime/types/full.rb +19 -0
  273. data/vendor/bundle/ruby/2.7.0/gems/mime-types-3.3.1/lib/mime/types/loader.rb +146 -0
  274. data/vendor/bundle/ruby/2.7.0/gems/mime-types-3.3.1/lib/mime/types/logger.rb +39 -0
  275. data/vendor/bundle/ruby/2.7.0/gems/mime-types-3.3.1/lib/mime/types/registry.rb +90 -0
  276. data/vendor/bundle/ruby/2.7.0/gems/mime-types-3.3.1/test/bad-fixtures/malformed +9 -0
  277. data/vendor/bundle/ruby/2.7.0/gems/mime-types-3.3.1/test/fixture/json.json +1 -0
  278. data/vendor/bundle/ruby/2.7.0/gems/mime-types-3.3.1/test/fixture/old-data +9 -0
  279. data/vendor/bundle/ruby/2.7.0/gems/mime-types-3.3.1/test/fixture/yaml.yaml +55 -0
  280. data/vendor/bundle/ruby/2.7.0/gems/mime-types-3.3.1/test/minitest_helper.rb +13 -0
  281. data/vendor/bundle/ruby/2.7.0/gems/mime-types-3.3.1/test/test_mime_type.rb +610 -0
  282. data/vendor/bundle/ruby/2.7.0/gems/mime-types-3.3.1/test/test_mime_types.rb +169 -0
  283. data/vendor/bundle/ruby/2.7.0/gems/mime-types-3.3.1/test/test_mime_types_cache.rb +118 -0
  284. data/vendor/bundle/ruby/2.7.0/gems/mime-types-3.3.1/test/test_mime_types_class.rb +159 -0
  285. data/vendor/bundle/ruby/2.7.0/gems/mime-types-3.3.1/test/test_mime_types_lazy.rb +49 -0
  286. data/vendor/bundle/ruby/2.7.0/gems/mime-types-3.3.1/test/test_mime_types_loader.rb +32 -0
  287. data/vendor/bundle/ruby/2.7.0/gems/mime-types-data-3.2020.0512/Code-of-Conduct.md +75 -0
  288. data/vendor/bundle/ruby/2.7.0/gems/mime-types-data-3.2020.0512/Contributing.md +163 -0
  289. data/vendor/bundle/ruby/2.7.0/gems/mime-types-data-3.2020.0512/History.md +436 -0
  290. data/vendor/bundle/ruby/2.7.0/gems/mime-types-data-3.2020.0512/Licence.md +25 -0
  291. data/vendor/bundle/ruby/2.7.0/gems/mime-types-data-3.2020.0512/Manifest.txt +31 -0
  292. data/vendor/bundle/ruby/2.7.0/gems/mime-types-data-3.2020.0512/README.md +63 -0
  293. data/vendor/bundle/ruby/2.7.0/gems/mime-types-data-3.2020.0512/Rakefile +94 -0
  294. data/vendor/bundle/ruby/2.7.0/gems/mime-types-data-3.2020.0512/data/mime-types.json +1 -0
  295. data/vendor/bundle/ruby/2.7.0/gems/mime-types-data-3.2020.0512/data/mime.content_type.column +2277 -0
  296. data/vendor/bundle/ruby/2.7.0/gems/mime-types-data-3.2020.0512/data/mime.docs.column +2277 -0
  297. data/vendor/bundle/ruby/2.7.0/gems/mime-types-data-3.2020.0512/data/mime.encoding.column +2277 -0
  298. data/vendor/bundle/ruby/2.7.0/gems/mime-types-data-3.2020.0512/data/mime.flags.column +2277 -0
  299. data/vendor/bundle/ruby/2.7.0/gems/mime-types-data-3.2020.0512/data/mime.friendly.column +2277 -0
  300. data/vendor/bundle/ruby/2.7.0/gems/mime-types-data-3.2020.0512/data/mime.pext.column +2277 -0
  301. data/vendor/bundle/ruby/2.7.0/gems/mime-types-data-3.2020.0512/data/mime.use_instead.column +2277 -0
  302. data/vendor/bundle/ruby/2.7.0/gems/mime-types-data-3.2020.0512/data/mime.xrefs.column +2277 -0
  303. data/vendor/bundle/ruby/2.7.0/gems/mime-types-data-3.2020.0512/lib/mime-types-data.rb +3 -0
  304. data/vendor/bundle/ruby/2.7.0/gems/mime-types-data-3.2020.0512/lib/mime/types/data.rb +21 -0
  305. data/vendor/bundle/ruby/2.7.0/gems/mime-types-data-3.2020.0512/types/application.yaml +16703 -0
  306. data/vendor/bundle/ruby/2.7.0/gems/mime-types-data-3.2020.0512/types/audio.yaml +1679 -0
  307. data/vendor/bundle/ruby/2.7.0/gems/mime-types-data-3.2020.0512/types/chemical.yaml +71 -0
  308. data/vendor/bundle/ruby/2.7.0/gems/mime-types-data-3.2020.0512/types/conference.yaml +9 -0
  309. data/vendor/bundle/ruby/2.7.0/gems/mime-types-data-3.2020.0512/types/drawing.yaml +15 -0
  310. data/vendor/bundle/ruby/2.7.0/gems/mime-types-data-3.2020.0512/types/font.yaml +65 -0
  311. data/vendor/bundle/ruby/2.7.0/gems/mime-types-data-3.2020.0512/types/image.yaml +1217 -0
  312. data/vendor/bundle/ruby/2.7.0/gems/mime-types-data-3.2020.0512/types/message.yaml +200 -0
  313. data/vendor/bundle/ruby/2.7.0/gems/mime-types-data-3.2020.0512/types/model.yaml +322 -0
  314. data/vendor/bundle/ruby/2.7.0/gems/mime-types-data-3.2020.0512/types/multipart.yaml +179 -0
  315. data/vendor/bundle/ruby/2.7.0/gems/mime-types-data-3.2020.0512/types/text.yaml +1075 -0
  316. data/vendor/bundle/ruby/2.7.0/gems/mime-types-data-3.2020.0512/types/video.yaml +1070 -0
  317. data/vendor/bundle/ruby/2.7.0/gems/mime-types-data-3.2020.0512/types/world.yaml +8 -0
  318. data/vendor/bundle/ruby/2.7.0/gems/multi_xml-0.6.0/.yardopts +8 -0
  319. data/vendor/bundle/ruby/2.7.0/gems/multi_xml-0.6.0/CHANGELOG.md +93 -0
  320. data/vendor/bundle/ruby/2.7.0/gems/multi_xml-0.6.0/CONTRIBUTING.md +51 -0
  321. data/vendor/bundle/ruby/2.7.0/gems/multi_xml-0.6.0/LICENSE.md +20 -0
  322. data/vendor/bundle/ruby/2.7.0/gems/multi_xml-0.6.0/README.md +95 -0
  323. data/vendor/bundle/ruby/2.7.0/gems/multi_xml-0.6.0/lib/multi_xml.rb +305 -0
  324. data/vendor/bundle/ruby/2.7.0/gems/multi_xml-0.6.0/lib/multi_xml/parsers/libxml.rb +33 -0
  325. data/vendor/bundle/ruby/2.7.0/gems/multi_xml-0.6.0/lib/multi_xml/parsers/libxml2_parser.rb +72 -0
  326. data/vendor/bundle/ruby/2.7.0/gems/multi_xml-0.6.0/lib/multi_xml/parsers/nokogiri.rb +35 -0
  327. data/vendor/bundle/ruby/2.7.0/gems/multi_xml-0.6.0/lib/multi_xml/parsers/oga.rb +73 -0
  328. data/vendor/bundle/ruby/2.7.0/gems/multi_xml-0.6.0/lib/multi_xml/parsers/ox.rb +91 -0
  329. data/vendor/bundle/ruby/2.7.0/gems/multi_xml-0.6.0/lib/multi_xml/parsers/rexml.rb +113 -0
  330. data/vendor/bundle/ruby/2.7.0/gems/multi_xml-0.6.0/lib/multi_xml/version.rb +45 -0
  331. data/vendor/bundle/ruby/2.7.0/gems/multi_xml-0.6.0/multi_xml.gemspec +19 -0
  332. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/CONTRIBUTING.rdoc +43 -0
  333. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/Gemfile +3 -0
  334. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/History.rdoc +2344 -0
  335. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/MIT-LICENSE +21 -0
  336. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/README.rdoc +156 -0
  337. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/Rakefile +41 -0
  338. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/azure-pipelines.yml +11 -0
  339. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/bin/bundle +105 -0
  340. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/bin/console +7 -0
  341. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/bin/rake +29 -0
  342. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/bin/rdoc +29 -0
  343. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/bin/rubocop +29 -0
  344. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/bin/setup +6 -0
  345. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/doc/command_line_usage.rdoc +158 -0
  346. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/doc/example/Rakefile1 +38 -0
  347. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/doc/example/Rakefile2 +35 -0
  348. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/doc/example/a.c +6 -0
  349. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/doc/example/b.c +6 -0
  350. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/doc/example/main.c +11 -0
  351. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/doc/glossary.rdoc +42 -0
  352. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/doc/jamis.rb +592 -0
  353. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/doc/proto_rake.rdoc +127 -0
  354. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/doc/rake.1 +156 -0
  355. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/doc/rakefile.rdoc +622 -0
  356. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/doc/rational.rdoc +151 -0
  357. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/exe/rake +27 -0
  358. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/lib/rake.rb +71 -0
  359. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/lib/rake/application.rb +824 -0
  360. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/lib/rake/backtrace.rb +24 -0
  361. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/lib/rake/clean.rb +78 -0
  362. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/lib/rake/cloneable.rb +17 -0
  363. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/lib/rake/cpu_counter.rb +107 -0
  364. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/lib/rake/default_loader.rb +15 -0
  365. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/lib/rake/dsl_definition.rb +195 -0
  366. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/lib/rake/early_time.rb +22 -0
  367. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/lib/rake/ext/core.rb +26 -0
  368. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/lib/rake/ext/string.rb +176 -0
  369. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/lib/rake/file_creation_task.rb +25 -0
  370. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/lib/rake/file_list.rb +435 -0
  371. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/lib/rake/file_task.rb +54 -0
  372. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/lib/rake/file_utils.rb +137 -0
  373. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/lib/rake/file_utils_ext.rb +145 -0
  374. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/lib/rake/invocation_chain.rb +57 -0
  375. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/lib/rake/invocation_exception_mixin.rb +17 -0
  376. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/lib/rake/late_time.rb +18 -0
  377. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/lib/rake/linked_list.rb +112 -0
  378. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/lib/rake/loaders/makefile.rb +54 -0
  379. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/lib/rake/multi_task.rb +14 -0
  380. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/lib/rake/name_space.rb +38 -0
  381. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/lib/rake/packagetask.rb +207 -0
  382. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/lib/rake/phony.rb +16 -0
  383. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/lib/rake/private_reader.rb +21 -0
  384. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/lib/rake/promise.rb +100 -0
  385. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/lib/rake/pseudo_status.rb +30 -0
  386. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/lib/rake/rake_module.rb +67 -0
  387. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/lib/rake/rake_test_loader.rb +27 -0
  388. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/lib/rake/rule_recursion_overflow_error.rb +20 -0
  389. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/lib/rake/scope.rb +43 -0
  390. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/lib/rake/task.rb +413 -0
  391. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/lib/rake/task_argument_error.rb +8 -0
  392. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/lib/rake/task_arguments.rb +109 -0
  393. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/lib/rake/task_manager.rb +324 -0
  394. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/lib/rake/tasklib.rb +12 -0
  395. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/lib/rake/testtask.rb +224 -0
  396. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/lib/rake/thread_history_display.rb +49 -0
  397. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/lib/rake/thread_pool.rb +163 -0
  398. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/lib/rake/trace_output.rb +23 -0
  399. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/lib/rake/version.rb +10 -0
  400. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/lib/rake/win32.rb +51 -0
  401. data/vendor/bundle/ruby/2.7.0/gems/rake-12.3.3/rake.gemspec +42 -0
  402. data/vendor/bundle/ruby/2.7.0/gems/rspec-3.9.0/LICENSE.md +27 -0
  403. data/vendor/bundle/ruby/2.7.0/gems/rspec-3.9.0/README.md +43 -0
  404. data/vendor/bundle/ruby/2.7.0/gems/rspec-3.9.0/lib/rspec.rb +3 -0
  405. data/vendor/bundle/ruby/2.7.0/gems/rspec-3.9.0/lib/rspec/version.rb +5 -0
  406. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/.document +5 -0
  407. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/.yardopts +8 -0
  408. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/Changelog.md +2291 -0
  409. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/LICENSE.md +26 -0
  410. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/README.md +384 -0
  411. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/exe/rspec +4 -0
  412. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/autorun.rb +3 -0
  413. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core.rb +186 -0
  414. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/backtrace_formatter.rb +65 -0
  415. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/bisect/coordinator.rb +62 -0
  416. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/bisect/example_minimizer.rb +173 -0
  417. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/bisect/fork_runner.rb +135 -0
  418. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/bisect/server.rb +61 -0
  419. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/bisect/shell_command.rb +126 -0
  420. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/bisect/shell_runner.rb +73 -0
  421. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/bisect/utilities.rb +58 -0
  422. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/configuration.rb +2363 -0
  423. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/configuration_options.rb +233 -0
  424. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/did_you_mean.rb +46 -0
  425. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/drb.rb +113 -0
  426. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/dsl.rb +98 -0
  427. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb +656 -0
  428. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb +900 -0
  429. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_status_persister.rb +235 -0
  430. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/filter_manager.rb +231 -0
  431. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/flat_map.rb +20 -0
  432. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/formatters.rb +273 -0
  433. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/formatters/base_bisect_formatter.rb +45 -0
  434. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/formatters/base_formatter.rb +70 -0
  435. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/formatters/base_text_formatter.rb +75 -0
  436. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/formatters/bisect_drb_formatter.rb +29 -0
  437. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/formatters/bisect_progress_formatter.rb +157 -0
  438. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/formatters/console_codes.rb +68 -0
  439. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/formatters/deprecation_formatter.rb +223 -0
  440. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/formatters/documentation_formatter.rb +102 -0
  441. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/formatters/exception_presenter.rb +511 -0
  442. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/formatters/failure_list_formatter.rb +23 -0
  443. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/formatters/fallback_message_formatter.rb +28 -0
  444. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/formatters/helpers.rb +110 -0
  445. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/formatters/html_formatter.rb +153 -0
  446. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/formatters/html_printer.rb +414 -0
  447. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/formatters/html_snippet_extractor.rb +120 -0
  448. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/formatters/json_formatter.rb +102 -0
  449. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/formatters/profile_formatter.rb +68 -0
  450. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/formatters/progress_formatter.rb +29 -0
  451. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/formatters/protocol.rb +182 -0
  452. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/formatters/snippet_extractor.rb +134 -0
  453. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/formatters/syntax_highlighter.rb +91 -0
  454. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb +641 -0
  455. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/invocations.rb +87 -0
  456. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/memoized_helpers.rb +554 -0
  457. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/metadata.rb +498 -0
  458. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/metadata_filter.rb +255 -0
  459. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/minitest_assertions_adapter.rb +31 -0
  460. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/mocking_adapters/flexmock.rb +31 -0
  461. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/mocking_adapters/mocha.rb +57 -0
  462. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/mocking_adapters/null.rb +14 -0
  463. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/mocking_adapters/rr.rb +31 -0
  464. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/mocking_adapters/rspec.rb +32 -0
  465. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/notifications.rb +521 -0
  466. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/option_parser.rb +316 -0
  467. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/ordering.rb +158 -0
  468. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/output_wrapper.rb +29 -0
  469. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/pending.rb +165 -0
  470. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/profiler.rb +34 -0
  471. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/project_initializer.rb +48 -0
  472. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/project_initializer/.rspec +1 -0
  473. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/project_initializer/spec/spec_helper.rb +100 -0
  474. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/rake_task.rb +188 -0
  475. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/reporter.rb +265 -0
  476. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/ruby_project.rb +53 -0
  477. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb +204 -0
  478. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/sandbox.rb +37 -0
  479. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/set.rb +54 -0
  480. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/shared_context.rb +55 -0
  481. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/shared_example_group.rb +271 -0
  482. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/shell_escape.rb +49 -0
  483. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/test_unit_assertions_adapter.rb +30 -0
  484. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/version.rb +9 -0
  485. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/warnings.rb +40 -0
  486. data/vendor/bundle/ruby/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/world.rb +276 -0
  487. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/.document +5 -0
  488. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/.yardopts +6 -0
  489. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/Changelog.md +1191 -0
  490. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/LICENSE.md +25 -0
  491. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/README.md +320 -0
  492. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/expectations.rb +82 -0
  493. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/expectations/block_snippet_extractor.rb +253 -0
  494. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/expectations/configuration.rb +215 -0
  495. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/expectations/expectation_target.rb +127 -0
  496. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/expectations/fail_with.rb +39 -0
  497. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/expectations/failure_aggregator.rb +194 -0
  498. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/expectations/handler.rb +170 -0
  499. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/expectations/minitest_integration.rb +58 -0
  500. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/expectations/syntax.rb +132 -0
  501. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/expectations/version.rb +8 -0
  502. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers.rb +1038 -0
  503. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/aliased_matcher.rb +116 -0
  504. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in.rb +52 -0
  505. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in/all.rb +86 -0
  506. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in/base_matcher.rb +193 -0
  507. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in/be.rb +288 -0
  508. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in/be_between.rb +77 -0
  509. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in/be_instance_of.rb +26 -0
  510. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in/be_kind_of.rb +20 -0
  511. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in/be_within.rb +72 -0
  512. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in/change.rb +428 -0
  513. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in/compound.rb +276 -0
  514. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in/contain_exactly.rb +302 -0
  515. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in/cover.rb +24 -0
  516. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in/eq.rb +40 -0
  517. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in/eql.rb +34 -0
  518. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in/equal.rb +81 -0
  519. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in/exist.rb +90 -0
  520. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in/has.rb +103 -0
  521. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in/have_attributes.rb +114 -0
  522. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in/include.rb +149 -0
  523. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in/match.rb +106 -0
  524. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in/operators.rb +128 -0
  525. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in/output.rb +200 -0
  526. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in/raise_error.rb +230 -0
  527. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in/respond_to.rb +199 -0
  528. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in/satisfy.rb +60 -0
  529. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in/start_or_end_with.rb +94 -0
  530. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in/throw_symbol.rb +132 -0
  531. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in/yield.rb +441 -0
  532. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/composable.rb +171 -0
  533. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/dsl.rb +540 -0
  534. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/english_phrasing.rb +58 -0
  535. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/expecteds_for_multiple_diffs.rb +82 -0
  536. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/fail_matchers.rb +42 -0
  537. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/generated_descriptions.rb +41 -0
  538. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/matcher_delegator.rb +35 -0
  539. data/vendor/bundle/ruby/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/matcher_protocol.rb +99 -0
  540. data/vendor/bundle/ruby/2.7.0/gems/rspec-mocks-3.9.1/.document +5 -0
  541. data/vendor/bundle/ruby/2.7.0/gems/rspec-mocks-3.9.1/.yardopts +6 -0
  542. data/vendor/bundle/ruby/2.7.0/gems/rspec-mocks-3.9.1/Changelog.md +1133 -0
  543. data/vendor/bundle/ruby/2.7.0/gems/rspec-mocks-3.9.1/LICENSE.md +25 -0
  544. data/vendor/bundle/ruby/2.7.0/gems/rspec-mocks-3.9.1/README.md +463 -0
  545. data/vendor/bundle/ruby/2.7.0/gems/rspec-mocks-3.9.1/lib/rspec/mocks.rb +130 -0
  546. data/vendor/bundle/ruby/2.7.0/gems/rspec-mocks-3.9.1/lib/rspec/mocks/any_instance.rb +11 -0
  547. data/vendor/bundle/ruby/2.7.0/gems/rspec-mocks-3.9.1/lib/rspec/mocks/any_instance/chain.rb +111 -0
  548. data/vendor/bundle/ruby/2.7.0/gems/rspec-mocks-3.9.1/lib/rspec/mocks/any_instance/error_generator.rb +31 -0
  549. data/vendor/bundle/ruby/2.7.0/gems/rspec-mocks-3.9.1/lib/rspec/mocks/any_instance/expect_chain_chain.rb +31 -0
  550. data/vendor/bundle/ruby/2.7.0/gems/rspec-mocks-3.9.1/lib/rspec/mocks/any_instance/expectation_chain.rb +50 -0
  551. data/vendor/bundle/ruby/2.7.0/gems/rspec-mocks-3.9.1/lib/rspec/mocks/any_instance/message_chains.rb +83 -0
  552. data/vendor/bundle/ruby/2.7.0/gems/rspec-mocks-3.9.1/lib/rspec/mocks/any_instance/proxy.rb +116 -0
  553. data/vendor/bundle/ruby/2.7.0/gems/rspec-mocks-3.9.1/lib/rspec/mocks/any_instance/recorder.rb +294 -0
  554. data/vendor/bundle/ruby/2.7.0/gems/rspec-mocks-3.9.1/lib/rspec/mocks/any_instance/stub_chain.rb +51 -0
  555. data/vendor/bundle/ruby/2.7.0/gems/rspec-mocks-3.9.1/lib/rspec/mocks/any_instance/stub_chain_chain.rb +23 -0
  556. data/vendor/bundle/ruby/2.7.0/gems/rspec-mocks-3.9.1/lib/rspec/mocks/argument_list_matcher.rb +100 -0
  557. data/vendor/bundle/ruby/2.7.0/gems/rspec-mocks-3.9.1/lib/rspec/mocks/argument_matchers.rb +322 -0
  558. data/vendor/bundle/ruby/2.7.0/gems/rspec-mocks-3.9.1/lib/rspec/mocks/configuration.rb +212 -0
  559. data/vendor/bundle/ruby/2.7.0/gems/rspec-mocks-3.9.1/lib/rspec/mocks/error_generator.rb +369 -0
  560. data/vendor/bundle/ruby/2.7.0/gems/rspec-mocks-3.9.1/lib/rspec/mocks/example_methods.rb +434 -0
  561. data/vendor/bundle/ruby/2.7.0/gems/rspec-mocks-3.9.1/lib/rspec/mocks/instance_method_stasher.rb +146 -0
  562. data/vendor/bundle/ruby/2.7.0/gems/rspec-mocks-3.9.1/lib/rspec/mocks/marshal_extension.rb +41 -0
  563. data/vendor/bundle/ruby/2.7.0/gems/rspec-mocks-3.9.1/lib/rspec/mocks/matchers/expectation_customization.rb +20 -0
  564. data/vendor/bundle/ruby/2.7.0/gems/rspec-mocks-3.9.1/lib/rspec/mocks/matchers/have_received.rb +134 -0
  565. data/vendor/bundle/ruby/2.7.0/gems/rspec-mocks-3.9.1/lib/rspec/mocks/matchers/receive.rb +132 -0
  566. data/vendor/bundle/ruby/2.7.0/gems/rspec-mocks-3.9.1/lib/rspec/mocks/matchers/receive_message_chain.rb +82 -0
  567. data/vendor/bundle/ruby/2.7.0/gems/rspec-mocks-3.9.1/lib/rspec/mocks/matchers/receive_messages.rb +77 -0
  568. data/vendor/bundle/ruby/2.7.0/gems/rspec-mocks-3.9.1/lib/rspec/mocks/message_chain.rb +87 -0
  569. data/vendor/bundle/ruby/2.7.0/gems/rspec-mocks-3.9.1/lib/rspec/mocks/message_expectation.rb +751 -0
  570. data/vendor/bundle/ruby/2.7.0/gems/rspec-mocks-3.9.1/lib/rspec/mocks/method_double.rb +287 -0
  571. data/vendor/bundle/ruby/2.7.0/gems/rspec-mocks-3.9.1/lib/rspec/mocks/method_reference.rb +202 -0
  572. data/vendor/bundle/ruby/2.7.0/gems/rspec-mocks-3.9.1/lib/rspec/mocks/minitest_integration.rb +68 -0
  573. data/vendor/bundle/ruby/2.7.0/gems/rspec-mocks-3.9.1/lib/rspec/mocks/mutate_const.rb +339 -0
  574. data/vendor/bundle/ruby/2.7.0/gems/rspec-mocks-3.9.1/lib/rspec/mocks/object_reference.rb +149 -0
  575. data/vendor/bundle/ruby/2.7.0/gems/rspec-mocks-3.9.1/lib/rspec/mocks/order_group.rb +81 -0
  576. data/vendor/bundle/ruby/2.7.0/gems/rspec-mocks-3.9.1/lib/rspec/mocks/proxy.rb +503 -0
  577. data/vendor/bundle/ruby/2.7.0/gems/rspec-mocks-3.9.1/lib/rspec/mocks/space.rb +238 -0
  578. data/vendor/bundle/ruby/2.7.0/gems/rspec-mocks-3.9.1/lib/rspec/mocks/standalone.rb +3 -0
  579. data/vendor/bundle/ruby/2.7.0/gems/rspec-mocks-3.9.1/lib/rspec/mocks/syntax.rb +325 -0
  580. data/vendor/bundle/ruby/2.7.0/gems/rspec-mocks-3.9.1/lib/rspec/mocks/targets.rb +124 -0
  581. data/vendor/bundle/ruby/2.7.0/gems/rspec-mocks-3.9.1/lib/rspec/mocks/test_double.rb +171 -0
  582. data/vendor/bundle/ruby/2.7.0/gems/rspec-mocks-3.9.1/lib/rspec/mocks/verifying_double.rb +129 -0
  583. data/vendor/bundle/ruby/2.7.0/gems/rspec-mocks-3.9.1/lib/rspec/mocks/verifying_message_expectation.rb +54 -0
  584. data/vendor/bundle/ruby/2.7.0/gems/rspec-mocks-3.9.1/lib/rspec/mocks/verifying_proxy.rb +220 -0
  585. data/vendor/bundle/ruby/2.7.0/gems/rspec-mocks-3.9.1/lib/rspec/mocks/version.rb +9 -0
  586. data/vendor/bundle/ruby/2.7.0/gems/rspec-support-3.9.3/Changelog.md +302 -0
  587. data/vendor/bundle/ruby/2.7.0/gems/rspec-support-3.9.3/LICENSE.md +23 -0
  588. data/vendor/bundle/ruby/2.7.0/gems/rspec-support-3.9.3/README.md +40 -0
  589. data/vendor/bundle/ruby/2.7.0/gems/rspec-support-3.9.3/lib/rspec/support.rb +149 -0
  590. data/vendor/bundle/ruby/2.7.0/gems/rspec-support-3.9.3/lib/rspec/support/caller_filter.rb +83 -0
  591. data/vendor/bundle/ruby/2.7.0/gems/rspec-support-3.9.3/lib/rspec/support/comparable_version.rb +46 -0
  592. data/vendor/bundle/ruby/2.7.0/gems/rspec-support-3.9.3/lib/rspec/support/differ.rb +215 -0
  593. data/vendor/bundle/ruby/2.7.0/gems/rspec-support-3.9.3/lib/rspec/support/directory_maker.rb +63 -0
  594. data/vendor/bundle/ruby/2.7.0/gems/rspec-support-3.9.3/lib/rspec/support/encoded_string.rb +161 -0
  595. data/vendor/bundle/ruby/2.7.0/gems/rspec-support-3.9.3/lib/rspec/support/fuzzy_matcher.rb +48 -0
  596. data/vendor/bundle/ruby/2.7.0/gems/rspec-support-3.9.3/lib/rspec/support/hunk_generator.rb +47 -0
  597. data/vendor/bundle/ruby/2.7.0/gems/rspec-support-3.9.3/lib/rspec/support/matcher_definition.rb +42 -0
  598. data/vendor/bundle/ruby/2.7.0/gems/rspec-support-3.9.3/lib/rspec/support/method_signature_verifier.rb +438 -0
  599. data/vendor/bundle/ruby/2.7.0/gems/rspec-support-3.9.3/lib/rspec/support/mutex.rb +73 -0
  600. data/vendor/bundle/ruby/2.7.0/gems/rspec-support-3.9.3/lib/rspec/support/object_formatter.rb +275 -0
  601. data/vendor/bundle/ruby/2.7.0/gems/rspec-support-3.9.3/lib/rspec/support/recursive_const_methods.rb +76 -0
  602. data/vendor/bundle/ruby/2.7.0/gems/rspec-support-3.9.3/lib/rspec/support/reentrant_mutex.rb +61 -0
  603. data/vendor/bundle/ruby/2.7.0/gems/rspec-support-3.9.3/lib/rspec/support/ruby_features.rb +190 -0
  604. data/vendor/bundle/ruby/2.7.0/gems/rspec-support-3.9.3/lib/rspec/support/source.rb +75 -0
  605. data/vendor/bundle/ruby/2.7.0/gems/rspec-support-3.9.3/lib/rspec/support/source/location.rb +21 -0
  606. data/vendor/bundle/ruby/2.7.0/gems/rspec-support-3.9.3/lib/rspec/support/source/node.rb +110 -0
  607. data/vendor/bundle/ruby/2.7.0/gems/rspec-support-3.9.3/lib/rspec/support/source/token.rb +87 -0
  608. data/vendor/bundle/ruby/2.7.0/gems/rspec-support-3.9.3/lib/rspec/support/spec.rb +81 -0
  609. data/vendor/bundle/ruby/2.7.0/gems/rspec-support-3.9.3/lib/rspec/support/spec/deprecation_helpers.rb +64 -0
  610. data/vendor/bundle/ruby/2.7.0/gems/rspec-support-3.9.3/lib/rspec/support/spec/formatting_support.rb +9 -0
  611. data/vendor/bundle/ruby/2.7.0/gems/rspec-support-3.9.3/lib/rspec/support/spec/in_sub_process.rb +69 -0
  612. data/vendor/bundle/ruby/2.7.0/gems/rspec-support-3.9.3/lib/rspec/support/spec/library_wide_checks.rb +150 -0
  613. data/vendor/bundle/ruby/2.7.0/gems/rspec-support-3.9.3/lib/rspec/support/spec/shell_out.rb +89 -0
  614. data/vendor/bundle/ruby/2.7.0/gems/rspec-support-3.9.3/lib/rspec/support/spec/stderr_splitter.rb +75 -0
  615. data/vendor/bundle/ruby/2.7.0/gems/rspec-support-3.9.3/lib/rspec/support/spec/string_matcher.rb +46 -0
  616. data/vendor/bundle/ruby/2.7.0/gems/rspec-support-3.9.3/lib/rspec/support/spec/with_isolated_directory.rb +13 -0
  617. data/vendor/bundle/ruby/2.7.0/gems/rspec-support-3.9.3/lib/rspec/support/spec/with_isolated_stderr.rb +13 -0
  618. data/vendor/bundle/ruby/2.7.0/gems/rspec-support-3.9.3/lib/rspec/support/version.rb +7 -0
  619. data/vendor/bundle/ruby/2.7.0/gems/rspec-support-3.9.3/lib/rspec/support/warnings.rb +39 -0
  620. data/vendor/bundle/ruby/2.7.0/gems/rspec-support-3.9.3/lib/rspec/support/with_keywords_when_needed.rb +33 -0
  621. data/vendor/bundle/ruby/2.7.0/specifications/diff-lcs-1.4.4.gemspec +50 -0
  622. data/vendor/bundle/ruby/2.7.0/specifications/httparty-0.18.1.gemspec +36 -0
  623. data/vendor/bundle/ruby/2.7.0/specifications/json-2.3.1.gemspec +0 -0
  624. data/vendor/bundle/ruby/2.7.0/specifications/mime-types-3.3.1.gemspec +67 -0
  625. data/vendor/bundle/ruby/2.7.0/specifications/mime-types-data-3.2020.0512.gemspec +50 -0
  626. data/vendor/bundle/ruby/2.7.0/specifications/multi_xml-0.6.0.gemspec +30 -0
  627. data/vendor/bundle/ruby/2.7.0/specifications/rake-12.3.3.gemspec +43 -0
  628. data/vendor/bundle/ruby/2.7.0/specifications/rspec-3.9.0.gemspec +39 -0
  629. data/vendor/bundle/ruby/2.7.0/specifications/rspec-core-3.9.2.gemspec +53 -0
  630. data/vendor/bundle/ruby/2.7.0/specifications/rspec-expectations-3.9.2.gemspec +44 -0
  631. data/vendor/bundle/ruby/2.7.0/specifications/rspec-mocks-3.9.1.gemspec +44 -0
  632. data/vendor/bundle/ruby/2.7.0/specifications/rspec-support-3.9.3.gemspec +36 -0
  633. metadata +680 -0
@@ -0,0 +1,441 @@
1
+ RSpec::Support.require_rspec_support 'method_signature_verifier'
2
+
3
+ module RSpec
4
+ module Matchers
5
+ module BuiltIn
6
+ # @private
7
+ # Object that is yielded to `expect` when one of the
8
+ # yield matchers is used. Provides information about
9
+ # the yield behavior of the object-under-test.
10
+ class YieldProbe
11
+ def self.probe(block, &callback)
12
+ probe = new(block, &callback)
13
+ return probe unless probe.has_block?
14
+ probe.probe
15
+ end
16
+
17
+ attr_accessor :num_yields, :yielded_args
18
+
19
+ def initialize(block, &callback)
20
+ @block = block
21
+ @callback = callback || Proc.new {}
22
+ @used = false
23
+ self.num_yields = 0
24
+ self.yielded_args = []
25
+ end
26
+
27
+ def has_block?
28
+ Proc === @block
29
+ end
30
+
31
+ def probe
32
+ assert_valid_expect_block!
33
+ @block.call(self)
34
+ assert_used!
35
+ self
36
+ end
37
+
38
+ def to_proc
39
+ @used = true
40
+
41
+ probe = self
42
+ callback = @callback
43
+ Proc.new do |*args|
44
+ probe.num_yields += 1
45
+ probe.yielded_args << args
46
+ callback.call(*args)
47
+ nil # to indicate the block does not return a meaningful value
48
+ end
49
+ end
50
+
51
+ def single_yield_args
52
+ yielded_args.first
53
+ end
54
+
55
+ def yielded_once?(matcher_name)
56
+ case num_yields
57
+ when 1 then true
58
+ when 0 then false
59
+ else
60
+ raise "The #{matcher_name} matcher is not designed to be used with a " \
61
+ 'method that yields multiple times. Use the yield_successive_args ' \
62
+ 'matcher for that case.'
63
+ end
64
+ end
65
+
66
+ def assert_used!
67
+ return if @used
68
+ raise 'You must pass the argument yielded to your expect block on ' \
69
+ 'to the method-under-test as a block. It acts as a probe that ' \
70
+ 'allows the matcher to detect whether or not the method-under-test ' \
71
+ 'yields, and, if so, how many times, and what the yielded arguments ' \
72
+ 'are.'
73
+ end
74
+
75
+ if RUBY_VERSION.to_f > 1.8
76
+ def assert_valid_expect_block!
77
+ block_signature = RSpec::Support::BlockSignature.new(@block)
78
+ return if RSpec::Support::StrictSignatureVerifier.new(block_signature, [self]).valid?
79
+ raise 'Your expect block must accept an argument to be used with this ' \
80
+ 'matcher. Pass the argument as a block on to the method you are testing.'
81
+ end
82
+ else
83
+ # :nocov:
84
+ # On 1.8.7, `lambda { }.arity` and `lambda { |*a| }.arity` both return -1,
85
+ # so we can't distinguish between accepting no args and an arg splat.
86
+ # It's OK to skip, this, though; it just provides a nice error message
87
+ # when the user forgets to accept an arg in their block. They'll still get
88
+ # the `assert_used!` error message from above, which is sufficient.
89
+ def assert_valid_expect_block!
90
+ # nothing to do
91
+ end
92
+ # :nocov:
93
+ end
94
+ end
95
+
96
+ # @api private
97
+ # Provides the implementation for `yield_control`.
98
+ # Not intended to be instantiated directly.
99
+ class YieldControl < BaseMatcher
100
+ def initialize
101
+ @expectation_type = @expected_yields_count = nil
102
+ end
103
+
104
+ # @api public
105
+ # Specifies that the method is expected to yield once.
106
+ def once
107
+ exactly(1)
108
+ self
109
+ end
110
+
111
+ # @api public
112
+ # Specifies that the method is expected to yield twice.
113
+ def twice
114
+ exactly(2)
115
+ self
116
+ end
117
+
118
+ # @api public
119
+ # Specifies that the method is expected to yield thrice.
120
+ def thrice
121
+ exactly(3)
122
+ self
123
+ end
124
+
125
+ # @api public
126
+ # Specifies that the method is expected to yield the given number of times.
127
+ def exactly(number)
128
+ set_expected_yields_count(:==, number)
129
+ self
130
+ end
131
+
132
+ # @api public
133
+ # Specifies the maximum number of times the method is expected to yield
134
+ def at_most(number)
135
+ set_expected_yields_count(:<=, number)
136
+ self
137
+ end
138
+
139
+ # @api public
140
+ # Specifies the minimum number of times the method is expected to yield
141
+ def at_least(number)
142
+ set_expected_yields_count(:>=, number)
143
+ self
144
+ end
145
+
146
+ # @api public
147
+ # No-op. Provides syntactic sugar.
148
+ def times
149
+ self
150
+ end
151
+
152
+ # @private
153
+ def matches?(block)
154
+ @probe = YieldProbe.probe(block)
155
+ return false unless @probe.has_block?
156
+ return @probe.num_yields > 0 unless @expectation_type
157
+ @probe.num_yields.__send__(@expectation_type, @expected_yields_count)
158
+ end
159
+
160
+ # @private
161
+ def does_not_match?(block)
162
+ !matches?(block) && @probe.has_block?
163
+ end
164
+
165
+ # @api private
166
+ # @return [String]
167
+ def failure_message
168
+ 'expected given block to yield control' + failure_reason
169
+ end
170
+
171
+ # @api private
172
+ # @return [String]
173
+ def failure_message_when_negated
174
+ 'expected given block not to yield control' + failure_reason
175
+ end
176
+
177
+ # @private
178
+ def supports_block_expectations?
179
+ true
180
+ end
181
+
182
+ private
183
+
184
+ def set_expected_yields_count(relativity, n)
185
+ raise "Multiple count constraints are not supported" if @expectation_type
186
+
187
+ @expectation_type = relativity
188
+ @expected_yields_count = count_constraint_to_number(n)
189
+ end
190
+
191
+ def count_constraint_to_number(n)
192
+ case n
193
+ when Numeric then n
194
+ when :once then 1
195
+ when :twice then 2
196
+ when :thrice then 3
197
+ else
198
+ raise ArgumentError, "Expected a number, :once, :twice or :thrice," \
199
+ " but got #{n}"
200
+ end
201
+ end
202
+
203
+ def failure_reason
204
+ return ' but was not a block' unless @probe.has_block?
205
+ "#{human_readable_expectation_type}#{human_readable_count(@expected_yields_count)}" \
206
+ " but yielded#{human_readable_count(@probe.num_yields)}"
207
+ end
208
+
209
+ def human_readable_expectation_type
210
+ case @expectation_type
211
+ when :<= then ' at most'
212
+ when :>= then ' at least'
213
+ else ''
214
+ end
215
+ end
216
+
217
+ def human_readable_count(count)
218
+ case count
219
+ when nil then ''
220
+ when 1 then ' once'
221
+ when 2 then ' twice'
222
+ else " #{count} times"
223
+ end
224
+ end
225
+ end
226
+
227
+ # @api private
228
+ # Provides the implementation for `yield_with_no_args`.
229
+ # Not intended to be instantiated directly.
230
+ class YieldWithNoArgs < BaseMatcher
231
+ # @private
232
+ def matches?(block)
233
+ @probe = YieldProbe.probe(block)
234
+ return false unless @probe.has_block?
235
+ @probe.yielded_once?(:yield_with_no_args) && @probe.single_yield_args.empty?
236
+ end
237
+
238
+ # @private
239
+ def does_not_match?(block)
240
+ !matches?(block) && @probe.has_block?
241
+ end
242
+
243
+ # @private
244
+ def failure_message
245
+ "expected given block to yield with no arguments, but #{positive_failure_reason}"
246
+ end
247
+
248
+ # @private
249
+ def failure_message_when_negated
250
+ "expected given block not to yield with no arguments, but #{negative_failure_reason}"
251
+ end
252
+
253
+ # @private
254
+ def supports_block_expectations?
255
+ true
256
+ end
257
+
258
+ private
259
+
260
+ def positive_failure_reason
261
+ return 'was not a block' unless @probe.has_block?
262
+ return 'did not yield' if @probe.num_yields.zero?
263
+ "yielded with arguments: #{description_of @probe.single_yield_args}"
264
+ end
265
+
266
+ def negative_failure_reason
267
+ return 'was not a block' unless @probe.has_block?
268
+ 'did'
269
+ end
270
+ end
271
+
272
+ # @api private
273
+ # Provides the implementation for `yield_with_args`.
274
+ # Not intended to be instantiated directly.
275
+ class YieldWithArgs < BaseMatcher
276
+ def initialize(*args)
277
+ @expected = args
278
+ end
279
+
280
+ # @private
281
+ def matches?(block)
282
+ @args_matched_when_yielded = true
283
+ @probe = YieldProbe.new(block) do
284
+ @actual = @probe.single_yield_args
285
+ @actual_formatted = actual_formatted
286
+ @args_matched_when_yielded &&= args_currently_match?
287
+ end
288
+ return false unless @probe.has_block?
289
+ @probe.probe
290
+ @probe.yielded_once?(:yield_with_args) && @args_matched_when_yielded
291
+ end
292
+
293
+ # @private
294
+ def does_not_match?(block)
295
+ !matches?(block) && @probe.has_block?
296
+ end
297
+
298
+ # @private
299
+ def failure_message
300
+ "expected given block to yield with arguments, but #{positive_failure_reason}"
301
+ end
302
+
303
+ # @private
304
+ def failure_message_when_negated
305
+ "expected given block not to yield with arguments, but #{negative_failure_reason}"
306
+ end
307
+
308
+ # @private
309
+ def description
310
+ desc = 'yield with args'
311
+ desc = "#{desc}(#{expected_arg_description})" unless @expected.empty?
312
+ desc
313
+ end
314
+
315
+ # @private
316
+ def supports_block_expectations?
317
+ true
318
+ end
319
+
320
+ private
321
+
322
+ def positive_failure_reason
323
+ return 'was not a block' unless @probe.has_block?
324
+ return 'did not yield' if @probe.num_yields.zero?
325
+ @positive_args_failure
326
+ end
327
+
328
+ def expected_arg_description
329
+ @expected.map { |e| description_of e }.join(', ')
330
+ end
331
+
332
+ def negative_failure_reason
333
+ if !@probe.has_block?
334
+ 'was not a block'
335
+ elsif @args_matched_when_yielded && !@expected.empty?
336
+ 'yielded with expected arguments' \
337
+ "\nexpected not: #{surface_descriptions_in(@expected).inspect}" \
338
+ "\n got: #{@actual_formatted}"
339
+ else
340
+ 'did'
341
+ end
342
+ end
343
+
344
+ def args_currently_match?
345
+ if @expected.empty? # expect {...}.to yield_with_args
346
+ @positive_args_failure = 'yielded with no arguments' if @actual.empty?
347
+ return !@actual.empty?
348
+ end
349
+
350
+ unless (match = all_args_match?)
351
+ @positive_args_failure = 'yielded with unexpected arguments' \
352
+ "\nexpected: #{surface_descriptions_in(@expected).inspect}" \
353
+ "\n got: #{@actual_formatted}"
354
+ end
355
+
356
+ match
357
+ end
358
+
359
+ def all_args_match?
360
+ values_match?(@expected, @actual)
361
+ end
362
+ end
363
+
364
+ # @api private
365
+ # Provides the implementation for `yield_successive_args`.
366
+ # Not intended to be instantiated directly.
367
+ class YieldSuccessiveArgs < BaseMatcher
368
+ def initialize(*args)
369
+ @expected = args
370
+ end
371
+
372
+ # @private
373
+ def matches?(block)
374
+ @actual_formatted = []
375
+ @actual = []
376
+ args_matched_when_yielded = true
377
+ yield_count = 0
378
+
379
+ @probe = YieldProbe.probe(block) do |*arg_array|
380
+ arg_or_args = arg_array.size == 1 ? arg_array.first : arg_array
381
+ @actual_formatted << RSpec::Support::ObjectFormatter.format(arg_or_args)
382
+ @actual << arg_or_args
383
+ args_matched_when_yielded &&= values_match?(@expected[yield_count], arg_or_args)
384
+ yield_count += 1
385
+ end
386
+
387
+ return false unless @probe.has_block?
388
+ args_matched_when_yielded && yield_count == @expected.length
389
+ end
390
+
391
+ def does_not_match?(block)
392
+ !matches?(block) && @probe.has_block?
393
+ end
394
+
395
+ # @private
396
+ def failure_message
397
+ 'expected given block to yield successively with arguments, ' \
398
+ "but #{positive_failure_reason}"
399
+ end
400
+
401
+ # @private
402
+ def failure_message_when_negated
403
+ 'expected given block not to yield successively with arguments, ' \
404
+ "but #{negative_failure_reason}"
405
+ end
406
+
407
+ # @private
408
+ def description
409
+ "yield successive args(#{expected_arg_description})"
410
+ end
411
+
412
+ # @private
413
+ def supports_block_expectations?
414
+ true
415
+ end
416
+
417
+ private
418
+
419
+ def expected_arg_description
420
+ @expected.map { |e| description_of e }.join(', ')
421
+ end
422
+
423
+ def positive_failure_reason
424
+ return 'was not a block' unless @probe.has_block?
425
+
426
+ 'yielded with unexpected arguments' \
427
+ "\nexpected: #{surface_descriptions_in(@expected).inspect}" \
428
+ "\n got: [#{@actual_formatted.join(", ")}]"
429
+ end
430
+
431
+ def negative_failure_reason
432
+ return 'was not a block' unless @probe.has_block?
433
+
434
+ 'yielded with expected arguments' \
435
+ "\nexpected not: #{surface_descriptions_in(@expected).inspect}" \
436
+ "\n got: [#{@actual_formatted.join(", ")}]"
437
+ end
438
+ end
439
+ end
440
+ end
441
+ end
@@ -0,0 +1,171 @@
1
+ RSpec::Support.require_rspec_support "fuzzy_matcher"
2
+
3
+ module RSpec
4
+ module Matchers
5
+ # Mixin designed to support the composable matcher features
6
+ # of RSpec 3+. Mix it into your custom matcher classes to
7
+ # allow them to be used in a composable fashion.
8
+ #
9
+ # @api public
10
+ module Composable
11
+ # Creates a compound `and` expectation. The matcher will
12
+ # only pass if both sub-matchers pass.
13
+ # This can be chained together to form an arbitrarily long
14
+ # chain of matchers.
15
+ #
16
+ # @example
17
+ # expect(alphabet).to start_with("a").and end_with("z")
18
+ # expect(alphabet).to start_with("a") & end_with("z")
19
+ #
20
+ # @note The negative form (`expect(...).not_to matcher.and other`)
21
+ # is not supported at this time.
22
+ def and(matcher)
23
+ BuiltIn::Compound::And.new self, matcher
24
+ end
25
+ alias & and
26
+
27
+ # Creates a compound `or` expectation. The matcher will
28
+ # pass if either sub-matcher passes.
29
+ # This can be chained together to form an arbitrarily long
30
+ # chain of matchers.
31
+ #
32
+ # @example
33
+ # expect(stoplight.color).to eq("red").or eq("green").or eq("yellow")
34
+ # expect(stoplight.color).to eq("red") | eq("green") | eq("yellow")
35
+ #
36
+ # @note The negative form (`expect(...).not_to matcher.or other`)
37
+ # is not supported at this time.
38
+ def or(matcher)
39
+ BuiltIn::Compound::Or.new self, matcher
40
+ end
41
+ alias | or
42
+
43
+ # Delegates to `#matches?`. Allows matchers to be used in composable
44
+ # fashion and also supports using matchers in case statements.
45
+ def ===(value)
46
+ matches?(value)
47
+ end
48
+
49
+ private
50
+
51
+ # This provides a generic way to fuzzy-match an expected value against
52
+ # an actual value. It understands nested data structures (e.g. hashes
53
+ # and arrays) and is able to match against a matcher being used as
54
+ # the expected value or within the expected value at any level of
55
+ # nesting.
56
+ #
57
+ # Within a custom matcher you are encouraged to use this whenever your
58
+ # matcher needs to match two values, unless it needs more precise semantics.
59
+ # For example, the `eq` matcher _does not_ use this as it is meant to
60
+ # use `==` (and only `==`) for matching.
61
+ #
62
+ # @param expected [Object] what is expected
63
+ # @param actual [Object] the actual value
64
+ #
65
+ # @!visibility public
66
+ def values_match?(expected, actual)
67
+ expected = with_matchers_cloned(expected)
68
+ Support::FuzzyMatcher.values_match?(expected, actual)
69
+ end
70
+
71
+ # Returns the description of the given object in a way that is
72
+ # aware of composed matchers. If the object is a matcher with
73
+ # a `description` method, returns the description; otherwise
74
+ # returns `object.inspect`.
75
+ #
76
+ # You are encouraged to use this in your custom matcher's
77
+ # `description`, `failure_message` or
78
+ # `failure_message_when_negated` implementation if you are
79
+ # supporting matcher arguments.
80
+ #
81
+ # @!visibility public
82
+ def description_of(object)
83
+ RSpec::Support::ObjectFormatter.format(object)
84
+ end
85
+
86
+ # Transforms the given data structue (typically a hash or array)
87
+ # into a new data structure that, when `#inspect` is called on it,
88
+ # will provide descriptions of any contained matchers rather than
89
+ # the normal `#inspect` output.
90
+ #
91
+ # You are encouraged to use this in your custom matcher's
92
+ # `description`, `failure_message` or
93
+ # `failure_message_when_negated` implementation if you are
94
+ # supporting any arguments which may be a data structure
95
+ # containing matchers.
96
+ #
97
+ # @!visibility public
98
+ def surface_descriptions_in(item)
99
+ if Matchers.is_a_describable_matcher?(item)
100
+ DescribableItem.new(item)
101
+ elsif Hash === item
102
+ Hash[surface_descriptions_in(item.to_a)]
103
+ elsif Struct === item || unreadable_io?(item)
104
+ RSpec::Support::ObjectFormatter.format(item)
105
+ elsif should_enumerate?(item)
106
+ item.map { |subitem| surface_descriptions_in(subitem) }
107
+ else
108
+ item
109
+ end
110
+ end
111
+
112
+ # @private
113
+ # Historically, a single matcher instance was only checked
114
+ # against a single value. Given that the matcher was only
115
+ # used once, it's been common to memoize some intermediate
116
+ # calculation that is derived from the `actual` value in
117
+ # order to reuse that intermediate result in the failure
118
+ # message.
119
+ #
120
+ # This can cause a problem when using such a matcher as an
121
+ # argument to another matcher in a composed matcher expression,
122
+ # since the matcher instance may be checked against multiple
123
+ # values and produce invalid results due to the memoization.
124
+ #
125
+ # To deal with this, we clone any matchers in `expected` via
126
+ # this method when using `values_match?`, so that any memoization
127
+ # does not "leak" between checks.
128
+ def with_matchers_cloned(object)
129
+ if Matchers.is_a_matcher?(object)
130
+ object.clone
131
+ elsif Hash === object
132
+ Hash[with_matchers_cloned(object.to_a)]
133
+ elsif should_enumerate?(object)
134
+ object.map { |subobject| with_matchers_cloned(subobject) }
135
+ else
136
+ object
137
+ end
138
+ end
139
+
140
+ # @api private
141
+ # We should enumerate arrays as long as they are not recursive.
142
+ def should_enumerate?(item)
143
+ Array === item && item.none? { |subitem| subitem.equal?(item) }
144
+ end
145
+
146
+ # @api private
147
+ def unreadable_io?(object)
148
+ return false unless IO === object
149
+ object.each {} # STDOUT is enumerable but raises an error
150
+ false
151
+ rescue IOError
152
+ true
153
+ end
154
+ module_function :surface_descriptions_in, :should_enumerate?, :unreadable_io?
155
+
156
+ # Wraps an item in order to surface its `description` via `inspect`.
157
+ # @api private
158
+ DescribableItem = Struct.new(:item) do
159
+ # Inspectable version of the item description
160
+ def inspect
161
+ "(#{item.description})"
162
+ end
163
+
164
+ # A pretty printed version of the item description.
165
+ def pretty_print(pp)
166
+ pp.text "(#{item.description})"
167
+ end
168
+ end
169
+ end
170
+ end
171
+ end