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,2 @@
1
+ require 'mkmf'
2
+ create_makefile('json')
@@ -0,0 +1,23 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'fileutils'
4
+ include FileUtils::Verbose
5
+ require 'rbconfig'
6
+ include\
7
+ begin
8
+ RbConfig
9
+ rescue NameError
10
+ Config
11
+ end
12
+
13
+ sitelibdir = CONFIG["sitelibdir"]
14
+ cd 'lib' do
15
+ install('json.rb', sitelibdir)
16
+ mkdir_p File.join(sitelibdir, 'json')
17
+ for file in Dir['json/**/*}']
18
+ d = File.join(sitelibdir, file)
19
+ mkdir_p File.dirname(d)
20
+ install(file, d)
21
+ end
22
+ end
23
+ warn " *** Installed PURE ruby library."
@@ -0,0 +1,166 @@
1
+ /*
2
+ * This code is copyrighted work by Daniel Luz <dev at mernen dot com>.
3
+ *
4
+ * Distributed under the Ruby license: https://www.ruby-lang.org/en/about/license.txt
5
+ */
6
+ package json.ext;
7
+
8
+ import org.jruby.exceptions.RaiseException;
9
+ import org.jruby.runtime.ThreadContext;
10
+ import org.jruby.util.ByteList;
11
+
12
+ /**
13
+ * A class specialized in transcoding a certain String format into another,
14
+ * using UTF-8 ByteLists as both input and output.
15
+ */
16
+ abstract class ByteListTranscoder {
17
+ protected final ThreadContext context;
18
+
19
+ protected ByteList src;
20
+ protected int srcEnd;
21
+ /** Position where the last read character started */
22
+ protected int charStart;
23
+ /** Position of the next character to read */
24
+ protected int pos;
25
+
26
+ private ByteList out;
27
+ /**
28
+ * When a character that can be copied straight into the output is found,
29
+ * its index is stored on this variable, and copying is delayed until
30
+ * the sequence of characters that can be copied ends.
31
+ *
32
+ * <p>The variable stores -1 when not in a plain sequence.
33
+ */
34
+ private int quoteStart = -1;
35
+
36
+ protected ByteListTranscoder(ThreadContext context) {
37
+ this.context = context;
38
+ }
39
+
40
+ protected void init(ByteList src, ByteList out) {
41
+ this.init(src, 0, src.length(), out);
42
+ }
43
+
44
+ protected void init(ByteList src, int start, int end, ByteList out) {
45
+ this.src = src;
46
+ this.pos = start;
47
+ this.charStart = start;
48
+ this.srcEnd = end;
49
+ this.out = out;
50
+ }
51
+
52
+ /**
53
+ * Returns whether there are any characters left to be read.
54
+ */
55
+ protected boolean hasNext() {
56
+ return pos < srcEnd;
57
+ }
58
+
59
+ /**
60
+ * Returns the next character in the buffer.
61
+ */
62
+ private char next() {
63
+ return src.charAt(pos++);
64
+ }
65
+
66
+ /**
67
+ * Reads an UTF-8 character from the input and returns its code point,
68
+ * while advancing the input position.
69
+ *
70
+ * <p>Raises an {@link #invalidUtf8()} exception if an invalid byte
71
+ * is found.
72
+ */
73
+ protected int readUtf8Char() {
74
+ charStart = pos;
75
+ char head = next();
76
+ if (head <= 0x7f) { // 0b0xxxxxxx (ASCII)
77
+ return head;
78
+ }
79
+ if (head <= 0xbf) { // 0b10xxxxxx
80
+ throw invalidUtf8(); // tail byte with no head
81
+ }
82
+ if (head <= 0xdf) { // 0b110xxxxx
83
+ ensureMin(1);
84
+ int cp = ((head & 0x1f) << 6)
85
+ | nextPart();
86
+ if (cp < 0x0080) throw invalidUtf8();
87
+ return cp;
88
+ }
89
+ if (head <= 0xef) { // 0b1110xxxx
90
+ ensureMin(2);
91
+ int cp = ((head & 0x0f) << 12)
92
+ | (nextPart() << 6)
93
+ | nextPart();
94
+ if (cp < 0x0800) throw invalidUtf8();
95
+ return cp;
96
+ }
97
+ if (head <= 0xf7) { // 0b11110xxx
98
+ ensureMin(3);
99
+ int cp = ((head & 0x07) << 18)
100
+ | (nextPart() << 12)
101
+ | (nextPart() << 6)
102
+ | nextPart();
103
+ if (!Character.isValidCodePoint(cp)) throw invalidUtf8();
104
+ return cp;
105
+ }
106
+ // 0b11111xxx?
107
+ throw invalidUtf8();
108
+ }
109
+
110
+ /**
111
+ * Throws a GeneratorError if the input list doesn't have at least this
112
+ * many bytes left.
113
+ */
114
+ protected void ensureMin(int n) {
115
+ if (pos + n > srcEnd) throw incompleteUtf8();
116
+ }
117
+
118
+ /**
119
+ * Reads the next byte of a multi-byte UTF-8 character and returns its
120
+ * contents (lower 6 bits).
121
+ *
122
+ * <p>Throws a GeneratorError if the byte is not a valid tail.
123
+ */
124
+ private int nextPart() {
125
+ char c = next();
126
+ // tail bytes must be 0b10xxxxxx
127
+ if ((c & 0xc0) != 0x80) throw invalidUtf8();
128
+ return c & 0x3f;
129
+ }
130
+
131
+
132
+ protected void quoteStart() {
133
+ if (quoteStart == -1) quoteStart = charStart;
134
+ }
135
+
136
+ /**
137
+ * When in a sequence of characters that can be copied directly,
138
+ * interrupts the sequence and copies it to the output buffer.
139
+ *
140
+ * @param endPos The offset until which the direct character quoting should
141
+ * occur. You may pass {@link #pos} to quote until the most
142
+ * recently read character, or {@link #charStart} to quote
143
+ * until the character before it.
144
+ */
145
+ protected void quoteStop(int endPos) {
146
+ if (quoteStart != -1) {
147
+ out.append(src, quoteStart, endPos - quoteStart);
148
+ quoteStart = -1;
149
+ }
150
+ }
151
+
152
+ protected void append(int b) {
153
+ out.append(b);
154
+ }
155
+
156
+ protected void append(byte[] origin, int start, int length) {
157
+ out.append(origin, start, length);
158
+ }
159
+
160
+
161
+ protected abstract RaiseException invalidUtf8();
162
+
163
+ protected RaiseException incompleteUtf8() {
164
+ return invalidUtf8();
165
+ }
166
+ }
@@ -0,0 +1,466 @@
1
+ /*
2
+ * This code is copyrighted work by Daniel Luz <dev at mernen dot com>.
3
+ *
4
+ * Distributed under the Ruby license: https://www.ruby-lang.org/en/about/license.txt
5
+ */
6
+ package json.ext;
7
+
8
+ import org.jruby.Ruby;
9
+ import org.jruby.RubyArray;
10
+ import org.jruby.RubyBasicObject;
11
+ import org.jruby.RubyBignum;
12
+ import org.jruby.RubyBoolean;
13
+ import org.jruby.RubyClass;
14
+ import org.jruby.RubyFixnum;
15
+ import org.jruby.RubyFloat;
16
+ import org.jruby.RubyHash;
17
+ import org.jruby.RubyNumeric;
18
+ import org.jruby.RubyString;
19
+ import org.jruby.runtime.ClassIndex;
20
+ import org.jruby.runtime.ThreadContext;
21
+ import org.jruby.runtime.builtin.IRubyObject;
22
+ import org.jruby.util.ByteList;
23
+
24
+ public final class Generator {
25
+ private Generator() {
26
+ throw new RuntimeException();
27
+ }
28
+
29
+ /**
30
+ * Encodes the given object as a JSON string, using the given handler.
31
+ */
32
+ static <T extends IRubyObject> RubyString
33
+ generateJson(ThreadContext context, T object,
34
+ Handler<? super T> handler, IRubyObject[] args) {
35
+ Session session = new Session(context, args.length > 0 ? args[0]
36
+ : null);
37
+ return session.infect(handler.generateNew(session, object));
38
+ }
39
+
40
+ /**
41
+ * Encodes the given object as a JSON string, detecting the appropriate handler
42
+ * for the given object.
43
+ */
44
+ static <T extends IRubyObject> RubyString
45
+ generateJson(ThreadContext context, T object, IRubyObject[] args) {
46
+ Handler<? super T> handler = getHandlerFor(context.getRuntime(), object);
47
+ return generateJson(context, object, handler, args);
48
+ }
49
+
50
+ /**
51
+ * Encodes the given object as a JSON string, using the appropriate
52
+ * handler if one is found or calling #to_json if not.
53
+ */
54
+ public static <T extends IRubyObject> RubyString
55
+ generateJson(ThreadContext context, T object,
56
+ GeneratorState config) {
57
+ Session session = new Session(context, config);
58
+ Handler<? super T> handler = getHandlerFor(context.getRuntime(), object);
59
+ return handler.generateNew(session, object);
60
+ }
61
+
62
+ // NOTE: drop this once Ruby 1.9.3 support is gone!
63
+ private static final int FIXNUM = 1;
64
+ private static final int BIGNUM = 2;
65
+ private static final int ARRAY = 3;
66
+ private static final int STRING = 4;
67
+ private static final int NIL = 5;
68
+ private static final int TRUE = 6;
69
+ private static final int FALSE = 7;
70
+ private static final int HASH = 10;
71
+ private static final int FLOAT = 11;
72
+ // hard-coded due JRuby 1.7 compatibility
73
+ // https://github.com/jruby/jruby/blob/1.7.27/core/src/main/java/org/jruby/runtime/ClassIndex.java
74
+
75
+ /**
76
+ * Returns the best serialization handler for the given object.
77
+ */
78
+ // Java's generics can't handle this satisfactorily, so I'll just leave
79
+ // the best I could get and ignore the warnings
80
+ @SuppressWarnings("unchecked")
81
+ private static <T extends IRubyObject>
82
+ Handler<? super T> getHandlerFor(Ruby runtime, T object) {
83
+ switch (((RubyBasicObject) object).getNativeTypeIndex()) {
84
+ // can not use getNativeClassIndex due 1.7 compatibility
85
+ case NIL : return (Handler) NIL_HANDLER;
86
+ case TRUE : return (Handler) TRUE_HANDLER;
87
+ case FALSE : return (Handler) FALSE_HANDLER;
88
+ case FLOAT : return (Handler) FLOAT_HANDLER;
89
+ case FIXNUM : return (Handler) FIXNUM_HANDLER;
90
+ case BIGNUM : return (Handler) BIGNUM_HANDLER;
91
+ case STRING :
92
+ if (((RubyBasicObject) object).getMetaClass() != runtime.getString()) break;
93
+ return (Handler) STRING_HANDLER;
94
+ case ARRAY :
95
+ if (((RubyBasicObject) object).getMetaClass() != runtime.getArray()) break;
96
+ return (Handler) ARRAY_HANDLER;
97
+ case HASH :
98
+ if (((RubyBasicObject) object).getMetaClass() != runtime.getHash()) break;
99
+ return (Handler) HASH_HANDLER;
100
+ }
101
+ return GENERIC_HANDLER;
102
+ }
103
+
104
+
105
+ /* Generator context */
106
+
107
+ /**
108
+ * A class that concentrates all the information that is shared by
109
+ * generators working on a single session.
110
+ *
111
+ * <p>A session is defined as the process of serializing a single root
112
+ * object; any handler directly called by container handlers (arrays and
113
+ * hashes/objects) shares this object with its caller.
114
+ *
115
+ * <p>Note that anything called indirectly (via {@link GENERIC_HANDLER})
116
+ * won't be part of the session.
117
+ */
118
+ static class Session {
119
+ private final ThreadContext context;
120
+ private GeneratorState state;
121
+ private IRubyObject possibleState;
122
+ private RuntimeInfo info;
123
+ private StringEncoder stringEncoder;
124
+
125
+ private boolean tainted = false;
126
+ private boolean untrusted = false;
127
+
128
+ Session(ThreadContext context, GeneratorState state) {
129
+ this.context = context;
130
+ this.state = state;
131
+ }
132
+
133
+ Session(ThreadContext context, IRubyObject possibleState) {
134
+ this.context = context;
135
+ this.possibleState = possibleState == null || possibleState.isNil()
136
+ ? null : possibleState;
137
+ }
138
+
139
+ public ThreadContext getContext() {
140
+ return context;
141
+ }
142
+
143
+ public Ruby getRuntime() {
144
+ return context.getRuntime();
145
+ }
146
+
147
+ public GeneratorState getState() {
148
+ if (state == null) {
149
+ state = GeneratorState.fromState(context, getInfo(), possibleState);
150
+ }
151
+ return state;
152
+ }
153
+
154
+ public RuntimeInfo getInfo() {
155
+ if (info == null) info = RuntimeInfo.forRuntime(getRuntime());
156
+ return info;
157
+ }
158
+
159
+ public StringEncoder getStringEncoder() {
160
+ if (stringEncoder == null) {
161
+ stringEncoder = new StringEncoder(context, getState().asciiOnly());
162
+ }
163
+ return stringEncoder;
164
+ }
165
+
166
+ public void infectBy(IRubyObject object) {
167
+ if (object.isTaint()) tainted = true;
168
+ if (object.isUntrusted()) untrusted = true;
169
+ }
170
+
171
+ public <T extends IRubyObject> T infect(T object) {
172
+ if (tainted) object.setTaint(true);
173
+ if (untrusted) object.setUntrusted(true);
174
+ return object;
175
+ }
176
+ }
177
+
178
+
179
+ /* Handler base classes */
180
+
181
+ private static abstract class Handler<T extends IRubyObject> {
182
+ /**
183
+ * Returns an estimative of how much space the serialization of the
184
+ * given object will take. Used for allocating enough buffer space
185
+ * before invoking other methods.
186
+ */
187
+ int guessSize(Session session, T object) {
188
+ return 4;
189
+ }
190
+
191
+ RubyString generateNew(Session session, T object) {
192
+ RubyString result;
193
+ ByteList buffer = new ByteList(guessSize(session, object));
194
+ generate(session, object, buffer);
195
+ result = RubyString.newString(session.getRuntime(), buffer);
196
+ ThreadContext context = session.getContext();
197
+ RuntimeInfo info = session.getInfo();
198
+ result.force_encoding(context, info.utf8.get());
199
+ return result;
200
+ }
201
+
202
+ abstract void generate(Session session, T object, ByteList buffer);
203
+ }
204
+
205
+ /**
206
+ * A handler that returns a fixed keyword regardless of the passed object.
207
+ */
208
+ private static class KeywordHandler<T extends IRubyObject>
209
+ extends Handler<T> {
210
+ private final ByteList keyword;
211
+
212
+ private KeywordHandler(String keyword) {
213
+ this.keyword = new ByteList(ByteList.plain(keyword), false);
214
+ }
215
+
216
+ @Override
217
+ int guessSize(Session session, T object) {
218
+ return keyword.length();
219
+ }
220
+
221
+ @Override
222
+ RubyString generateNew(Session session, T object) {
223
+ return RubyString.newStringShared(session.getRuntime(), keyword);
224
+ }
225
+
226
+ @Override
227
+ void generate(Session session, T object, ByteList buffer) {
228
+ buffer.append(keyword);
229
+ }
230
+ }
231
+
232
+
233
+ /* Handlers */
234
+
235
+ static final Handler<RubyBignum> BIGNUM_HANDLER =
236
+ new Handler<RubyBignum>() {
237
+ @Override
238
+ void generate(Session session, RubyBignum object, ByteList buffer) {
239
+ // JRUBY-4751: RubyBignum.to_s() returns generic object
240
+ // representation (fixed in 1.5, but we maintain backwards
241
+ // compatibility; call to_s(IRubyObject[]) then
242
+ buffer.append(((RubyString)object.to_s(IRubyObject.NULL_ARRAY)).getByteList());
243
+ }
244
+ };
245
+
246
+ static final Handler<RubyFixnum> FIXNUM_HANDLER =
247
+ new Handler<RubyFixnum>() {
248
+ @Override
249
+ void generate(Session session, RubyFixnum object, ByteList buffer) {
250
+ buffer.append(object.to_s().getByteList());
251
+ }
252
+ };
253
+
254
+ static final Handler<RubyFloat> FLOAT_HANDLER =
255
+ new Handler<RubyFloat>() {
256
+ @Override
257
+ void generate(Session session, RubyFloat object, ByteList buffer) {
258
+ double value = RubyFloat.num2dbl(object);
259
+
260
+ if (Double.isInfinite(value) || Double.isNaN(value)) {
261
+ if (!session.getState().allowNaN()) {
262
+ throw Utils.newException(session.getContext(),
263
+ Utils.M_GENERATOR_ERROR,
264
+ object + " not allowed in JSON");
265
+ }
266
+ }
267
+ buffer.append(((RubyString)object.to_s()).getByteList());
268
+ }
269
+ };
270
+
271
+ static final Handler<RubyArray> ARRAY_HANDLER =
272
+ new Handler<RubyArray>() {
273
+ @Override
274
+ int guessSize(Session session, RubyArray object) {
275
+ GeneratorState state = session.getState();
276
+ int depth = state.getDepth();
277
+ int perItem =
278
+ 4 // prealloc
279
+ + (depth + 1) * state.getIndent().length() // indent
280
+ + 1 + state.getArrayNl().length(); // ',' arrayNl
281
+ return 2 + object.size() * perItem;
282
+ }
283
+
284
+ @Override
285
+ void generate(Session session, RubyArray object, ByteList buffer) {
286
+ ThreadContext context = session.getContext();
287
+ Ruby runtime = context.getRuntime();
288
+ GeneratorState state = session.getState();
289
+ int depth = state.increaseDepth();
290
+
291
+ ByteList indentUnit = state.getIndent();
292
+ byte[] shift = Utils.repeat(indentUnit, depth);
293
+
294
+ ByteList arrayNl = state.getArrayNl();
295
+ byte[] delim = new byte[1 + arrayNl.length()];
296
+ delim[0] = ',';
297
+ System.arraycopy(arrayNl.unsafeBytes(), arrayNl.begin(), delim, 1,
298
+ arrayNl.length());
299
+
300
+ session.infectBy(object);
301
+
302
+ buffer.append((byte)'[');
303
+ buffer.append(arrayNl);
304
+ boolean firstItem = true;
305
+ for (int i = 0, t = object.getLength(); i < t; i++) {
306
+ IRubyObject element = object.eltInternal(i);
307
+ session.infectBy(element);
308
+ if (firstItem) {
309
+ firstItem = false;
310
+ } else {
311
+ buffer.append(delim);
312
+ }
313
+ buffer.append(shift);
314
+ Handler<IRubyObject> handler = getHandlerFor(runtime, element);
315
+ handler.generate(session, element, buffer);
316
+ }
317
+
318
+ state.decreaseDepth();
319
+ if (arrayNl.length() != 0) {
320
+ buffer.append(arrayNl);
321
+ buffer.append(shift, 0, state.getDepth() * indentUnit.length());
322
+ }
323
+
324
+ buffer.append((byte)']');
325
+ }
326
+ };
327
+
328
+ static final Handler<RubyHash> HASH_HANDLER =
329
+ new Handler<RubyHash>() {
330
+ @Override
331
+ int guessSize(Session session, RubyHash object) {
332
+ GeneratorState state = session.getState();
333
+ int perItem =
334
+ 12 // key, colon, comma
335
+ + (state.getDepth() + 1) * state.getIndent().length()
336
+ + state.getSpaceBefore().length()
337
+ + state.getSpace().length();
338
+ return 2 + object.size() * perItem;
339
+ }
340
+
341
+ @Override
342
+ void generate(final Session session, RubyHash object,
343
+ final ByteList buffer) {
344
+ ThreadContext context = session.getContext();
345
+ final Ruby runtime = context.getRuntime();
346
+ final GeneratorState state = session.getState();
347
+ final int depth = state.increaseDepth();
348
+
349
+ final ByteList objectNl = state.getObjectNl();
350
+ final byte[] indent = Utils.repeat(state.getIndent(), depth);
351
+ final ByteList spaceBefore = state.getSpaceBefore();
352
+ final ByteList space = state.getSpace();
353
+
354
+ buffer.append((byte)'{');
355
+ buffer.append(objectNl);
356
+ object.visitAll(new RubyHash.Visitor() {
357
+ private boolean firstPair = true;
358
+
359
+ @Override
360
+ public void visit(IRubyObject key, IRubyObject value) {
361
+ if (firstPair) {
362
+ firstPair = false;
363
+ } else {
364
+ buffer.append((byte)',');
365
+ buffer.append(objectNl);
366
+ }
367
+ if (objectNl.length() != 0) buffer.append(indent);
368
+
369
+ STRING_HANDLER.generate(session, key.asString(), buffer);
370
+ session.infectBy(key);
371
+
372
+ buffer.append(spaceBefore);
373
+ buffer.append((byte)':');
374
+ buffer.append(space);
375
+
376
+ Handler<IRubyObject> valueHandler = getHandlerFor(runtime, value);
377
+ valueHandler.generate(session, value, buffer);
378
+ session.infectBy(value);
379
+ }
380
+ });
381
+ state.decreaseDepth();
382
+ if (objectNl.length() != 0) {
383
+ buffer.append(objectNl);
384
+ buffer.append(Utils.repeat(state.getIndent(), state.getDepth()));
385
+ }
386
+ buffer.append((byte)'}');
387
+ }
388
+ };
389
+
390
+ static final Handler<RubyString> STRING_HANDLER =
391
+ new Handler<RubyString>() {
392
+ @Override
393
+ int guessSize(Session session, RubyString object) {
394
+ // for most applications, most strings will be just a set of
395
+ // printable ASCII characters without any escaping, so let's
396
+ // just allocate enough space for that + the quotes
397
+ return 2 + object.getByteList().length();
398
+ }
399
+
400
+ @Override
401
+ void generate(Session session, RubyString object, ByteList buffer) {
402
+ RuntimeInfo info = session.getInfo();
403
+ RubyString src;
404
+
405
+ if (object.encoding(session.getContext()) != info.utf8.get()) {
406
+ src = (RubyString)object.encode(session.getContext(),
407
+ info.utf8.get());
408
+ } else {
409
+ src = object;
410
+ }
411
+
412
+ session.getStringEncoder().encode(src.getByteList(), buffer);
413
+ }
414
+ };
415
+
416
+ static final Handler<RubyBoolean> TRUE_HANDLER =
417
+ new KeywordHandler<RubyBoolean>("true");
418
+ static final Handler<RubyBoolean> FALSE_HANDLER =
419
+ new KeywordHandler<RubyBoolean>("false");
420
+ static final Handler<IRubyObject> NIL_HANDLER =
421
+ new KeywordHandler<IRubyObject>("null");
422
+
423
+ /**
424
+ * The default handler (<code>Object#to_json</code>): coerces the object
425
+ * to string using <code>#to_s</code>, and serializes that string.
426
+ */
427
+ static final Handler<IRubyObject> OBJECT_HANDLER =
428
+ new Handler<IRubyObject>() {
429
+ @Override
430
+ RubyString generateNew(Session session, IRubyObject object) {
431
+ RubyString str = object.asString();
432
+ return STRING_HANDLER.generateNew(session, str);
433
+ }
434
+
435
+ @Override
436
+ void generate(Session session, IRubyObject object, ByteList buffer) {
437
+ RubyString str = object.asString();
438
+ STRING_HANDLER.generate(session, str, buffer);
439
+ }
440
+ };
441
+
442
+ /**
443
+ * A handler that simply calls <code>#to_json(state)</code> on the
444
+ * given object.
445
+ */
446
+ static final Handler<IRubyObject> GENERIC_HANDLER =
447
+ new Handler<IRubyObject>() {
448
+ @Override
449
+ RubyString generateNew(Session session, IRubyObject object) {
450
+ if (object.respondsTo("to_json")) {
451
+ IRubyObject result = object.callMethod(session.getContext(), "to_json",
452
+ new IRubyObject[] {session.getState()});
453
+ if (result instanceof RubyString) return (RubyString)result;
454
+ throw session.getRuntime().newTypeError("to_json must return a String");
455
+ } else {
456
+ return OBJECT_HANDLER.generateNew(session, object);
457
+ }
458
+ }
459
+
460
+ @Override
461
+ void generate(Session session, IRubyObject object, ByteList buffer) {
462
+ RubyString result = generateNew(session, object);
463
+ buffer.append(result.getByteList());
464
+ }
465
+ };
466
+ }