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,127 @@
1
+ The "Artistic License"
2
+
3
+ Preamble
4
+
5
+ The intent of this document is to state the conditions under which a
6
+ Package may be copied, such that the Copyright Holder maintains some
7
+ semblance of artistic control over the development of the package,
8
+ while giving the users of the package the right to use and distribute
9
+ the Package in a more-or-less customary fashion, plus the right to make
10
+ reasonable modifications.
11
+
12
+ Definitions:
13
+
14
+ "Package" refers to the collection of files distributed by the
15
+ Copyright Holder, and derivatives of that collection of files
16
+ created through textual modification.
17
+
18
+ "Standard Version" refers to such a Package if it has not been
19
+ modified, or has been modified in accordance with the wishes
20
+ of the Copyright Holder as specified below.
21
+
22
+ "Copyright Holder" is whoever is named in the copyright or
23
+ copyrights for the package.
24
+
25
+ "You" is you, if you're thinking about copying or distributing
26
+ this Package.
27
+
28
+ "Reasonable copying fee" is whatever you can justify on the
29
+ basis of media cost, duplication charges, time of people involved,
30
+ and so on. (You will not be required to justify it to the
31
+ Copyright Holder, but only to the computing community at large
32
+ as a market that must bear the fee.)
33
+
34
+ "Freely Available" means that no fee is charged for the item
35
+ itself, though there may be fees involved in handling the item.
36
+ It also means that recipients of the item may redistribute it
37
+ under the same conditions they received it.
38
+
39
+ 1. You may make and give away verbatim copies of the source form of the
40
+ Standard Version of this Package without restriction, provided that you
41
+ duplicate all of the original copyright notices and associated disclaimers.
42
+
43
+ 2. You may apply bug fixes, portability fixes and other modifications
44
+ derived from the Public Domain or from the Copyright Holder. A Package
45
+ modified in such a way shall still be considered the Standard Version.
46
+
47
+ 3. You may otherwise modify your copy of this Package in any way, provided
48
+ that you insert a prominent notice in each changed file stating how and
49
+ when you changed that file, and provided that you do at least ONE of the
50
+ following:
51
+
52
+ a) place your modifications in the Public Domain or otherwise make them
53
+ Freely Available, such as by posting said modifications to Usenet or
54
+ an equivalent medium, or placing the modifications on a major archive
55
+ site such as uunet.uu.net, or by allowing the Copyright Holder to include
56
+ your modifications in the Standard Version of the Package.
57
+
58
+ b) use the modified Package only within your corporation or organization.
59
+
60
+ c) rename any non-standard executables so the names do not conflict
61
+ with standard executables, which must also be provided, and provide
62
+ a separate manual page for each non-standard executable that clearly
63
+ documents how it differs from the Standard Version.
64
+
65
+ d) make other distribution arrangements with the Copyright Holder.
66
+
67
+ 4. You may distribute the programs of this Package in object code or
68
+ executable form, provided that you do at least ONE of the following:
69
+
70
+ a) distribute a Standard Version of the executables and library files,
71
+ together with instructions (in the manual page or equivalent) on where
72
+ to get the Standard Version.
73
+
74
+ b) accompany the distribution with the machine-readable source of
75
+ the Package with your modifications.
76
+
77
+ c) give non-standard executables non-standard names, and clearly
78
+ document the differences in manual pages (or equivalent), together
79
+ with instructions on where to get the Standard Version.
80
+
81
+ d) make other distribution arrangements with the Copyright Holder.
82
+
83
+ 5. You may charge a reasonable copying fee for any distribution of this
84
+ Package. You may charge any fee you choose for support of this
85
+ Package. You may not charge a fee for this Package itself. However,
86
+ you may distribute this Package in aggregate with other (possibly
87
+ commercial) programs as part of a larger (possibly commercial) software
88
+ distribution provided that you do not advertise this Package as a
89
+ product of your own. You may embed this Package's interpreter within
90
+ an executable of yours (by linking); this shall be construed as a mere
91
+ form of aggregation, provided that the complete Standard Version of the
92
+ interpreter is so embedded.
93
+
94
+ 6. The scripts and library files supplied as input to or produced as
95
+ output from the programs of this Package do not automatically fall
96
+ under the copyright of this Package, but belong to whoever generated
97
+ them, and may be sold commercially, and may be aggregated with this
98
+ Package. If such scripts or library files are aggregated with this
99
+ Package via the so-called "undump" or "unexec" methods of producing a
100
+ binary executable image, then distribution of such an image shall
101
+ neither be construed as a distribution of this Package nor shall it
102
+ fall under the restrictions of Paragraphs 3 and 4, provided that you do
103
+ not represent such an executable image as a Standard Version of this
104
+ Package.
105
+
106
+ 7. C subroutines (or comparably compiled subroutines in other
107
+ languages) supplied by you and linked into this Package in order to
108
+ emulate subroutines and variables of the language defined by this
109
+ Package shall not be considered part of this Package, but are the
110
+ equivalent of input as in Paragraph 6, provided these subroutines do
111
+ not change the language in any way that would cause it to fail the
112
+ regression tests for the language.
113
+
114
+ 8. Aggregation of this Package with a commercial distribution is always
115
+ permitted provided that the use of this Package is embedded; that is,
116
+ when no overt attempt is made to make this Package's interfaces visible
117
+ to the end user of the commercial distribution. Such use shall not be
118
+ construed as a distribution of this Package.
119
+
120
+ 9. The name of the Copyright Holder may not be used to endorse or promote
121
+ products derived from this software without specific prior written permission.
122
+
123
+ 10. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
124
+ IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
125
+ WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
126
+
127
+ The End
@@ -0,0 +1,3 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'diff/lcs'
@@ -0,0 +1,739 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Diff; end unless defined? Diff # rubocop:disable Style/Documentation
4
+
5
+ # == How Diff Works (by Mark-Jason Dominus)
6
+ #
7
+ # I once read an article written by the authors of +diff+; they said that they
8
+ # hard worked very hard on the algorithm until they found the right one.
9
+ #
10
+ # I think what they ended up using (and I hope someone will correct me, because
11
+ # I am not very confident about this) was the `longest common subsequence'
12
+ # method. In the LCS problem, you have two sequences of items:
13
+ #
14
+ # a b c d f g h j q z
15
+ # a b c d e f g i j k r x y z
16
+ #
17
+ # and you want to find the longest sequence of items that is present in both
18
+ # original sequences in the same order. That is, you want to find a new
19
+ # sequence *S* which can be obtained from the first sequence by deleting some
20
+ # items, and from the second sequence by deleting other items. You also want
21
+ # *S* to be as long as possible. In this case *S* is:
22
+ #
23
+ # a b c d f g j z
24
+ #
25
+ # From there it's only a small step to get diff-like output:
26
+ #
27
+ # e h i k q r x y
28
+ # + - + + - + + +
29
+ #
30
+ # This module solves the LCS problem. It also includes a canned function to
31
+ # generate +diff+-like output.
32
+ #
33
+ # It might seem from the example above that the LCS of two sequences is always
34
+ # pretty obvious, but that's not always the case, especially when the two
35
+ # sequences have many repeated elements. For example, consider
36
+ #
37
+ # a x b y c z p d q
38
+ # a b c a x b y c z
39
+ #
40
+ # A naive approach might start by matching up the +a+ and +b+ that appear at
41
+ # the beginning of each sequence, like this:
42
+ #
43
+ # a x b y c z p d q
44
+ # a b c a b y c z
45
+ #
46
+ # This finds the common subsequence +a b c z+. But actually, the LCS is +a x b
47
+ # y c z+:
48
+ #
49
+ # a x b y c z p d q
50
+ # a b c a x b y c z
51
+ module Diff::LCS
52
+ VERSION = '1.4.4'
53
+ end
54
+
55
+ require 'diff/lcs/callbacks'
56
+ require 'diff/lcs/internals'
57
+
58
+ module Diff::LCS # rubocop:disable Style/Documentation
59
+ # Returns an Array containing the longest common subsequence(s) between
60
+ # +self+ and +other+. See Diff::LCS#lcs.
61
+ #
62
+ # lcs = seq1.lcs(seq2)
63
+ #
64
+ # A note when using objects: Diff::LCS only works properly when each object
65
+ # can be used as a key in a Hash, which typically means that the objects must
66
+ # implement Object#eql? in a way that two identical values compare
67
+ # identically for key purposes. That is:
68
+ #
69
+ # O.new('a').eql?(O.new('a')) == true
70
+ def lcs(other, &block) #:yields self[i] if there are matched subsequences:
71
+ Diff::LCS.lcs(self, other, &block)
72
+ end
73
+
74
+ # Returns the difference set between +self+ and +other+. See Diff::LCS#diff.
75
+ def diff(other, callbacks = nil, &block)
76
+ Diff::LCS.diff(self, other, callbacks, &block)
77
+ end
78
+
79
+ # Returns the balanced ("side-by-side") difference set between +self+ and
80
+ # +other+. See Diff::LCS#sdiff.
81
+ def sdiff(other, callbacks = nil, &block)
82
+ Diff::LCS.sdiff(self, other, callbacks, &block)
83
+ end
84
+
85
+ # Traverses the discovered longest common subsequences between +self+ and
86
+ # +other+. See Diff::LCS#traverse_sequences.
87
+ def traverse_sequences(other, callbacks = nil, &block)
88
+ traverse_sequences(self, other, callbacks || Diff::LCS::SequenceCallbacks, &block)
89
+ end
90
+
91
+ # Traverses the discovered longest common subsequences between +self+ and
92
+ # +other+ using the alternate, balanced algorithm. See
93
+ # Diff::LCS#traverse_balanced.
94
+ def traverse_balanced(other, callbacks = nil, &block)
95
+ traverse_balanced(self, other, callbacks || Diff::LCS::BalancedCallbacks, &block)
96
+ end
97
+
98
+ # Attempts to patch +self+ with the provided +patchset+. A new sequence based
99
+ # on +self+ and the +patchset+ will be created. See Diff::LCS#patch. Attempts
100
+ # to autodiscover the direction of the patch.
101
+ def patch(patchset)
102
+ Diff::LCS.patch(self, patchset)
103
+ end
104
+ alias unpatch patch
105
+
106
+ # Attempts to patch +self+ with the provided +patchset+. A new sequence based
107
+ # on +self+ and the +patchset+ will be created. See Diff::LCS#patch. Does no
108
+ # patch direction autodiscovery.
109
+ def patch!(patchset)
110
+ Diff::LCS.patch!(self, patchset)
111
+ end
112
+
113
+ # Attempts to unpatch +self+ with the provided +patchset+. A new sequence
114
+ # based on +self+ and the +patchset+ will be created. See Diff::LCS#unpatch.
115
+ # Does no patch direction autodiscovery.
116
+ def unpatch!(patchset)
117
+ Diff::LCS.unpatch!(self, patchset)
118
+ end
119
+
120
+ # Attempts to patch +self+ with the provided +patchset+, using #patch!. If
121
+ # the sequence this is used on supports #replace, the value of +self+ will be
122
+ # replaced. See Diff::LCS#patch. Does no patch direction autodiscovery.
123
+ def patch_me(patchset)
124
+ if respond_to? :replace
125
+ replace(patch!(patchset))
126
+ else
127
+ patch!(patchset)
128
+ end
129
+ end
130
+
131
+ # Attempts to unpatch +self+ with the provided +patchset+, using #unpatch!.
132
+ # If the sequence this is used on supports #replace, the value of +self+ will
133
+ # be replaced. See Diff::LCS#unpatch. Does no patch direction autodiscovery.
134
+ def unpatch_me(patchset)
135
+ if respond_to? :replace
136
+ replace(unpatch!(patchset))
137
+ else
138
+ unpatch!(patchset)
139
+ end
140
+ end
141
+ end
142
+
143
+ class << Diff::LCS
144
+ def lcs(seq1, seq2, &block) #:yields seq1[i] for each matched:
145
+ matches = Diff::LCS::Internals.lcs(seq1, seq2)
146
+ ret = []
147
+ string = seq1.kind_of? String
148
+ matches.each_with_index do |_e, i|
149
+ next if matches[i].nil?
150
+
151
+ v = string ? seq1[i, 1] : seq1[i]
152
+ v = block[v] if block
153
+ ret << v
154
+ end
155
+ ret
156
+ end
157
+ alias LCS lcs
158
+
159
+ # #diff computes the smallest set of additions and deletions necessary to
160
+ # turn the first sequence into the second, and returns a description of these
161
+ # changes.
162
+ #
163
+ # See Diff::LCS::DiffCallbacks for the default behaviour. An alternate
164
+ # behaviour may be implemented with Diff::LCS::ContextDiffCallbacks. If a
165
+ # Class argument is provided for +callbacks+, #diff will attempt to
166
+ # initialise it. If the +callbacks+ object (possibly initialised) responds to
167
+ # #finish, it will be called.
168
+ def diff(seq1, seq2, callbacks = nil, &block) # :yields diff changes:
169
+ diff_traversal(:diff, seq1, seq2, callbacks || Diff::LCS::DiffCallbacks, &block)
170
+ end
171
+
172
+ # #sdiff computes all necessary components to show two sequences and their
173
+ # minimized differences side by side, just like the Unix utility
174
+ # <em>sdiff</em> does:
175
+ #
176
+ # old < -
177
+ # same same
178
+ # before | after
179
+ # - > new
180
+ #
181
+ # See Diff::LCS::SDiffCallbacks for the default behaviour. An alternate
182
+ # behaviour may be implemented with Diff::LCS::ContextDiffCallbacks. If a
183
+ # Class argument is provided for +callbacks+, #diff will attempt to
184
+ # initialise it. If the +callbacks+ object (possibly initialised) responds to
185
+ # #finish, it will be called.
186
+ #
187
+ # Each element of a returned array is a Diff::LCS::ContextChange object,
188
+ # which can be implicitly converted to an array.
189
+ #
190
+ # Diff::LCS.sdiff(a, b).each do |action, (old_pos, old_element), (new_pos, new_element)|
191
+ # case action
192
+ # when '!'
193
+ # # replace
194
+ # when '-'
195
+ # # delete
196
+ # when '+'
197
+ # # insert
198
+ # end
199
+ # end
200
+ def sdiff(seq1, seq2, callbacks = nil, &block) #:yields diff changes:
201
+ diff_traversal(:sdiff, seq1, seq2, callbacks || Diff::LCS::SDiffCallbacks, &block)
202
+ end
203
+
204
+ # #traverse_sequences is the most general facility provided by this module;
205
+ # #diff and #lcs are implemented as calls to it.
206
+ #
207
+ # The arguments to #traverse_sequences are the two sequences to traverse, and
208
+ # a callback object, like this:
209
+ #
210
+ # traverse_sequences(seq1, seq2, Diff::LCS::ContextDiffCallbacks.new)
211
+ #
212
+ # == Callback Methods
213
+ #
214
+ # Optional callback methods are <em>emphasized</em>.
215
+ #
216
+ # callbacks#match:: Called when +a+ and +b+ are pointing to
217
+ # common elements in +A+ and +B+.
218
+ # callbacks#discard_a:: Called when +a+ is pointing to an
219
+ # element not in +B+.
220
+ # callbacks#discard_b:: Called when +b+ is pointing to an
221
+ # element not in +A+.
222
+ # <em>callbacks#finished_a</em>:: Called when +a+ has reached the end of
223
+ # sequence +A+.
224
+ # <em>callbacks#finished_b</em>:: Called when +b+ has reached the end of
225
+ # sequence +B+.
226
+ #
227
+ # == Algorithm
228
+ #
229
+ # a---+
230
+ # v
231
+ # A = a b c e h j l m n p
232
+ # B = b c d e f j k l m r s t
233
+ # ^
234
+ # b---+
235
+ #
236
+ # If there are two arrows (+a+ and +b+) pointing to elements of sequences +A+
237
+ # and +B+, the arrows will initially point to the first elements of their
238
+ # respective sequences. #traverse_sequences will advance the arrows through
239
+ # the sequences one element at a time, calling a method on the user-specified
240
+ # callback object before each advance. It will advance the arrows in such a
241
+ # way that if there are elements <tt>A[i]</tt> and <tt>B[j]</tt> which are
242
+ # both equal and part of the longest common subsequence, there will be some
243
+ # moment during the execution of #traverse_sequences when arrow +a+ is
244
+ # pointing to <tt>A[i]</tt> and arrow +b+ is pointing to <tt>B[j]</tt>. When
245
+ # this happens, #traverse_sequences will call <tt>callbacks#match</tt> and
246
+ # then it will advance both arrows.
247
+ #
248
+ # Otherwise, one of the arrows is pointing to an element of its sequence that
249
+ # is not part of the longest common subsequence. #traverse_sequences will
250
+ # advance that arrow and will call <tt>callbacks#discard_a</tt> or
251
+ # <tt>callbacks#discard_b</tt>, depending on which arrow it advanced. If both
252
+ # arrows point to elements that are not part of the longest common
253
+ # subsequence, then #traverse_sequences will advance one of them and call the
254
+ # appropriate callback, but it is not specified which it will call.
255
+ #
256
+ # The methods for <tt>callbacks#match</tt>, <tt>callbacks#discard_a</tt>, and
257
+ # <tt>callbacks#discard_b</tt> are invoked with an event comprising the
258
+ # action ("=", "+", or "-", respectively), the indicies +i+ and +j+, and the
259
+ # elements <tt>A[i]</tt> and <tt>B[j]</tt>. Return values are discarded by
260
+ # #traverse_sequences.
261
+ #
262
+ # === End of Sequences
263
+ #
264
+ # If arrow +a+ reaches the end of its sequence before arrow +b+ does,
265
+ # #traverse_sequence will try to call <tt>callbacks#finished_a</tt> with the
266
+ # last index and element of +A+ (<tt>A[-1]</tt>) and the current index and
267
+ # element of +B+ (<tt>B[j]</tt>). If <tt>callbacks#finished_a</tt> does not
268
+ # exist, then <tt>callbacks#discard_b</tt> will be called on each element of
269
+ # +B+ until the end of the sequence is reached (the call will be done with
270
+ # <tt>A[-1]</tt> and <tt>B[j]</tt> for each element).
271
+ #
272
+ # If +b+ reaches the end of +B+ before +a+ reaches the end of +A+,
273
+ # <tt>callbacks#finished_b</tt> will be called with the current index and
274
+ # element of +A+ (<tt>A[i]</tt>) and the last index and element of +B+
275
+ # (<tt>A[-1]</tt>). Again, if <tt>callbacks#finished_b</tt> does not exist on
276
+ # the callback object, then <tt>callbacks#discard_a</tt> will be called on
277
+ # each element of +A+ until the end of the sequence is reached (<tt>A[i]</tt>
278
+ # and <tt>B[-1]</tt>).
279
+ #
280
+ # There is a chance that one additional <tt>callbacks#discard_a</tt> or
281
+ # <tt>callbacks#discard_b</tt> will be called after the end of the sequence
282
+ # is reached, if +a+ has not yet reached the end of +A+ or +b+ has not yet
283
+ # reached the end of +B+.
284
+ def traverse_sequences(seq1, seq2, callbacks = Diff::LCS::SequenceCallbacks) #:yields change events:
285
+ callbacks ||= Diff::LCS::SequenceCallbacks
286
+ matches = Diff::LCS::Internals.lcs(seq1, seq2)
287
+
288
+ run_finished_a = run_finished_b = false
289
+ string = seq1.kind_of?(String)
290
+
291
+ a_size = seq1.size
292
+ b_size = seq2.size
293
+ ai = bj = 0
294
+
295
+ (0..matches.size).each do |i|
296
+ b_line = matches[i]
297
+
298
+ ax = string ? seq1[i, 1] : seq1[i]
299
+ bx = string ? seq2[bj, 1] : seq2[bj]
300
+
301
+ if b_line.nil?
302
+ unless ax.nil? or (string and ax.empty?)
303
+ event = Diff::LCS::ContextChange.new('-', i, ax, bj, bx)
304
+ event = yield event if block_given?
305
+ callbacks.discard_a(event)
306
+ end
307
+ else
308
+ loop do
309
+ break unless bj < b_line
310
+
311
+ bx = string ? seq2[bj, 1] : seq2[bj]
312
+ event = Diff::LCS::ContextChange.new('+', i, ax, bj, bx)
313
+ event = yield event if block_given?
314
+ callbacks.discard_b(event)
315
+ bj += 1
316
+ end
317
+ bx = string ? seq2[bj, 1] : seq2[bj]
318
+ event = Diff::LCS::ContextChange.new('=', i, ax, bj, bx)
319
+ event = yield event if block_given?
320
+ callbacks.match(event)
321
+ bj += 1
322
+ end
323
+ ai = i
324
+ end
325
+ ai += 1
326
+
327
+ # The last entry (if any) processed was a match. +ai+ and +bj+ point just
328
+ # past the last matching lines in their sequences.
329
+ while (ai < a_size) or (bj < b_size)
330
+ # last A?
331
+ if ai == a_size and bj < b_size
332
+ if callbacks.respond_to?(:finished_a) and !run_finished_a
333
+ ax = string ? seq1[-1, 1] : seq1[-1]
334
+ bx = string ? seq2[bj, 1] : seq2[bj]
335
+ event = Diff::LCS::ContextChange.new('>', (a_size - 1), ax, bj, bx)
336
+ event = yield event if block_given?
337
+ callbacks.finished_a(event)
338
+ run_finished_a = true
339
+ else
340
+ ax = string ? seq1[ai, 1] : seq1[ai]
341
+ loop do
342
+ bx = string ? seq2[bj, 1] : seq2[bj]
343
+ event = Diff::LCS::ContextChange.new('+', ai, ax, bj, bx)
344
+ event = yield event if block_given?
345
+ callbacks.discard_b(event)
346
+ bj += 1
347
+ break unless bj < b_size
348
+ end
349
+ end
350
+ end
351
+
352
+ # last B?
353
+ if bj == b_size and ai < a_size
354
+ if callbacks.respond_to?(:finished_b) and !run_finished_b
355
+ ax = string ? seq1[ai, 1] : seq1[ai]
356
+ bx = string ? seq2[-1, 1] : seq2[-1]
357
+ event = Diff::LCS::ContextChange.new('<', ai, ax, (b_size - 1), bx)
358
+ event = yield event if block_given?
359
+ callbacks.finished_b(event)
360
+ run_finished_b = true
361
+ else
362
+ bx = string ? seq2[bj, 1] : seq2[bj]
363
+ loop do
364
+ ax = string ? seq1[ai, 1] : seq1[ai]
365
+ event = Diff::LCS::ContextChange.new('-', ai, ax, bj, bx)
366
+ event = yield event if block_given?
367
+ callbacks.discard_a(event)
368
+ ai += 1
369
+ break unless bj < b_size
370
+ end
371
+ end
372
+ end
373
+
374
+ if ai < a_size
375
+ ax = string ? seq1[ai, 1] : seq1[ai]
376
+ bx = string ? seq2[bj, 1] : seq2[bj]
377
+ event = Diff::LCS::ContextChange.new('-', ai, ax, bj, bx)
378
+ event = yield event if block_given?
379
+ callbacks.discard_a(event)
380
+ ai += 1
381
+ end
382
+
383
+ next unless bj < b_size
384
+
385
+ ax = string ? seq1[ai, 1] : seq1[ai]
386
+ bx = string ? seq2[bj, 1] : seq2[bj]
387
+ event = Diff::LCS::ContextChange.new('+', ai, ax, bj, bx)
388
+ event = yield event if block_given?
389
+ callbacks.discard_b(event)
390
+ bj += 1
391
+ end
392
+ end
393
+
394
+ # #traverse_balanced is an alternative to #traverse_sequences. It uses a
395
+ # different algorithm to iterate through the entries in the computed longest
396
+ # common subsequence. Instead of viewing the changes as insertions or
397
+ # deletions from one of the sequences, #traverse_balanced will report
398
+ # <em>changes</em> between the sequences.
399
+ #
400
+ # The arguments to #traverse_balanced are the two sequences to traverse and a
401
+ # callback object, like this:
402
+ #
403
+ # traverse_balanced(seq1, seq2, Diff::LCS::ContextDiffCallbacks.new)
404
+ #
405
+ # #sdiff is implemented with #traverse_balanced.
406
+ #
407
+ # == Callback Methods
408
+ #
409
+ # Optional callback methods are <em>emphasized</em>.
410
+ #
411
+ # callbacks#match:: Called when +a+ and +b+ are pointing to
412
+ # common elements in +A+ and +B+.
413
+ # callbacks#discard_a:: Called when +a+ is pointing to an
414
+ # element not in +B+.
415
+ # callbacks#discard_b:: Called when +b+ is pointing to an
416
+ # element not in +A+.
417
+ # <em>callbacks#change</em>:: Called when +a+ and +b+ are pointing to
418
+ # the same relative position, but
419
+ # <tt>A[a]</tt> and <tt>B[b]</tt> are not
420
+ # the same; a <em>change</em> has
421
+ # occurred.
422
+ #
423
+ # #traverse_balanced might be a bit slower than #traverse_sequences,
424
+ # noticable only while processing huge amounts of data.
425
+ #
426
+ # == Algorithm
427
+ #
428
+ # a---+
429
+ # v
430
+ # A = a b c e h j l m n p
431
+ # B = b c d e f j k l m r s t
432
+ # ^
433
+ # b---+
434
+ #
435
+ # === Matches
436
+ #
437
+ # If there are two arrows (+a+ and +b+) pointing to elements of sequences +A+
438
+ # and +B+, the arrows will initially point to the first elements of their
439
+ # respective sequences. #traverse_sequences will advance the arrows through
440
+ # the sequences one element at a time, calling a method on the user-specified
441
+ # callback object before each advance. It will advance the arrows in such a
442
+ # way that if there are elements <tt>A[i]</tt> and <tt>B[j]</tt> which are
443
+ # both equal and part of the longest common subsequence, there will be some
444
+ # moment during the execution of #traverse_sequences when arrow +a+ is
445
+ # pointing to <tt>A[i]</tt> and arrow +b+ is pointing to <tt>B[j]</tt>. When
446
+ # this happens, #traverse_sequences will call <tt>callbacks#match</tt> and
447
+ # then it will advance both arrows.
448
+ #
449
+ # === Discards
450
+ #
451
+ # Otherwise, one of the arrows is pointing to an element of its sequence that
452
+ # is not part of the longest common subsequence. #traverse_sequences will
453
+ # advance that arrow and will call <tt>callbacks#discard_a</tt> or
454
+ # <tt>callbacks#discard_b</tt>, depending on which arrow it advanced.
455
+ #
456
+ # === Changes
457
+ #
458
+ # If both +a+ and +b+ point to elements that are not part of the longest
459
+ # common subsequence, then #traverse_sequences will try to call
460
+ # <tt>callbacks#change</tt> and advance both arrows. If
461
+ # <tt>callbacks#change</tt> is not implemented, then
462
+ # <tt>callbacks#discard_a</tt> and <tt>callbacks#discard_b</tt> will be
463
+ # called in turn.
464
+ #
465
+ # The methods for <tt>callbacks#match</tt>, <tt>callbacks#discard_a</tt>,
466
+ # <tt>callbacks#discard_b</tt>, and <tt>callbacks#change</tt> are invoked
467
+ # with an event comprising the action ("=", "+", "-", or "!", respectively),
468
+ # the indicies +i+ and +j+, and the elements <tt>A[i]</tt> and <tt>B[j]</tt>.
469
+ # Return values are discarded by #traverse_balanced.
470
+ #
471
+ # === Context
472
+ #
473
+ # Note that +i+ and +j+ may not be the same index position, even if +a+ and
474
+ # +b+ are considered to be pointing to matching or changed elements.
475
+ def traverse_balanced(seq1, seq2, callbacks = Diff::LCS::BalancedCallbacks)
476
+ matches = Diff::LCS::Internals.lcs(seq1, seq2)
477
+ a_size = seq1.size
478
+ b_size = seq2.size
479
+ ai = bj = mb = 0
480
+ ma = -1
481
+ string = seq1.kind_of?(String)
482
+
483
+ # Process all the lines in the match vector.
484
+ loop do
485
+ # Find next match indices +ma+ and +mb+
486
+ loop do
487
+ ma += 1
488
+ break unless ma < matches.size and matches[ma].nil?
489
+ end
490
+
491
+ break if ma >= matches.size # end of matches?
492
+
493
+ mb = matches[ma]
494
+
495
+ # Change(seq2)
496
+ while (ai < ma) or (bj < mb)
497
+ ax = string ? seq1[ai, 1] : seq1[ai]
498
+ bx = string ? seq2[bj, 1] : seq2[bj]
499
+
500
+ case [(ai < ma), (bj < mb)]
501
+ when [true, true]
502
+ if callbacks.respond_to?(:change)
503
+ event = Diff::LCS::ContextChange.new('!', ai, ax, bj, bx)
504
+ event = yield event if block_given?
505
+ callbacks.change(event)
506
+ ai += 1
507
+ else
508
+ event = Diff::LCS::ContextChange.new('-', ai, ax, bj, bx)
509
+ event = yield event if block_given?
510
+ callbacks.discard_a(event)
511
+ ai += 1
512
+ ax = string ? seq1[ai, 1] : seq1[ai]
513
+ event = Diff::LCS::ContextChange.new('+', ai, ax, bj, bx)
514
+ event = yield event if block_given?
515
+ callbacks.discard_b(event)
516
+ end
517
+
518
+ bj += 1
519
+ when [true, false]
520
+ event = Diff::LCS::ContextChange.new('-', ai, ax, bj, bx)
521
+ event = yield event if block_given?
522
+ callbacks.discard_a(event)
523
+ ai += 1
524
+ when [false, true]
525
+ event = Diff::LCS::ContextChange.new('+', ai, ax, bj, bx)
526
+ event = yield event if block_given?
527
+ callbacks.discard_b(event)
528
+ bj += 1
529
+ end
530
+ end
531
+
532
+ # Match
533
+ ax = string ? seq1[ai, 1] : seq1[ai]
534
+ bx = string ? seq2[bj, 1] : seq2[bj]
535
+ event = Diff::LCS::ContextChange.new('=', ai, ax, bj, bx)
536
+ event = yield event if block_given?
537
+ callbacks.match(event)
538
+ ai += 1
539
+ bj += 1
540
+ end
541
+
542
+ while (ai < a_size) or (bj < b_size)
543
+ ax = string ? seq1[ai, 1] : seq1[ai]
544
+ bx = string ? seq2[bj, 1] : seq2[bj]
545
+
546
+ case [(ai < a_size), (bj < b_size)]
547
+ when [true, true]
548
+ if callbacks.respond_to?(:change)
549
+ event = Diff::LCS::ContextChange.new('!', ai, ax, bj, bx)
550
+ event = yield event if block_given?
551
+ callbacks.change(event)
552
+ ai += 1
553
+ else
554
+ event = Diff::LCS::ContextChange.new('-', ai, ax, bj, bx)
555
+ event = yield event if block_given?
556
+ callbacks.discard_a(event)
557
+ ai += 1
558
+ ax = string ? seq1[ai, 1] : seq1[ai]
559
+ event = Diff::LCS::ContextChange.new('+', ai, ax, bj, bx)
560
+ event = yield event if block_given?
561
+ callbacks.discard_b(event)
562
+ end
563
+
564
+ bj += 1
565
+ when [true, false]
566
+ event = Diff::LCS::ContextChange.new('-', ai, ax, bj, bx)
567
+ event = yield event if block_given?
568
+ callbacks.discard_a(event)
569
+ ai += 1
570
+ when [false, true]
571
+ event = Diff::LCS::ContextChange.new('+', ai, ax, bj, bx)
572
+ event = yield event if block_given?
573
+ callbacks.discard_b(event)
574
+ bj += 1
575
+ end
576
+ end
577
+ end
578
+
579
+ PATCH_MAP = { #:nodoc:
580
+ :patch => { '+' => '+', '-' => '-', '!' => '!', '=' => '=' }.freeze,
581
+ :unpatch => { '+' => '-', '-' => '+', '!' => '!', '=' => '=' }.freeze
582
+ }.freeze
583
+
584
+ # Applies a +patchset+ to the sequence +src+ according to the +direction+
585
+ # (<tt>:patch</tt> or <tt>:unpatch</tt>), producing a new sequence.
586
+ #
587
+ # If the +direction+ is not specified, Diff::LCS::patch will attempt to
588
+ # discover the direction of the +patchset+.
589
+ #
590
+ # A +patchset+ can be considered to apply forward (<tt>:patch</tt>) if the
591
+ # following expression is true:
592
+ #
593
+ # patch(s1, diff(s1, s2)) -> s2
594
+ #
595
+ # A +patchset+ can be considered to apply backward (<tt>:unpatch</tt>) if the
596
+ # following expression is true:
597
+ #
598
+ # patch(s2, diff(s1, s2)) -> s1
599
+ #
600
+ # If the +patchset+ contains no changes, the +src+ value will be returned as
601
+ # either <tt>src.dup</tt> or +src+. A +patchset+ can be deemed as having no
602
+ # changes if the following predicate returns true:
603
+ #
604
+ # patchset.empty? or
605
+ # patchset.flatten(1).all? { |change| change.unchanged? }
606
+ #
607
+ # === Patchsets
608
+ #
609
+ # A +patchset+ is always an enumerable sequence of changes, hunks of changes,
610
+ # or a mix of the two. A hunk of changes is an enumerable sequence of
611
+ # changes:
612
+ #
613
+ # [ # patchset
614
+ # # change
615
+ # [ # hunk
616
+ # # change
617
+ # ]
618
+ # ]
619
+ #
620
+ # The +patch+ method accepts <tt>patchset</tt>s that are enumerable sequences
621
+ # containing either Diff::LCS::Change objects (or a subclass) or the array
622
+ # representations of those objects. Prior to application, array
623
+ # representations of Diff::LCS::Change objects will be reified.
624
+ def patch(src, patchset, direction = nil)
625
+ # Normalize the patchset.
626
+ has_changes, patchset = Diff::LCS::Internals.analyze_patchset(patchset)
627
+
628
+ return src.respond_to?(:dup) ? src.dup : src unless has_changes
629
+
630
+ string = src.kind_of?(String)
631
+ # Start with a new empty type of the source's class
632
+ res = src.class.new
633
+
634
+ direction ||= Diff::LCS::Internals.intuit_diff_direction(src, patchset)
635
+
636
+ ai = bj = 0
637
+
638
+ patch_map = PATCH_MAP[direction]
639
+
640
+ patchset.each do |change|
641
+ # Both Change and ContextChange support #action
642
+ action = patch_map[change.action]
643
+
644
+ case change
645
+ when Diff::LCS::ContextChange
646
+ case direction
647
+ when :patch
648
+ el = change.new_element
649
+ op = change.old_position
650
+ np = change.new_position
651
+ when :unpatch
652
+ el = change.old_element
653
+ op = change.new_position
654
+ np = change.old_position
655
+ end
656
+
657
+ case action
658
+ when '-' # Remove details from the old string
659
+ while ai < op
660
+ res << (string ? src[ai, 1] : src[ai])
661
+ ai += 1
662
+ bj += 1
663
+ end
664
+ ai += 1
665
+ when '+'
666
+ while bj < np
667
+ res << (string ? src[ai, 1] : src[ai])
668
+ ai += 1
669
+ bj += 1
670
+ end
671
+
672
+ res << el
673
+ bj += 1
674
+ when '='
675
+ # This only appears in sdiff output with the SDiff callback.
676
+ # Therefore, we only need to worry about dealing with a single
677
+ # element.
678
+ res << el
679
+
680
+ ai += 1
681
+ bj += 1
682
+ when '!'
683
+ while ai < op
684
+ res << (string ? src[ai, 1] : src[ai])
685
+ ai += 1
686
+ bj += 1
687
+ end
688
+
689
+ bj += 1
690
+ ai += 1
691
+
692
+ res << el
693
+ end
694
+ when Diff::LCS::Change
695
+ case action
696
+ when '-'
697
+ while ai < change.position
698
+ res << (string ? src[ai, 1] : src[ai])
699
+ ai += 1
700
+ bj += 1
701
+ end
702
+ ai += 1
703
+ when '+'
704
+ while bj < change.position
705
+ res << (string ? src[ai, 1] : src[ai])
706
+ ai += 1
707
+ bj += 1
708
+ end
709
+
710
+ bj += 1
711
+
712
+ res << change.element
713
+ end
714
+ end
715
+ end
716
+
717
+ while ai < src.size
718
+ res << (string ? src[ai, 1] : src[ai])
719
+ ai += 1
720
+ bj += 1
721
+ end
722
+
723
+ res
724
+ end
725
+
726
+ # Given a set of patchset, convert the current version to the prior version.
727
+ # Does no auto-discovery.
728
+ def unpatch!(src, patchset)
729
+ patch(src, patchset, :unpatch)
730
+ end
731
+
732
+ # Given a set of patchset, convert the current version to the next version.
733
+ # Does no auto-discovery.
734
+ def patch!(src, patchset)
735
+ patch(src, patchset, :patch)
736
+ end
737
+ end
738
+
739
+ require 'diff/lcs/backports'