pigeonhole-db 1.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 (1256) hide show
  1. checksums.yaml +7 -0
  2. data/Cargo.lock +899 -0
  3. data/Cargo.toml +45 -0
  4. data/LICENSE +21 -0
  5. data/README.md +22 -0
  6. data/extconf.rb +12 -0
  7. data/lib/pigeonhole/api.rb +615 -0
  8. data/lib/pigeonhole/index.rb +208 -0
  9. data/lib/pigeonhole/memory.rb +507 -0
  10. data/lib/pigeonhole/version.rb +6 -0
  11. data/lib/pigeonhole-db.rb +6 -0
  12. data/lib/pigeonhole.rb +47 -0
  13. data/sig/pigeonhole.rbs +1484 -0
  14. data/src/budget.rs +205 -0
  15. data/src/classes.rs +279 -0
  16. data/src/convert.rs +192 -0
  17. data/src/db.rs +685 -0
  18. data/src/error.rs +151 -0
  19. data/src/feed.rs +316 -0
  20. data/src/fork.rs +64 -0
  21. data/src/gvl.rs +112 -0
  22. data/src/index.rs +1157 -0
  23. data/src/lib.rs +534 -0
  24. data/src/memory.rs +2178 -0
  25. data/src/read.rs +312 -0
  26. data/src/table.rs +1161 -0
  27. data/src/vector.rs +262 -0
  28. data/src/walk.rs +406 -0
  29. data/vendor/bundle/ruby/3.4.0/bin/minitest +29 -0
  30. data/vendor/bundle/ruby/3.4.0/bin/rake +29 -0
  31. data/vendor/bundle/ruby/3.4.0/bin/rake-compiler +29 -0
  32. data/vendor/bundle/ruby/3.4.0/bin/rake-compiler-dock +29 -0
  33. data/vendor/bundle/ruby/3.4.0/bin/rb-sys-dock +29 -0
  34. data/vendor/bundle/ruby/3.4.0/bin/rbs +29 -0
  35. data/vendor/bundle/ruby/3.4.0/cache/drb-2.2.3.gem +0 -0
  36. data/vendor/bundle/ruby/3.4.0/cache/logger-1.7.0.gem +0 -0
  37. data/vendor/bundle/ruby/3.4.0/cache/minitest-6.0.6.gem +0 -0
  38. data/vendor/bundle/ruby/3.4.0/cache/prism-1.9.0.gem +0 -0
  39. data/vendor/bundle/ruby/3.4.0/cache/rake-13.4.2.gem +0 -0
  40. data/vendor/bundle/ruby/3.4.0/cache/rake-compiler-1.3.2.gem +0 -0
  41. data/vendor/bundle/ruby/3.4.0/cache/rake-compiler-dock-1.12.0.gem +0 -0
  42. data/vendor/bundle/ruby/3.4.0/cache/rb_sys-0.9.130.gem +0 -0
  43. data/vendor/bundle/ruby/3.4.0/cache/rbs-4.2.0.gem +0 -0
  44. data/vendor/bundle/ruby/3.4.0/cache/toml-rb-6.0.0.gem +0 -0
  45. data/vendor/bundle/ruby/3.4.0/cache/tsort-0.2.0.gem +0 -0
  46. data/vendor/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/prism-1.9.0/gem.build_complete +0 -0
  47. data/vendor/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/prism-1.9.0/gem_make.out +44 -0
  48. data/vendor/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/prism-1.9.0/mkmf.log +74 -0
  49. data/vendor/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/prism-1.9.0/prism/prism.so +0 -0
  50. data/vendor/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/rbs-4.2.0/gem.build_complete +0 -0
  51. data/vendor/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/rbs-4.2.0/gem_make.out +41 -0
  52. data/vendor/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/rbs-4.2.0/mkmf.log +102 -0
  53. data/vendor/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/rbs-4.2.0/rbs_extension.so +0 -0
  54. data/vendor/bundle/ruby/3.4.0/gems/drb-2.2.3/LICENSE.txt +22 -0
  55. data/vendor/bundle/ruby/3.4.0/gems/drb-2.2.3/drb.gemspec +42 -0
  56. data/vendor/bundle/ruby/3.4.0/gems/drb-2.2.3/lib/drb/acl.rb +239 -0
  57. data/vendor/bundle/ruby/3.4.0/gems/drb-2.2.3/lib/drb/drb.rb +1993 -0
  58. data/vendor/bundle/ruby/3.4.0/gems/drb-2.2.3/lib/drb/eq.rb +15 -0
  59. data/vendor/bundle/ruby/3.4.0/gems/drb-2.2.3/lib/drb/extserv.rb +44 -0
  60. data/vendor/bundle/ruby/3.4.0/gems/drb-2.2.3/lib/drb/extservm.rb +94 -0
  61. data/vendor/bundle/ruby/3.4.0/gems/drb-2.2.3/lib/drb/gw.rb +161 -0
  62. data/vendor/bundle/ruby/3.4.0/gems/drb-2.2.3/lib/drb/observer.rb +26 -0
  63. data/vendor/bundle/ruby/3.4.0/gems/drb-2.2.3/lib/drb/ssl.rb +354 -0
  64. data/vendor/bundle/ruby/3.4.0/gems/drb-2.2.3/lib/drb/timeridconv.rb +97 -0
  65. data/vendor/bundle/ruby/3.4.0/gems/drb-2.2.3/lib/drb/unix.rb +118 -0
  66. data/vendor/bundle/ruby/3.4.0/gems/drb-2.2.3/lib/drb/version.rb +3 -0
  67. data/vendor/bundle/ruby/3.4.0/gems/drb-2.2.3/lib/drb/weakidconv.rb +31 -0
  68. data/vendor/bundle/ruby/3.4.0/gems/drb-2.2.3/lib/drb.rb +3 -0
  69. data/vendor/bundle/ruby/3.4.0/gems/logger-1.7.0/BSDL +22 -0
  70. data/vendor/bundle/ruby/3.4.0/gems/logger-1.7.0/COPYING +56 -0
  71. data/vendor/bundle/ruby/3.4.0/gems/logger-1.7.0/README.md +104 -0
  72. data/vendor/bundle/ruby/3.4.0/gems/logger-1.7.0/lib/logger/errors.rb +9 -0
  73. data/vendor/bundle/ruby/3.4.0/gems/logger-1.7.0/lib/logger/formatter.rb +36 -0
  74. data/vendor/bundle/ruby/3.4.0/gems/logger-1.7.0/lib/logger/log_device.rb +265 -0
  75. data/vendor/bundle/ruby/3.4.0/gems/logger-1.7.0/lib/logger/period.rb +47 -0
  76. data/vendor/bundle/ruby/3.4.0/gems/logger-1.7.0/lib/logger/severity.rb +38 -0
  77. data/vendor/bundle/ruby/3.4.0/gems/logger-1.7.0/lib/logger/version.rb +5 -0
  78. data/vendor/bundle/ruby/3.4.0/gems/logger-1.7.0/lib/logger.rb +789 -0
  79. data/vendor/bundle/ruby/3.4.0/gems/minitest-6.0.6/History.rdoc +1860 -0
  80. data/vendor/bundle/ruby/3.4.0/gems/minitest-6.0.6/Manifest.txt +41 -0
  81. data/vendor/bundle/ruby/3.4.0/gems/minitest-6.0.6/README.rdoc +763 -0
  82. data/vendor/bundle/ruby/3.4.0/gems/minitest-6.0.6/Rakefile +89 -0
  83. data/vendor/bundle/ruby/3.4.0/gems/minitest-6.0.6/bin/minitest +5 -0
  84. data/vendor/bundle/ruby/3.4.0/gems/minitest-6.0.6/design_rationale.rb +54 -0
  85. data/vendor/bundle/ruby/3.4.0/gems/minitest-6.0.6/lib/hoe/minitest.rb +30 -0
  86. data/vendor/bundle/ruby/3.4.0/gems/minitest-6.0.6/lib/minitest/assertions.rb +821 -0
  87. data/vendor/bundle/ruby/3.4.0/gems/minitest-6.0.6/lib/minitest/autorun.rb +5 -0
  88. data/vendor/bundle/ruby/3.4.0/gems/minitest-6.0.6/lib/minitest/benchmark.rb +452 -0
  89. data/vendor/bundle/ruby/3.4.0/gems/minitest-6.0.6/lib/minitest/bisect.rb +304 -0
  90. data/vendor/bundle/ruby/3.4.0/gems/minitest-6.0.6/lib/minitest/complete.rb +56 -0
  91. data/vendor/bundle/ruby/3.4.0/gems/minitest-6.0.6/lib/minitest/compress.rb +94 -0
  92. data/vendor/bundle/ruby/3.4.0/gems/minitest-6.0.6/lib/minitest/error_on_warning.rb +11 -0
  93. data/vendor/bundle/ruby/3.4.0/gems/minitest-6.0.6/lib/minitest/expectations.rb +321 -0
  94. data/vendor/bundle/ruby/3.4.0/gems/minitest-6.0.6/lib/minitest/find_minimal_combination.rb +127 -0
  95. data/vendor/bundle/ruby/3.4.0/gems/minitest-6.0.6/lib/minitest/hell.rb +11 -0
  96. data/vendor/bundle/ruby/3.4.0/gems/minitest-6.0.6/lib/minitest/manual_plugins.rb +4 -0
  97. data/vendor/bundle/ruby/3.4.0/gems/minitest-6.0.6/lib/minitest/parallel.rb +72 -0
  98. data/vendor/bundle/ruby/3.4.0/gems/minitest-6.0.6/lib/minitest/path_expander.rb +432 -0
  99. data/vendor/bundle/ruby/3.4.0/gems/minitest-6.0.6/lib/minitest/pride.rb +4 -0
  100. data/vendor/bundle/ruby/3.4.0/gems/minitest-6.0.6/lib/minitest/pride_plugin.rb +135 -0
  101. data/vendor/bundle/ruby/3.4.0/gems/minitest-6.0.6/lib/minitest/server.rb +49 -0
  102. data/vendor/bundle/ruby/3.4.0/gems/minitest-6.0.6/lib/minitest/server_plugin.rb +88 -0
  103. data/vendor/bundle/ruby/3.4.0/gems/minitest-6.0.6/lib/minitest/spec.rb +324 -0
  104. data/vendor/bundle/ruby/3.4.0/gems/minitest-6.0.6/lib/minitest/sprint.rb +105 -0
  105. data/vendor/bundle/ruby/3.4.0/gems/minitest-6.0.6/lib/minitest/sprint_plugin.rb +39 -0
  106. data/vendor/bundle/ruby/3.4.0/gems/minitest-6.0.6/lib/minitest/test.rb +232 -0
  107. data/vendor/bundle/ruby/3.4.0/gems/minitest-6.0.6/lib/minitest/test_task.rb +331 -0
  108. data/vendor/bundle/ruby/3.4.0/gems/minitest-6.0.6/lib/minitest.rb +1232 -0
  109. data/vendor/bundle/ruby/3.4.0/gems/minitest-6.0.6/test/minitest/metametameta.rb +150 -0
  110. data/vendor/bundle/ruby/3.4.0/gems/minitest-6.0.6/test/minitest/test_bisect.rb +249 -0
  111. data/vendor/bundle/ruby/3.4.0/gems/minitest-6.0.6/test/minitest/test_find_minimal_combination.rb +138 -0
  112. data/vendor/bundle/ruby/3.4.0/gems/minitest-6.0.6/test/minitest/test_minitest_assertions.rb +1729 -0
  113. data/vendor/bundle/ruby/3.4.0/gems/minitest-6.0.6/test/minitest/test_minitest_benchmark.rb +151 -0
  114. data/vendor/bundle/ruby/3.4.0/gems/minitest-6.0.6/test/minitest/test_minitest_reporter.rb +437 -0
  115. data/vendor/bundle/ruby/3.4.0/gems/minitest-6.0.6/test/minitest/test_minitest_spec.rb +1095 -0
  116. data/vendor/bundle/ruby/3.4.0/gems/minitest-6.0.6/test/minitest/test_minitest_test.rb +1295 -0
  117. data/vendor/bundle/ruby/3.4.0/gems/minitest-6.0.6/test/minitest/test_minitest_test_task.rb +57 -0
  118. data/vendor/bundle/ruby/3.4.0/gems/minitest-6.0.6/test/minitest/test_path_expander.rb +229 -0
  119. data/vendor/bundle/ruby/3.4.0/gems/minitest-6.0.6/test/minitest/test_server.rb +146 -0
  120. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/BSDmakefile +58 -0
  121. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/CHANGELOG.md +786 -0
  122. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/CODE_OF_CONDUCT.md +76 -0
  123. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/CONTRIBUTING.md +58 -0
  124. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/LICENSE.md +7 -0
  125. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/Makefile +116 -0
  126. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/README.md +143 -0
  127. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/config.yml +4739 -0
  128. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/docs/build_system.md +119 -0
  129. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/docs/configuration.md +68 -0
  130. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/docs/cruby_compilation.md +27 -0
  131. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/docs/design.md +53 -0
  132. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/docs/encoding.md +121 -0
  133. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/docs/fuzzing.md +88 -0
  134. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/docs/heredocs.md +36 -0
  135. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/docs/javascript.md +118 -0
  136. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/docs/local_variable_depth.md +229 -0
  137. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/docs/mapping.md +117 -0
  138. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/docs/parser_translation.md +24 -0
  139. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/docs/parsing_rules.md +22 -0
  140. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/docs/releasing.md +75 -0
  141. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/docs/relocation.md +34 -0
  142. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/docs/ripper_translation.md +63 -0
  143. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/docs/ruby_api.md +45 -0
  144. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/docs/ruby_parser_translation.md +19 -0
  145. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/docs/serialization.md +233 -0
  146. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/docs/testing.md +55 -0
  147. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/ext/prism/Makefile +273 -0
  148. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/ext/prism/api_node.c +6945 -0
  149. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/ext/prism/api_pack.c +276 -0
  150. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/ext/prism/extconf.rb +127 -0
  151. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/ext/prism/extension.c +1427 -0
  152. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/ext/prism/extension.h +19 -0
  153. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/include/prism/ast.h +8254 -0
  154. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/include/prism/defines.h +260 -0
  155. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/include/prism/diagnostic.h +458 -0
  156. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/include/prism/encoding.h +283 -0
  157. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/include/prism/node.h +129 -0
  158. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/include/prism/options.h +488 -0
  159. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/include/prism/pack.h +163 -0
  160. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/include/prism/parser.h +936 -0
  161. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/include/prism/prettyprint.h +34 -0
  162. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/include/prism/regexp.h +43 -0
  163. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/include/prism/static_literals.h +121 -0
  164. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/include/prism/util/pm_buffer.h +236 -0
  165. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/include/prism/util/pm_char.h +204 -0
  166. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/include/prism/util/pm_constant_pool.h +218 -0
  167. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/include/prism/util/pm_integer.h +130 -0
  168. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/include/prism/util/pm_list.h +103 -0
  169. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/include/prism/util/pm_memchr.h +29 -0
  170. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/include/prism/util/pm_newline_list.h +113 -0
  171. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/include/prism/util/pm_string.h +200 -0
  172. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/include/prism/util/pm_strncasecmp.h +32 -0
  173. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/include/prism/util/pm_strpbrk.h +46 -0
  174. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/include/prism/version.h +29 -0
  175. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/include/prism.h +408 -0
  176. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/lib/prism/compiler.rb +801 -0
  177. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/lib/prism/desugar_compiler.rb +392 -0
  178. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/lib/prism/dispatcher.rb +2210 -0
  179. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/lib/prism/dot_visitor.rb +4767 -0
  180. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/lib/prism/dsl.rb +1003 -0
  181. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/lib/prism/ffi.rb +578 -0
  182. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/lib/prism/inspect_visitor.rb +2393 -0
  183. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/lib/prism/lex_compat.rb +911 -0
  184. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/lib/prism/mutation_compiler.rb +772 -0
  185. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/lib/prism/node.rb +19966 -0
  186. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/lib/prism/node_ext.rb +511 -0
  187. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/lib/prism/pack.rb +230 -0
  188. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/lib/prism/parse_result/comments.rb +188 -0
  189. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/lib/prism/parse_result/errors.rb +66 -0
  190. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/lib/prism/parse_result/newlines.rb +155 -0
  191. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/lib/prism/parse_result.rb +907 -0
  192. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/lib/prism/pattern.rb +269 -0
  193. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/lib/prism/polyfill/append_as_bytes.rb +15 -0
  194. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/lib/prism/polyfill/byteindex.rb +13 -0
  195. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/lib/prism/polyfill/scan_byte.rb +14 -0
  196. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/lib/prism/polyfill/unpack1.rb +14 -0
  197. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/lib/prism/polyfill/warn.rb +36 -0
  198. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/lib/prism/prism.so +0 -0
  199. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/lib/prism/reflection.rb +416 -0
  200. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/lib/prism/relocation.rb +505 -0
  201. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/lib/prism/serialize.rb +2400 -0
  202. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/lib/prism/string_query.rb +31 -0
  203. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/lib/prism/translation/parser/builder.rb +62 -0
  204. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/lib/prism/translation/parser/compiler.rb +2234 -0
  205. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/lib/prism/translation/parser/lexer.rb +820 -0
  206. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/lib/prism/translation/parser.rb +376 -0
  207. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/lib/prism/translation/parser_current.rb +26 -0
  208. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/lib/prism/translation/parser_versions.rb +36 -0
  209. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/lib/prism/translation/ripper/filter.rb +53 -0
  210. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/lib/prism/translation/ripper/lexer.rb +135 -0
  211. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/lib/prism/translation/ripper/sexp.rb +126 -0
  212. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/lib/prism/translation/ripper/shim.rb +5 -0
  213. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/lib/prism/translation/ripper.rb +3520 -0
  214. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/lib/prism/translation/ruby_parser.rb +1964 -0
  215. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/lib/prism/translation.rb +18 -0
  216. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/lib/prism/visitor.rb +813 -0
  217. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/lib/prism.rb +98 -0
  218. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/prism.gemspec +172 -0
  219. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/rbi/prism/compiler.rbi +12 -0
  220. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/rbi/prism/dsl.rbi +524 -0
  221. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/rbi/prism/inspect_visitor.rbi +12 -0
  222. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/rbi/prism/node.rbi +8750 -0
  223. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/rbi/prism/node_ext.rbi +107 -0
  224. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/rbi/prism/parse_result.rbi +404 -0
  225. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/rbi/prism/reflection.rbi +58 -0
  226. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/rbi/prism/string_query.rbi +12 -0
  227. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/rbi/prism/translation/parser.rbi +11 -0
  228. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/rbi/prism/translation/parser_versions.rbi +23 -0
  229. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/rbi/prism/translation/ripper.rbi +15 -0
  230. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/rbi/prism/visitor.rbi +473 -0
  231. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/rbi/prism.rbi +63 -0
  232. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/sig/prism/compiler.rbs +9 -0
  233. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/sig/prism/dispatcher.rbs +19 -0
  234. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/sig/prism/dot_visitor.rbs +6 -0
  235. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/sig/prism/dsl.rbs +351 -0
  236. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/sig/prism/inspect_visitor.rbs +22 -0
  237. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/sig/prism/lex_compat.rbs +10 -0
  238. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/sig/prism/mutation_compiler.rbs +159 -0
  239. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/sig/prism/node.rbs +4042 -0
  240. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/sig/prism/node_ext.rbs +149 -0
  241. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/sig/prism/pack.rbs +43 -0
  242. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/sig/prism/parse_result/comments.rbs +38 -0
  243. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/sig/prism/parse_result.rbs +197 -0
  244. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/sig/prism/pattern.rbs +13 -0
  245. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/sig/prism/reflection.rbs +50 -0
  246. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/sig/prism/relocation.rbs +185 -0
  247. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/sig/prism/serialize.rbs +8 -0
  248. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/sig/prism/string_query.rbs +11 -0
  249. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/sig/prism/visitor.rbs +169 -0
  250. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/sig/prism.rbs +272 -0
  251. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/src/diagnostic.c +854 -0
  252. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/src/encoding.c +5340 -0
  253. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/src/node.c +8685 -0
  254. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/src/options.c +338 -0
  255. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/src/pack.c +509 -0
  256. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/src/prettyprint.c +8957 -0
  257. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/src/prism.c +22679 -0
  258. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/src/regexp.c +790 -0
  259. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/src/serialize.c +2274 -0
  260. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/src/static_literals.c +617 -0
  261. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/src/token_type.c +703 -0
  262. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/src/util/pm_buffer.c +357 -0
  263. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/src/util/pm_char.c +318 -0
  264. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/src/util/pm_constant_pool.c +342 -0
  265. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/src/util/pm_integer.c +670 -0
  266. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/src/util/pm_list.c +49 -0
  267. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/src/util/pm_memchr.c +35 -0
  268. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/src/util/pm_newline_list.c +125 -0
  269. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/src/util/pm_string.c +381 -0
  270. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/src/util/pm_strncasecmp.c +36 -0
  271. data/vendor/bundle/ruby/3.4.0/gems/prism-1.9.0/src/util/pm_strpbrk.c +206 -0
  272. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/History.rdoc +2454 -0
  273. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/MIT-LICENSE +21 -0
  274. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/README.rdoc +155 -0
  275. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/doc/command_line_usage.rdoc +171 -0
  276. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/doc/example/Rakefile1 +38 -0
  277. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/doc/example/Rakefile2 +35 -0
  278. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/doc/example/a.c +6 -0
  279. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/doc/example/b.c +6 -0
  280. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/doc/example/main.c +11 -0
  281. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/doc/glossary.rdoc +42 -0
  282. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/doc/jamis.rb +592 -0
  283. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/doc/proto_rake.rdoc +127 -0
  284. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/doc/rake.1 +156 -0
  285. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/doc/rakefile.rdoc +635 -0
  286. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/doc/rational.rdoc +151 -0
  287. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/exe/rake +27 -0
  288. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/lib/rake/application.rb +847 -0
  289. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/lib/rake/backtrace.rb +25 -0
  290. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/lib/rake/clean.rb +78 -0
  291. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/lib/rake/cloneable.rb +17 -0
  292. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/lib/rake/cpu_counter.rb +122 -0
  293. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/lib/rake/default_loader.rb +15 -0
  294. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/lib/rake/dsl_definition.rb +196 -0
  295. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/lib/rake/early_time.rb +22 -0
  296. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/lib/rake/ext/core.rb +26 -0
  297. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/lib/rake/ext/string.rb +176 -0
  298. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/lib/rake/file_creation_task.rb +25 -0
  299. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/lib/rake/file_list.rb +435 -0
  300. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/lib/rake/file_task.rb +58 -0
  301. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/lib/rake/file_utils.rb +137 -0
  302. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/lib/rake/file_utils_ext.rb +135 -0
  303. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/lib/rake/invocation_chain.rb +57 -0
  304. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/lib/rake/invocation_exception_mixin.rb +17 -0
  305. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/lib/rake/late_time.rb +18 -0
  306. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/lib/rake/linked_list.rb +112 -0
  307. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/lib/rake/loaders/makefile.rb +54 -0
  308. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/lib/rake/multi_task.rb +14 -0
  309. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/lib/rake/name_space.rb +38 -0
  310. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/lib/rake/options.rb +31 -0
  311. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/lib/rake/packagetask.rb +222 -0
  312. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/lib/rake/phony.rb +16 -0
  313. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/lib/rake/private_reader.rb +21 -0
  314. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/lib/rake/promise.rb +100 -0
  315. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/lib/rake/pseudo_status.rb +30 -0
  316. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/lib/rake/rake_module.rb +67 -0
  317. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/lib/rake/rake_test_loader.rb +27 -0
  318. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/lib/rake/rule_recursion_overflow_error.rb +20 -0
  319. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/lib/rake/scope.rb +43 -0
  320. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/lib/rake/task.rb +434 -0
  321. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/lib/rake/task_argument_error.rb +8 -0
  322. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/lib/rake/task_arguments.rb +113 -0
  323. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/lib/rake/task_manager.rb +333 -0
  324. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/lib/rake/tasklib.rb +12 -0
  325. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/lib/rake/testtask.rb +192 -0
  326. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/lib/rake/thread_history_display.rb +49 -0
  327. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/lib/rake/thread_pool.rb +157 -0
  328. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/lib/rake/trace_output.rb +23 -0
  329. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/lib/rake/version.rb +10 -0
  330. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/lib/rake/win32.rb +17 -0
  331. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/lib/rake.rb +69 -0
  332. data/vendor/bundle/ruby/3.4.0/gems/rake-13.4.2/rake.gemspec +102 -0
  333. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-1.3.2/Gemfile +8 -0
  334. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-1.3.2/History.md +708 -0
  335. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-1.3.2/LICENSE.txt +20 -0
  336. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-1.3.2/README.md +505 -0
  337. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-1.3.2/Rakefile +15 -0
  338. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-1.3.2/appveyor.yml +22 -0
  339. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-1.3.2/bin/rake-compiler +24 -0
  340. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-1.3.2/cucumber.yml +4 -0
  341. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-1.3.2/features/compile.feature +79 -0
  342. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-1.3.2/features/cross-compile.feature +23 -0
  343. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-1.3.2/features/cross-package-multi.feature +15 -0
  344. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-1.3.2/features/cross-package.feature +14 -0
  345. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-1.3.2/features/java-compile.feature +22 -0
  346. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-1.3.2/features/java-no-native-compile.feature +33 -0
  347. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-1.3.2/features/java-package.feature +24 -0
  348. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-1.3.2/features/package.feature +40 -0
  349. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-1.3.2/features/step_definitions/compilation.rb +70 -0
  350. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-1.3.2/features/step_definitions/cross_compilation.rb +27 -0
  351. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-1.3.2/features/step_definitions/execution.rb +52 -0
  352. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-1.3.2/features/step_definitions/folders.rb +32 -0
  353. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-1.3.2/features/step_definitions/gem.rb +46 -0
  354. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-1.3.2/features/step_definitions/java_compilation.rb +7 -0
  355. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-1.3.2/features/support/env.rb +10 -0
  356. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-1.3.2/features/support/file_template_helpers.rb +137 -0
  357. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-1.3.2/features/support/generator_helpers.rb +123 -0
  358. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-1.3.2/features/support/platform_extension_helpers.rb +27 -0
  359. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-1.3.2/lib/rake/baseextensiontask.rb +90 -0
  360. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-1.3.2/lib/rake/compiler_config.rb +38 -0
  361. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-1.3.2/lib/rake/extensioncompiler.rb +51 -0
  362. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-1.3.2/lib/rake/extensiontask.rb +621 -0
  363. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-1.3.2/lib/rake/javaextensiontask.rb +321 -0
  364. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-1.3.2/tasks/bin/cross-ruby.rake +189 -0
  365. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-1.3.2/tasks/bootstrap.rake +11 -0
  366. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-1.3.2/tasks/common.rake +10 -0
  367. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-1.3.2/tasks/cucumber.rake +23 -0
  368. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-1.3.2/tasks/gem.rake +15 -0
  369. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-1.3.2/tasks/rspec.rake +9 -0
  370. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/CHANGELOG.md +446 -0
  371. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/CONTRIBUTING.md +109 -0
  372. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/Dockerfile.jruby +79 -0
  373. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/Dockerfile.mri.erb +282 -0
  374. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/Gemfile +8 -0
  375. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/LICENSE.txt +22 -0
  376. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/README.md +447 -0
  377. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/Rakefile +246 -0
  378. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/bin/rake-compiler-dock +18 -0
  379. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/build/buildkitd.toml +2 -0
  380. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/build/gem_helper.rb +54 -0
  381. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/build/mk_i686.rb +18 -0
  382. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/build/mk_musl_cross.sh +37 -0
  383. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/build/mk_osxcross.sh +45 -0
  384. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/build/mk_pkg_config.sh +24 -0
  385. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/build/parallel_docker_build.rb +169 -0
  386. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/build/patches/rake-compiler-1.3.1/0004-Enable-build-of-static-libruby.patch +38 -0
  387. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/build/patches/rake-compiler-1.3.1/0005-build-miniruby-first.patch +16 -0
  388. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/build/patches/rake-compiler-1.3.1/0006-ruby-4-rubyspec-capiext.patch +16 -0
  389. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/build/rcd-env.sh +6 -0
  390. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/build/runas +7 -0
  391. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/build/sigfw.c +45 -0
  392. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/build/strip_wrapper_codesign +17 -0
  393. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/build/strip_wrapper_vbox +30 -0
  394. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/build/sudoers +1 -0
  395. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/lib/rake_compiler_dock/colors.rb +43 -0
  396. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/lib/rake_compiler_dock/docker_check.rb +356 -0
  397. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/lib/rake_compiler_dock/predefined_user_group.rb +5 -0
  398. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/lib/rake_compiler_dock/starter.rb +206 -0
  399. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/lib/rake_compiler_dock/version.rb +4 -0
  400. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/lib/rake_compiler_dock.rb +151 -0
  401. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/mingw64-ucrt/Dockerfile +66 -0
  402. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/mingw64-ucrt/README.md +14 -0
  403. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/mingw64-ucrt/binutils-mingw-w64-ignore-check-errors.patch +13 -0
  404. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/mingw64-ucrt/gcc-mingw-w64-only-c-c++.patch +13 -0
  405. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/mingw64-ucrt/mingw-w64-enable-ucrt.patch +22 -0
  406. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/rake-compiler-dock.gemspec +34 -0
  407. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/test/env/Dockerfile.alpine +17 -0
  408. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/test/env/Dockerfile.debian +24 -0
  409. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/test/fixtures/mig_test_rpc.defs +8 -0
  410. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/test/rcd_test/Gemfile +11 -0
  411. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/test/rcd_test/Rakefile +97 -0
  412. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/test/rcd_test/ext/java/RcdTestExtService.java +19 -0
  413. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/test/rcd_test/ext/java/RubyRcdTest.java +16 -0
  414. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/test/rcd_test/ext/mri/extconf.rb +111 -0
  415. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/test/rcd_test/ext/mri/rcd_test_ext.c +65 -0
  416. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/test/rcd_test/ext/mri/rcd_test_ext.h +11 -0
  417. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/test/rcd_test/lib/rcd_test.rb +6 -0
  418. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/test/rcd_test/rcd_test.gemspec +28 -0
  419. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/test/rcd_test/test/test_basic.rb +49 -0
  420. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/test/test_environment_variables.rb +108 -0
  421. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/test/test_mig.rb +18 -0
  422. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/test/test_parallel_docker_build.rb +95 -0
  423. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/test/test_rubygems_plugins.rb +12 -0
  424. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/test/test_starter.rb +158 -0
  425. data/vendor/bundle/ruby/3.4.0/gems/rake-compiler-dock-1.12.0/test/test_versions.rb +82 -0
  426. data/vendor/bundle/ruby/3.4.0/gems/rb_sys-0.9.130/LICENSE-APACHE +190 -0
  427. data/vendor/bundle/ruby/3.4.0/gems/rb_sys-0.9.130/LICENSE-MIT +21 -0
  428. data/vendor/bundle/ruby/3.4.0/gems/rb_sys-0.9.130/README.md +42 -0
  429. data/vendor/bundle/ruby/3.4.0/gems/rb_sys-0.9.130/certs/ianks.pem +21 -0
  430. data/vendor/bundle/ruby/3.4.0/gems/rb_sys-0.9.130/exe/rb-sys-dock +495 -0
  431. data/vendor/bundle/ruby/3.4.0/gems/rb_sys-0.9.130/lib/rb_sys/cargo/config.rb +72 -0
  432. data/vendor/bundle/ruby/3.4.0/gems/rb_sys-0.9.130/lib/rb_sys/cargo/metadata.rb +158 -0
  433. data/vendor/bundle/ruby/3.4.0/gems/rb_sys-0.9.130/lib/rb_sys/cargo.rb +9 -0
  434. data/vendor/bundle/ruby/3.4.0/gems/rb_sys-0.9.130/lib/rb_sys/cargo_builder/link_flag_converter.rb +37 -0
  435. data/vendor/bundle/ruby/3.4.0/gems/rb_sys-0.9.130/lib/rb_sys/cargo_builder.rb +370 -0
  436. data/vendor/bundle/ruby/3.4.0/gems/rb_sys-0.9.130/lib/rb_sys/error.rb +43 -0
  437. data/vendor/bundle/ruby/3.4.0/gems/rb_sys-0.9.130/lib/rb_sys/extensiontask.rb +188 -0
  438. data/vendor/bundle/ruby/3.4.0/gems/rb_sys-0.9.130/lib/rb_sys/mkmf/config.rb +75 -0
  439. data/vendor/bundle/ruby/3.4.0/gems/rb_sys-0.9.130/lib/rb_sys/mkmf.rb +413 -0
  440. data/vendor/bundle/ruby/3.4.0/gems/rb_sys-0.9.130/lib/rb_sys/toolchain_info/data.rb +10 -0
  441. data/vendor/bundle/ruby/3.4.0/gems/rb_sys-0.9.130/lib/rb_sys/toolchain_info.rb +82 -0
  442. data/vendor/bundle/ruby/3.4.0/gems/rb_sys-0.9.130/lib/rb_sys/util/logger.rb +73 -0
  443. data/vendor/bundle/ruby/3.4.0/gems/rb_sys-0.9.130/lib/rb_sys/version.rb +5 -0
  444. data/vendor/bundle/ruby/3.4.0/gems/rb_sys-0.9.130/lib/rb_sys.rb +8 -0
  445. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/BSDL +22 -0
  446. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/CHANGELOG.md +2463 -0
  447. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/COPYING +56 -0
  448. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/Dockerfile.jruby +53 -0
  449. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/README.md +240 -0
  450. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/Rakefile +1213 -0
  451. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/Steepfile +55 -0
  452. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/config.yml +920 -0
  453. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/array.rbs +4205 -0
  454. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/basic_object.rbs +376 -0
  455. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/binding.rbs +148 -0
  456. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/builtin.rbs +278 -0
  457. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/class.rbs +223 -0
  458. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/comparable.rbs +192 -0
  459. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/complex.rbs +812 -0
  460. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/constants.rbs +96 -0
  461. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/data.rbs +415 -0
  462. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/dir.rbs +993 -0
  463. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/encoding.rbs +1368 -0
  464. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/enumerable.rbs +2506 -0
  465. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/enumerator/arithmetic_sequence.rbs +70 -0
  466. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/enumerator/product.rbs +92 -0
  467. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/enumerator.rbs +705 -0
  468. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/env.rbs +6 -0
  469. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/errno.rbs +682 -0
  470. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/errors.rbs +789 -0
  471. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/exception.rbs +485 -0
  472. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/false_class.rbs +82 -0
  473. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/fiber.rbs +570 -0
  474. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/fiber_error.rbs +11 -0
  475. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/file.rbs +2045 -0
  476. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/file_constants.rbs +463 -0
  477. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/file_stat.rbs +534 -0
  478. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/file_test.rbs +331 -0
  479. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/float.rbs +1292 -0
  480. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/gc.rbs +788 -0
  481. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/global_variables.rbs +184 -0
  482. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/hash.rbs +2183 -0
  483. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/integer.rbs +1374 -0
  484. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/io/buffer.rbs +995 -0
  485. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/io/wait.rbs +48 -0
  486. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/io.rbs +3473 -0
  487. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/kernel.rbs +3172 -0
  488. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/marshal.rbs +207 -0
  489. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/match_data.rbs +637 -0
  490. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/math.rbs +770 -0
  491. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/method.rbs +422 -0
  492. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/module.rbs +1856 -0
  493. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/nil_class.rbs +210 -0
  494. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/numeric.rbs +832 -0
  495. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/object.rbs +108 -0
  496. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/object_space/weak_key_map.rbs +166 -0
  497. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/object_space.rbs +197 -0
  498. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/pathname.rbs +1312 -0
  499. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/proc.rbs +905 -0
  500. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/process.rbs +2316 -0
  501. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/ractor.rbs +914 -0
  502. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/random.rbs +255 -0
  503. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/range.rbs +1209 -0
  504. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/rational.rbs +502 -0
  505. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/rb_config.rbs +88 -0
  506. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/rbs/ops.rbs +154 -0
  507. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/rbs/unnamed/argf.rbs +1236 -0
  508. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/rbs/unnamed/env_class.rbs +1214 -0
  509. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/rbs/unnamed/main_class.rbs +123 -0
  510. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/rbs/unnamed/random.rbs +186 -0
  511. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/refinement.rbs +59 -0
  512. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/regexp.rbs +1974 -0
  513. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/ruby.rbs +53 -0
  514. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/ruby_vm.rbs +809 -0
  515. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/rubygems/basic_specification.rbs +6 -0
  516. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/rubygems/config_file.rbs +38 -0
  517. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/rubygems/dependency_installer.rbs +6 -0
  518. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/rubygems/errors.rbs +112 -0
  519. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/rubygems/installer.rbs +15 -0
  520. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/rubygems/path_support.rbs +6 -0
  521. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/rubygems/platform.rbs +7 -0
  522. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/rubygems/request_set.rbs +49 -0
  523. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/rubygems/requirement.rbs +138 -0
  524. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/rubygems/rubygems.rbs +1108 -0
  525. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/rubygems/source_list.rbs +15 -0
  526. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/rubygems/specification.rbs +31 -0
  527. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/rubygems/stream_ui.rbs +5 -0
  528. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/rubygems/uninstaller.rbs +10 -0
  529. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/rubygems/version.rbs +133 -0
  530. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/set.rbs +751 -0
  531. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/signal.rbs +110 -0
  532. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/string.rbs +5532 -0
  533. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/struct.rbs +668 -0
  534. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/symbol.rbs +482 -0
  535. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/thread.rbs +1821 -0
  536. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/thread_group.rbs +79 -0
  537. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/time.rbs +1793 -0
  538. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/trace_point.rbs +483 -0
  539. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/true_class.rbs +98 -0
  540. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/unbound_method.rbs +337 -0
  541. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/core/warning.rbs +87 -0
  542. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/docs/CONTRIBUTING.md +107 -0
  543. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/docs/aliases.md +79 -0
  544. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/docs/architecture.md +110 -0
  545. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/docs/collection.md +192 -0
  546. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/docs/config.md +171 -0
  547. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/docs/data_and_struct.md +86 -0
  548. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/docs/encoding.md +56 -0
  549. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/docs/gem.md +56 -0
  550. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/docs/inline.md +634 -0
  551. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/docs/rbs_by_example.md +309 -0
  552. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/docs/release.md +303 -0
  553. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/docs/repo.md +125 -0
  554. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/docs/rust.md +96 -0
  555. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/docs/sigs.md +167 -0
  556. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/docs/stdlib.md +155 -0
  557. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/docs/syntax.md +952 -0
  558. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/docs/tools.md +17 -0
  559. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/docs/type_fingerprint.md +21 -0
  560. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/docs/wasm_serialization.md +80 -0
  561. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/exe/rbs +7 -0
  562. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/ext/rbs_extension/Makefile +273 -0
  563. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/ext/rbs_extension/ast_translation.c +1870 -0
  564. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/ext/rbs_extension/ast_translation.h +41 -0
  565. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/ext/rbs_extension/class_constants.c +189 -0
  566. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/ext/rbs_extension/class_constants.h +105 -0
  567. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/ext/rbs_extension/compat.h +10 -0
  568. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/ext/rbs_extension/extconf.rb +40 -0
  569. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/ext/rbs_extension/legacy_location.c +299 -0
  570. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/ext/rbs_extension/legacy_location.h +82 -0
  571. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/ext/rbs_extension/main.c +649 -0
  572. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/ext/rbs_extension/rbs_extension.h +16 -0
  573. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/ext/rbs_extension/rbs_string_bridging.c +9 -0
  574. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/ext/rbs_extension/rbs_string_bridging.h +24 -0
  575. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/goodcheck.yml +91 -0
  576. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/include/rbs/ast.h +1055 -0
  577. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/include/rbs/defines.h +104 -0
  578. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/include/rbs/lexer.h +208 -0
  579. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/include/rbs/location.h +40 -0
  580. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/include/rbs/parser.h +187 -0
  581. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/include/rbs/serialize.h +39 -0
  582. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/include/rbs/string.h +47 -0
  583. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/include/rbs/util/rbs_allocator.h +59 -0
  584. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/include/rbs/util/rbs_assert.h +20 -0
  585. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/include/rbs/util/rbs_buffer.h +83 -0
  586. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/include/rbs/util/rbs_constant_pool.h +155 -0
  587. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/include/rbs/util/rbs_encoding.h +282 -0
  588. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/include/rbs/util/rbs_unescape.h +24 -0
  589. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/include/rbs.h +14 -0
  590. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/ancestor_graph.rb +92 -0
  591. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/annotate/annotations.rb +199 -0
  592. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/annotate/formatter.rb +82 -0
  593. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/annotate/rdoc_annotator.rb +398 -0
  594. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/annotate/rdoc_source.rb +131 -0
  595. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/annotate.rb +8 -0
  596. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/ast/annotation.rb +29 -0
  597. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/ast/comment.rb +29 -0
  598. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/ast/declarations.rb +472 -0
  599. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/ast/directives.rb +49 -0
  600. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/ast/members.rb +451 -0
  601. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/ast/ruby/annotations.rb +451 -0
  602. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/ast/ruby/comment_block.rb +247 -0
  603. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/ast/ruby/declarations.rb +291 -0
  604. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/ast/ruby/helpers/constant_helper.rb +28 -0
  605. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/ast/ruby/helpers/location_helper.rb +15 -0
  606. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/ast/ruby/members.rb +762 -0
  607. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/ast/type_param.rb +235 -0
  608. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/ast/visitor.rb +137 -0
  609. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/buffer.rb +189 -0
  610. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/builtin_names.rb +58 -0
  611. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/cli/colored_io.rb +48 -0
  612. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/cli/diff.rb +84 -0
  613. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/cli/validate.rb +294 -0
  614. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/cli.rb +1253 -0
  615. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/collection/cleaner.rb +38 -0
  616. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/collection/config/lockfile.rb +92 -0
  617. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/collection/config/lockfile_generator.rb +269 -0
  618. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/collection/config.rb +81 -0
  619. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/collection/installer.rb +32 -0
  620. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/collection/sources/base.rb +14 -0
  621. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/collection/sources/git.rb +265 -0
  622. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/collection/sources/local.rb +81 -0
  623. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/collection/sources/rubygems.rb +48 -0
  624. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/collection/sources/stdlib.rb +50 -0
  625. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/collection/sources.rb +38 -0
  626. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/collection.rb +16 -0
  627. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/constant.rb +28 -0
  628. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/definition.rb +415 -0
  629. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/definition_builder/ancestor_builder.rb +681 -0
  630. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/definition_builder/method_builder.rb +295 -0
  631. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/definition_builder.rb +1057 -0
  632. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/diff.rb +131 -0
  633. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/environment/class_entry.rb +81 -0
  634. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/environment/module_entry.rb +91 -0
  635. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/environment/use_map.rb +77 -0
  636. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/environment.rb +1028 -0
  637. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/environment_loader.rb +167 -0
  638. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/environment_walker.rb +155 -0
  639. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/errors.rb +634 -0
  640. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/factory.rb +18 -0
  641. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/file_finder.rb +28 -0
  642. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/inline_parser/comment_association.rb +117 -0
  643. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/inline_parser.rb +568 -0
  644. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/location_aux.rb +170 -0
  645. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/locator.rb +247 -0
  646. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/method_type.rb +145 -0
  647. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/namespace.rb +154 -0
  648. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/parser/lex_result.rb +15 -0
  649. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/parser/token.rb +23 -0
  650. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/parser_aux.rb +144 -0
  651. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/prototype/helpers.rb +164 -0
  652. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/prototype/node_usage.rb +99 -0
  653. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/prototype/rb.rb +816 -0
  654. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/prototype/rbi.rb +793 -0
  655. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/prototype/runtime/helpers.rb +59 -0
  656. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/prototype/runtime/reflection.rb +19 -0
  657. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/prototype/runtime/value_object_generator.rb +278 -0
  658. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/prototype/runtime.rb +680 -0
  659. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/repository.rb +127 -0
  660. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/resolver/constant_resolver.rb +219 -0
  661. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/resolver/type_name_resolver.rb +167 -0
  662. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/rewriter.rb +70 -0
  663. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/sorter.rb +198 -0
  664. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/source.rb +99 -0
  665. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/substitution.rb +83 -0
  666. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/subtractor.rb +204 -0
  667. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/test/errors.rb +80 -0
  668. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/test/guaranteed.rb +30 -0
  669. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/test/hook.rb +212 -0
  670. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/test/observer.rb +19 -0
  671. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/test/setup.rb +84 -0
  672. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/test/setup_helper.rb +50 -0
  673. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/test/tester.rb +167 -0
  674. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/test/type_check.rb +457 -0
  675. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/test.rb +112 -0
  676. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/type_alias_dependency.rb +100 -0
  677. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/type_alias_regularity.rb +126 -0
  678. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/type_name.rb +122 -0
  679. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/types.rb +1646 -0
  680. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/unit_test/convertibles.rb +177 -0
  681. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/unit_test/spy.rb +138 -0
  682. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/unit_test/type_assertions.rb +383 -0
  683. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/unit_test/with_aliases.rb +145 -0
  684. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/unit_test.rb +6 -0
  685. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/validator.rb +186 -0
  686. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/variance_calculator.rb +189 -0
  687. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/vendorer.rb +71 -0
  688. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/version.rb +5 -0
  689. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/wasm/deserializer.rb +213 -0
  690. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/wasm/location.rb +61 -0
  691. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/wasm/parser.rb +174 -0
  692. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/wasm/runtime.rb +211 -0
  693. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/wasm/serialization_schema.rb +111 -0
  694. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs/writer.rb +424 -0
  695. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs.rb +117 -0
  696. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs_extension.so +0 -0
  697. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rbs_jars.rb +39 -0
  698. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rdoc/discover.rb +20 -0
  699. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/lib/rdoc_plugin/parser.rb +168 -0
  700. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/rbs.gemspec +77 -0
  701. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/schema/annotation.json +14 -0
  702. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/schema/comment.json +26 -0
  703. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/schema/decls.json +326 -0
  704. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/schema/function.json +98 -0
  705. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/schema/location.json +56 -0
  706. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/schema/members.json +266 -0
  707. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/schema/methodType.json +50 -0
  708. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/schema/typeParam.json +52 -0
  709. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/schema/types.json +317 -0
  710. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/ancestor_builder.rbs +163 -0
  711. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/ancestor_graph.rbs +60 -0
  712. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/annotate/annotations.rbs +102 -0
  713. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/annotate/formatter.rbs +24 -0
  714. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/annotate/rdoc_annotater.rbs +85 -0
  715. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/annotate/rdoc_source.rbs +32 -0
  716. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/annotation.rbs +27 -0
  717. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/ast/ruby/annotations.rbs +470 -0
  718. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/ast/ruby/comment_block.rbs +127 -0
  719. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/ast/ruby/declarations.rbs +158 -0
  720. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/ast/ruby/helpers/constant_helper.rbs +11 -0
  721. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/ast/ruby/helpers/location_helper.rbs +15 -0
  722. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/ast/ruby/members.rbs +198 -0
  723. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/buffer.rbs +108 -0
  724. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/builtin_names.rbs +44 -0
  725. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/cli/colored_io.rbs +15 -0
  726. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/cli/diff.rbs +15 -0
  727. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/cli/validate.rbs +47 -0
  728. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/cli.rbs +89 -0
  729. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/collection/cleaner.rbs +13 -0
  730. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/collection/config/lockfile.rbs +74 -0
  731. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/collection/config/lockfile_generator.rbs +68 -0
  732. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/collection/config.rbs +46 -0
  733. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/collection/installer.rbs +17 -0
  734. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/collection/sources.rbs +214 -0
  735. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/collection.rbs +4 -0
  736. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/comment.rbs +26 -0
  737. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/constant.rbs +21 -0
  738. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/declarations.rbs +274 -0
  739. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/definition.rbs +232 -0
  740. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/definition_builder.rbs +181 -0
  741. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/diff.rbs +28 -0
  742. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/directives.rbs +77 -0
  743. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/environment/class_entry.rbs +56 -0
  744. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/environment/module_entry.rbs +65 -0
  745. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/environment.rbs +286 -0
  746. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/environment_loader.rbs +111 -0
  747. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/environment_walker.rbs +65 -0
  748. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/errors.rbs +408 -0
  749. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/factory.rbs +5 -0
  750. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/file_finder.rbs +28 -0
  751. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/inline_parser/comment_association.rbs +71 -0
  752. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/inline_parser.rbs +126 -0
  753. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/location.rbs +135 -0
  754. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/locator.rbs +56 -0
  755. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/manifest.yaml +5 -0
  756. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/members.rbs +258 -0
  757. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/method_builder.rbs +89 -0
  758. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/method_types.rbs +58 -0
  759. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/namespace.rbs +161 -0
  760. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/parser.rbs +164 -0
  761. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/prototype/helpers.rbs +29 -0
  762. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/prototype/node_usage.rbs +20 -0
  763. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/prototype/rb.rbs +96 -0
  764. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/prototype/rbi.rbs +104 -0
  765. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/prototype/runtime.rbs +182 -0
  766. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/rbs.rbs +21 -0
  767. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/rdoc/rbs.rbs +67 -0
  768. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/repository.rbs +85 -0
  769. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/resolver/constant_resolver.rbs +92 -0
  770. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/resolver/context.rbs +34 -0
  771. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/resolver/type_name_resolver.rbs +61 -0
  772. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/rewriter.rbs +45 -0
  773. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/shims/bundler.rbs +38 -0
  774. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/shims/enumerable.rbs +5 -0
  775. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/shims/rubygems.rbs +19 -0
  776. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/sorter.rbs +41 -0
  777. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/source.rbs +48 -0
  778. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/substitution.rbs +48 -0
  779. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/subtractor.rbs +37 -0
  780. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/test/errors.rbs +52 -0
  781. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/test/guranteed.rbs +9 -0
  782. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/test/type_check.rbs +19 -0
  783. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/test.rbs +82 -0
  784. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/type_alias_dependency.rbs +53 -0
  785. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/type_alias_regularity.rbs +98 -0
  786. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/type_param.rbs +115 -0
  787. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/typename.rbs +89 -0
  788. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/types.rbs +588 -0
  789. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/unit_test/convertibles.rbs +154 -0
  790. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/unit_test/spy.rbs +22 -0
  791. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/unit_test/type_assertions.rbs +211 -0
  792. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/unit_test/with_aliases.rbs +136 -0
  793. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/use_map.rbs +35 -0
  794. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/util.rbs +9 -0
  795. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/validator.rbs +63 -0
  796. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/variance_calculator.rbs +87 -0
  797. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/vendorer.rbs +51 -0
  798. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/version.rbs +3 -0
  799. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/visitor.rbs +47 -0
  800. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/wasm/deserializer.rbs +66 -0
  801. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/wasm/serialization_schema.rbs +13 -0
  802. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/sig/writer.rbs +127 -0
  803. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/src/ast.c +1644 -0
  804. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/src/lexer.c +3223 -0
  805. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/src/lexer.re +187 -0
  806. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/src/lexstate.c +222 -0
  807. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/src/location.c +31 -0
  808. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/src/parser.c +4318 -0
  809. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/src/serialize.c +965 -0
  810. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/src/string.c +41 -0
  811. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/src/util/rbs_allocator.c +171 -0
  812. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/src/util/rbs_assert.c +19 -0
  813. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/src/util/rbs_buffer.c +54 -0
  814. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/src/util/rbs_constant_pool.c +268 -0
  815. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/src/util/rbs_encoding.c +21454 -0
  816. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/src/util/rbs_unescape.c +167 -0
  817. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/abbrev/0/abbrev.rbs +66 -0
  818. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/abbrev/0/array.rbs +26 -0
  819. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/base64/0/base64.rbs +355 -0
  820. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/benchmark/0/benchmark.rbs +452 -0
  821. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/bigdecimal/0/big_decimal.rbs +1647 -0
  822. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/bigdecimal-math/0/big_math.rbs +280 -0
  823. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/bigdecimal-math/0/manifest.yaml +2 -0
  824. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/cgi/0/core.rbs +911 -0
  825. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/cgi/0/manifest.yaml +4 -0
  826. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/cgi-escape/0/escape.rbs +171 -0
  827. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/coverage/0/coverage.rbs +266 -0
  828. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/csv/0/csv.rbs +3776 -0
  829. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/csv/0/manifest.yaml +3 -0
  830. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/date/0/date.rbs +1598 -0
  831. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/date/0/date_time.rbs +617 -0
  832. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/date/0/time.rbs +26 -0
  833. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/dbm/0/dbm.rbs +421 -0
  834. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/delegate/0/delegator.rbs +188 -0
  835. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/delegate/0/kernel.rbs +47 -0
  836. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/delegate/0/simple_delegator.rbs +96 -0
  837. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/did_you_mean/0/did_you_mean.rbs +344 -0
  838. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/digest/0/digest.rbs +693 -0
  839. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/erb/0/erb.rbs +933 -0
  840. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/etc/0/etc.rbs +884 -0
  841. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/fileutils/0/fileutils.rbs +1753 -0
  842. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/find/0/find.rbs +49 -0
  843. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/forwardable/0/forwardable.rbs +271 -0
  844. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/io-console/0/io-console.rbs +414 -0
  845. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/ipaddr/0/ipaddr.rbs +431 -0
  846. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/json/0/json.rbs +1963 -0
  847. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/kconv/0/kconv.rbs +166 -0
  848. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/logger/0/formatter.rbs +45 -0
  849. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/logger/0/log_device.rbs +100 -0
  850. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/logger/0/logger.rbs +796 -0
  851. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/logger/0/manifest.yaml +2 -0
  852. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/logger/0/period.rbs +17 -0
  853. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/logger/0/severity.rbs +34 -0
  854. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/minitest/0/kernel.rbs +42 -0
  855. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/minitest/0/minitest/abstract_reporter.rbs +52 -0
  856. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/minitest/0/minitest/assertion.rbs +17 -0
  857. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/minitest/0/minitest/assertions.rbs +590 -0
  858. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/minitest/0/minitest/backtrace_filter.rbs +23 -0
  859. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/minitest/0/minitest/bench_spec.rbs +102 -0
  860. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/minitest/0/minitest/benchmark.rbs +259 -0
  861. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/minitest/0/minitest/composite_reporter.rbs +25 -0
  862. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/minitest/0/minitest/compress.rbs +13 -0
  863. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/minitest/0/minitest/error_on_warning.rbs +3 -0
  864. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/minitest/0/minitest/expectation.rbs +2 -0
  865. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/minitest/0/minitest/expectations.rbs +21 -0
  866. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/minitest/0/minitest/guard.rbs +64 -0
  867. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/minitest/0/minitest/mock.rbs +64 -0
  868. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/minitest/0/minitest/parallel/executor.rbs +46 -0
  869. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/minitest/0/minitest/parallel/test/class_methods.rbs +5 -0
  870. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/minitest/0/minitest/parallel/test.rbs +3 -0
  871. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/minitest/0/minitest/parallel.rbs +2 -0
  872. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/minitest/0/minitest/pride_io.rbs +62 -0
  873. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/minitest/0/minitest/pride_lol.rbs +19 -0
  874. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/minitest/0/minitest/progress_reporter.rbs +11 -0
  875. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/minitest/0/minitest/reportable.rbs +53 -0
  876. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/minitest/0/minitest/reporter.rbs +5 -0
  877. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/minitest/0/minitest/result.rbs +28 -0
  878. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/minitest/0/minitest/runnable.rbs +163 -0
  879. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/minitest/0/minitest/skip.rbs +6 -0
  880. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/minitest/0/minitest/spec/dsl/instance_methods.rbs +48 -0
  881. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/minitest/0/minitest/spec/dsl.rbs +129 -0
  882. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/minitest/0/minitest/spec.rbs +11 -0
  883. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/minitest/0/minitest/statistics_reporter.rbs +81 -0
  884. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/minitest/0/minitest/summary_reporter.rbs +18 -0
  885. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/minitest/0/minitest/test/lifecycle_hooks.rbs +92 -0
  886. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/minitest/0/minitest/test.rbs +69 -0
  887. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/minitest/0/minitest/unexpected_error.rbs +12 -0
  888. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/minitest/0/minitest/unexpected_warning.rbs +6 -0
  889. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/minitest/0/minitest/unit/test_case.rbs +3 -0
  890. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/minitest/0/minitest/unit.rbs +4 -0
  891. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/minitest/0/minitest.rbs +115 -0
  892. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/monitor/0/monitor.rbs +363 -0
  893. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/mutex_m/0/mutex_m.rbs +104 -0
  894. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/net-http/0/manifest.yaml +3 -0
  895. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/net-http/0/net-http.rbs +5580 -0
  896. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/net-protocol/0/manifest.yaml +2 -0
  897. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/net-protocol/0/net-protocol.rbs +56 -0
  898. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/net-smtp/0/manifest.yaml +2 -0
  899. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/net-smtp/0/net-smtp.rbs +55 -0
  900. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/nkf/0/nkf.rbs +402 -0
  901. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/objspace/0/objspace.rbs +470 -0
  902. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/observable/0/observable.rbs +217 -0
  903. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/open-uri/0/manifest.yaml +4 -0
  904. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/open-uri/0/open-uri.rbs +433 -0
  905. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/open3/0/open3.rbs +606 -0
  906. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/openssl/0/manifest.yaml +3 -0
  907. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/openssl/0/openssl.rbs +12237 -0
  908. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/optparse/0/optparse.rbs +1734 -0
  909. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/pathname/0/pathname.rbs +36 -0
  910. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/pp/0/manifest.yaml +2 -0
  911. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/pp/0/pp.rbs +301 -0
  912. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/prettyprint/0/prettyprint.rbs +383 -0
  913. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/pstore/0/pstore.rbs +608 -0
  914. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/psych/0/core_ext.rbs +12 -0
  915. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/psych/0/dbm.rbs +237 -0
  916. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/psych/0/manifest.yaml +3 -0
  917. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/psych/0/psych.rbs +455 -0
  918. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/psych/0/store.rbs +57 -0
  919. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/pty/0/pty.rbs +240 -0
  920. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/random-formatter/0/random-formatter.rbs +277 -0
  921. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/rdoc/0/code_object.rbs +52 -0
  922. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/rdoc/0/comment.rbs +61 -0
  923. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/rdoc/0/context.rbs +153 -0
  924. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/rdoc/0/markup.rbs +117 -0
  925. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/rdoc/0/options.rbs +76 -0
  926. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/rdoc/0/parser.rbs +56 -0
  927. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/rdoc/0/rdoc.rbs +393 -0
  928. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/rdoc/0/ri.rbs +17 -0
  929. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/rdoc/0/store.rbs +48 -0
  930. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/rdoc/0/top_level.rbs +97 -0
  931. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/resolv/0/manifest.yaml +3 -0
  932. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/resolv/0/resolv.rbs +1787 -0
  933. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/ripper/0/ripper.rbs +1654 -0
  934. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/securerandom/0/manifest.yaml +2 -0
  935. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/securerandom/0/securerandom.rbs +49 -0
  936. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/shellwords/0/shellwords.rbs +229 -0
  937. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/singleton/0/singleton.rbs +137 -0
  938. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/socket/0/addrinfo.rbs +666 -0
  939. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/socket/0/basic_socket.rbs +590 -0
  940. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/socket/0/constants.rbs +2295 -0
  941. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/socket/0/ip_socket.rbs +94 -0
  942. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/socket/0/socket.rbs +4170 -0
  943. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/socket/0/socket_error.rbs +5 -0
  944. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/socket/0/tcp_server.rbs +192 -0
  945. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/socket/0/tcp_socket.rbs +87 -0
  946. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/socket/0/udp_socket.rbs +133 -0
  947. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/socket/0/unix_server.rbs +169 -0
  948. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/socket/0/unix_socket.rbs +172 -0
  949. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/stringio/0/stringio.rbs +1682 -0
  950. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/strscan/0/string_scanner.rbs +1648 -0
  951. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/tempfile/0/manifest.yaml +3 -0
  952. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/tempfile/0/tempfile.rbs +483 -0
  953. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/time/0/time.rbs +434 -0
  954. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/timeout/0/timeout.rbs +132 -0
  955. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/tmpdir/0/tmpdir.rbs +69 -0
  956. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/tsort/0/cyclic.rbs +8 -0
  957. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/tsort/0/interfaces.rbs +20 -0
  958. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/tsort/0/tsort.rbs +410 -0
  959. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/uri/0/common.rbs +621 -0
  960. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/uri/0/file.rbs +118 -0
  961. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/uri/0/ftp.rbs +13 -0
  962. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/uri/0/generic.rbs +1111 -0
  963. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/uri/0/http.rbs +104 -0
  964. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/uri/0/https.rbs +14 -0
  965. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/uri/0/ldap.rbs +230 -0
  966. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/uri/0/ldaps.rbs +14 -0
  967. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/uri/0/mailto.rbs +92 -0
  968. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/uri/0/rfc2396_parser.rbs +189 -0
  969. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/uri/0/rfc3986_parser.rbs +2 -0
  970. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/uri/0/ws.rbs +13 -0
  971. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/uri/0/wss.rbs +9 -0
  972. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/yaml/0/manifest.yaml +2 -0
  973. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/yaml/0/yaml.rbs +1 -0
  974. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/zlib/0/buf_error.rbs +10 -0
  975. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/zlib/0/data_error.rbs +10 -0
  976. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/zlib/0/deflate.rbs +211 -0
  977. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/zlib/0/error.rbs +20 -0
  978. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/zlib/0/gzip_file/crc_error.rbs +12 -0
  979. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/zlib/0/gzip_file/error.rbs +23 -0
  980. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/zlib/0/gzip_file/length_error.rbs +12 -0
  981. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/zlib/0/gzip_file/no_footer.rbs +11 -0
  982. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/zlib/0/gzip_file.rbs +156 -0
  983. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/zlib/0/gzip_reader.rbs +293 -0
  984. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/zlib/0/gzip_writer.rbs +169 -0
  985. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/zlib/0/inflate.rbs +180 -0
  986. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/zlib/0/mem_error.rbs +10 -0
  987. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/zlib/0/need_dict.rbs +13 -0
  988. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/zlib/0/stream_end.rbs +11 -0
  989. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/zlib/0/stream_error.rbs +11 -0
  990. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/zlib/0/version_error.rbs +11 -0
  991. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/zlib/0/zlib.rbs +449 -0
  992. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/stdlib/zlib/0/zstream.rbs +200 -0
  993. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/wasm/README.md +109 -0
  994. data/vendor/bundle/ruby/3.4.0/gems/rbs-4.2.0/wasm/rbs_wasm.c +479 -0
  995. data/vendor/bundle/ruby/3.4.0/gems/toml-rb-6.0.0/LICENSE +19 -0
  996. data/vendor/bundle/ruby/3.4.0/gems/toml-rb-6.0.0/README.md +135 -0
  997. data/vendor/bundle/ruby/3.4.0/gems/toml-rb-6.0.0/lib/toml-rb/datetime.rb +54 -0
  998. data/vendor/bundle/ruby/3.4.0/gems/toml-rb-6.0.0/lib/toml-rb/dumper.rb +182 -0
  999. data/vendor/bundle/ruby/3.4.0/gems/toml-rb-6.0.0/lib/toml-rb/errors.rb +17 -0
  1000. data/vendor/bundle/ruby/3.4.0/gems/toml-rb-6.0.0/lib/toml-rb/inline_table.rb +18 -0
  1001. data/vendor/bundle/ruby/3.4.0/gems/toml-rb-6.0.0/lib/toml-rb/keyvalue.rb +45 -0
  1002. data/vendor/bundle/ruby/3.4.0/gems/toml-rb-6.0.0/lib/toml-rb/parser.rb +296 -0
  1003. data/vendor/bundle/ruby/3.4.0/gems/toml-rb-6.0.0/lib/toml-rb/string.rb +41 -0
  1004. data/vendor/bundle/ruby/3.4.0/gems/toml-rb-6.0.0/lib/toml-rb/table.rb +34 -0
  1005. data/vendor/bundle/ruby/3.4.0/gems/toml-rb-6.0.0/lib/toml-rb/table_array.rb +43 -0
  1006. data/vendor/bundle/ruby/3.4.0/gems/toml-rb-6.0.0/lib/toml-rb/version.rb +5 -0
  1007. data/vendor/bundle/ruby/3.4.0/gems/toml-rb-6.0.0/lib/toml-rb.rb +90 -0
  1008. data/vendor/bundle/ruby/3.4.0/gems/tsort-0.2.0/Gemfile +4 -0
  1009. data/vendor/bundle/ruby/3.4.0/gems/tsort-0.2.0/LICENSE.txt +22 -0
  1010. data/vendor/bundle/ruby/3.4.0/gems/tsort-0.2.0/README.md +72 -0
  1011. data/vendor/bundle/ruby/3.4.0/gems/tsort-0.2.0/Rakefile +10 -0
  1012. data/vendor/bundle/ruby/3.4.0/gems/tsort-0.2.0/bin/console +14 -0
  1013. data/vendor/bundle/ruby/3.4.0/gems/tsort-0.2.0/bin/setup +8 -0
  1014. data/vendor/bundle/ruby/3.4.0/gems/tsort-0.2.0/lib/tsort.rb +455 -0
  1015. data/vendor/bundle/ruby/3.4.0/gems/tsort-0.2.0/tsort.gemspec +29 -0
  1016. data/vendor/bundle/ruby/3.4.0/specifications/drb-2.2.3.gemspec +22 -0
  1017. data/vendor/bundle/ruby/3.4.0/specifications/logger-1.7.0.gemspec +22 -0
  1018. data/vendor/bundle/ruby/3.4.0/specifications/minitest-6.0.6.gemspec +35 -0
  1019. data/vendor/bundle/ruby/3.4.0/specifications/prism-1.9.0.gemspec +24 -0
  1020. data/vendor/bundle/ruby/3.4.0/specifications/rake-13.4.2.gemspec +26 -0
  1021. data/vendor/bundle/ruby/3.4.0/specifications/rake-compiler-1.3.2.gemspec +33 -0
  1022. data/vendor/bundle/ruby/3.4.0/specifications/rake-compiler-dock-1.12.0.gemspec +28 -0
  1023. data/vendor/bundle/ruby/3.4.0/specifications/rb_sys-0.9.130.gemspec +29 -0
  1024. data/vendor/bundle/ruby/3.4.0/specifications/rbs-4.2.0.gemspec +33 -0
  1025. data/vendor/bundle/ruby/3.4.0/specifications/toml-rb-6.0.0.gemspec +27 -0
  1026. data/vendor/bundle/ruby/3.4.0/specifications/tsort-0.2.0.gemspec +23 -0
  1027. data/vendor/cache/Cargo.toml +21 -0
  1028. data/vendor/cache/LICENSE +21 -0
  1029. data/vendor/cache/README.md +5 -0
  1030. data/vendor/cache/src/hash.rs +85 -0
  1031. data/vendor/cache/src/lib.rs +751 -0
  1032. data/vendor/cache/src/loom_tests.rs +340 -0
  1033. data/vendor/cache/src/s3fifo.rs +648 -0
  1034. data/vendor/cache/src/sync.rs +25 -0
  1035. data/vendor/cache/src/tests.rs +260 -0
  1036. data/vendor/compaction/Cargo.toml +32 -0
  1037. data/vendor/compaction/LICENSE +21 -0
  1038. data/vendor/compaction/README.md +5 -0
  1039. data/vendor/compaction/src/blob.rs +478 -0
  1040. data/vendor/compaction/src/cursor.rs +700 -0
  1041. data/vendor/compaction/src/gc.rs +802 -0
  1042. data/vendor/compaction/src/job.rs +861 -0
  1043. data/vendor/compaction/src/lib.rs +102 -0
  1044. data/vendor/compaction/src/merge.rs +995 -0
  1045. data/vendor/compaction/src/picker.rs +681 -0
  1046. data/vendor/compaction/src/resolver.rs +1346 -0
  1047. data/vendor/engine/Cargo.toml +56 -0
  1048. data/vendor/engine/LICENSE +21 -0
  1049. data/vendor/engine/README.md +5 -0
  1050. data/vendor/engine/src/admission.rs +421 -0
  1051. data/vendor/engine/src/catalog.rs +1233 -0
  1052. data/vendor/engine/src/check.rs +1386 -0
  1053. data/vendor/engine/src/clock.rs +244 -0
  1054. data/vendor/engine/src/clock_loom.rs +482 -0
  1055. data/vendor/engine/src/close_gate.rs +325 -0
  1056. data/vendor/engine/src/compact.rs +1509 -0
  1057. data/vendor/engine/src/engine/hooks.rs +1654 -0
  1058. data/vendor/engine/src/engine/info.rs +229 -0
  1059. data/vendor/engine/src/engine.rs +6114 -0
  1060. data/vendor/engine/src/error.rs +490 -0
  1061. data/vendor/engine/src/feed.rs +960 -0
  1062. data/vendor/engine/src/feed_reader.rs +1600 -0
  1063. data/vendor/engine/src/flush.rs +839 -0
  1064. data/vendor/engine/src/flushed_roots.rs +158 -0
  1065. data/vendor/engine/src/flushed_through_loom.rs +77 -0
  1066. data/vendor/engine/src/health.rs +201 -0
  1067. data/vendor/engine/src/large.rs +372 -0
  1068. data/vendor/engine/src/large_settle.rs +201 -0
  1069. data/vendor/engine/src/lib.rs +112 -0
  1070. data/vendor/engine/src/load_slot.rs +324 -0
  1071. data/vendor/engine/src/maintenance.rs +935 -0
  1072. data/vendor/engine/src/manifest/flight.rs +563 -0
  1073. data/vendor/engine/src/manifest.rs +1516 -0
  1074. data/vendor/engine/src/nonblocking.rs +603 -0
  1075. data/vendor/engine/src/options.rs +334 -0
  1076. data/vendor/engine/src/position.rs +125 -0
  1077. data/vendor/engine/src/purge_guard.rs +220 -0
  1078. data/vendor/engine/src/read/keys.rs +1049 -0
  1079. data/vendor/engine/src/read/knn.rs +423 -0
  1080. data/vendor/engine/src/read/reduce.rs +2057 -0
  1081. data/vendor/engine/src/read/traverse.rs +1013 -0
  1082. data/vendor/engine/src/read.rs +2429 -0
  1083. data/vendor/engine/src/row_cache.rs +1101 -0
  1084. data/vendor/engine/src/shard/tablets.rs +3582 -0
  1085. data/vendor/engine/src/shard.rs +12215 -0
  1086. data/vendor/engine/src/snapshot.rs +1429 -0
  1087. data/vendor/engine/src/source.rs +1379 -0
  1088. data/vendor/engine/src/timer_state.rs +226 -0
  1089. data/vendor/engine/src/waker.rs +124 -0
  1090. data/vendor/engine/src/watermark_waiters.rs +674 -0
  1091. data/vendor/engine/src/write.rs +1321 -0
  1092. data/vendor/format/Cargo.toml +40 -0
  1093. data/vendor/format/LICENSE +21 -0
  1094. data/vendor/format/README.md +5 -0
  1095. data/vendor/format/src/blob.rs +101 -0
  1096. data/vendor/format/src/block.rs +1120 -0
  1097. data/vendor/format/src/bloom.rs +456 -0
  1098. data/vendor/format/src/buckets.rs +552 -0
  1099. data/vendor/format/src/bytes.rs +101 -0
  1100. data/vendor/format/src/checksum.rs +132 -0
  1101. data/vendor/format/src/compress.rs +196 -0
  1102. data/vendor/format/src/cursor.rs +110 -0
  1103. data/vendor/format/src/distance.rs +598 -0
  1104. data/vendor/format/src/error.rs +93 -0
  1105. data/vendor/format/src/exact.rs +602 -0
  1106. data/vendor/format/src/feed.rs +285 -0
  1107. data/vendor/format/src/filter.rs +157 -0
  1108. data/vendor/format/src/half.rs +182 -0
  1109. data/vendor/format/src/hash.rs +127 -0
  1110. data/vendor/format/src/hll.rs +500 -0
  1111. data/vendor/format/src/ids.rs +95 -0
  1112. data/vendor/format/src/key.rs +620 -0
  1113. data/vendor/format/src/kind_params.rs +101 -0
  1114. data/vendor/format/src/lib.rs +54 -0
  1115. data/vendor/format/src/manifest.rs +1287 -0
  1116. data/vendor/format/src/roaring.rs +865 -0
  1117. data/vendor/format/src/scan.rs +297 -0
  1118. data/vendor/format/src/shm.rs +805 -0
  1119. data/vendor/format/src/sst.rs +233 -0
  1120. data/vendor/format/src/superblock.rs +345 -0
  1121. data/vendor/format/src/value.rs +163 -0
  1122. data/vendor/format/src/varint.rs +87 -0
  1123. data/vendor/format/src/vector.rs +936 -0
  1124. data/vendor/format/src/version.rs +92 -0
  1125. data/vendor/format/src/wal.rs +999 -0
  1126. data/vendor/io/Cargo.toml +29 -0
  1127. data/vendor/io/LICENSE +21 -0
  1128. data/vendor/io/README.md +5 -0
  1129. data/vendor/io/src/async_poll.rs +44 -0
  1130. data/vendor/io/src/buf.rs +694 -0
  1131. data/vendor/io/src/completion.rs +444 -0
  1132. data/vendor/io/src/error.rs +110 -0
  1133. data/vendor/io/src/file.rs +206 -0
  1134. data/vendor/io/src/lib.rs +53 -0
  1135. data/vendor/io/src/nowait.rs +256 -0
  1136. data/vendor/io/src/os/mod.rs +149 -0
  1137. data/vendor/io/src/os/unix.rs +897 -0
  1138. data/vendor/io/src/os/windows.rs +552 -0
  1139. data/vendor/io/src/own.rs +257 -0
  1140. data/vendor/io/src/pread.rs +854 -0
  1141. data/vendor/io/src/ring_wake.rs +113 -0
  1142. data/vendor/io/src/shared.rs +410 -0
  1143. data/vendor/io/src/sim.rs +1545 -0
  1144. data/vendor/io/src/sys.rs +214 -0
  1145. data/vendor/io/src/uring.rs +1839 -0
  1146. data/vendor/io/src/vfs.rs +154 -0
  1147. data/vendor/memory/Cargo.toml +34 -0
  1148. data/vendor/memory/LICENSE +21 -0
  1149. data/vendor/memory/README.md +11 -0
  1150. data/vendor/memory/src/consolidate.rs +640 -0
  1151. data/vendor/memory/src/dedup.rs +231 -0
  1152. data/vendor/memory/src/error.rs +131 -0
  1153. data/vendor/memory/src/feed_loop.rs +572 -0
  1154. data/vendor/memory/src/forget.rs +724 -0
  1155. data/vendor/memory/src/hooks.rs +109 -0
  1156. data/vendor/memory/src/ivf.rs +204 -0
  1157. data/vendor/memory/src/layout.rs +340 -0
  1158. data/vendor/memory/src/lib.rs +61 -0
  1159. data/vendor/memory/src/recall.rs +1182 -0
  1160. data/vendor/memory/src/store.rs +1785 -0
  1161. data/vendor/memory/src/watch.rs +339 -0
  1162. data/vendor/memtable/Cargo.toml +24 -0
  1163. data/vendor/memtable/LICENSE +21 -0
  1164. data/vendor/memtable/README.md +5 -0
  1165. data/vendor/memtable/src/lib.rs +1658 -0
  1166. data/vendor/memtable/src/loom_tests.rs +274 -0
  1167. data/vendor/memtable/src/mem.rs +344 -0
  1168. data/vendor/memtable/src/tests.rs +1061 -0
  1169. data/vendor/pager/Cargo.toml +23 -0
  1170. data/vendor/pager/LICENSE +21 -0
  1171. data/vendor/pager/README.md +5 -0
  1172. data/vendor/pager/src/alloc.rs +1008 -0
  1173. data/vendor/pager/src/lib.rs +1710 -0
  1174. data/vendor/pigeonhole/Cargo.toml +42 -0
  1175. data/vendor/pigeonhole/LICENSE +21 -0
  1176. data/vendor/pigeonhole/README.md +99 -0
  1177. data/vendor/pigeonhole/src/cell.rs +829 -0
  1178. data/vendor/pigeonhole/src/check.rs +368 -0
  1179. data/vendor/pigeonhole/src/db.rs +2324 -0
  1180. data/vendor/pigeonhole/src/doc_support.rs +89 -0
  1181. data/vendor/pigeonhole/src/error.rs +257 -0
  1182. data/vendor/pigeonhole/src/feed.rs +696 -0
  1183. data/vendor/pigeonhole/src/info.rs +425 -0
  1184. data/vendor/pigeonhole/src/lib.rs +202 -0
  1185. data/vendor/pigeonhole/src/merge.rs +135 -0
  1186. data/vendor/pigeonhole/src/metrics.rs +476 -0
  1187. data/vendor/pigeonhole/src/nonblocking.rs +666 -0
  1188. data/vendor/pigeonhole/src/options.rs +2075 -0
  1189. data/vendor/pigeonhole/src/read/budget.rs +584 -0
  1190. data/vendor/pigeonhole/src/read.rs +2463 -0
  1191. data/vendor/pigeonhole/src/recovery.rs +876 -0
  1192. data/vendor/pigeonhole/src/retry.rs +358 -0
  1193. data/vendor/pigeonhole/src/set.rs +103 -0
  1194. data/vendor/pigeonhole/src/table.rs +861 -0
  1195. data/vendor/pigeonhole/src/vector.rs +351 -0
  1196. data/vendor/pigeonhole/src/write.rs +2815 -0
  1197. data/vendor/runtime/Cargo.toml +21 -0
  1198. data/vendor/runtime/LICENSE +21 -0
  1199. data/vendor/runtime/README.md +5 -0
  1200. data/vendor/runtime/src/completion.rs +629 -0
  1201. data/vendor/runtime/src/drivers.rs +1175 -0
  1202. data/vendor/runtime/src/lib.rs +1546 -0
  1203. data/vendor/runtime/src/pool.rs +992 -0
  1204. data/vendor/runtime/src/sched.rs +809 -0
  1205. data/vendor/runtime/src/signal.rs +532 -0
  1206. data/vendor/runtime/src/submit_gate.rs +144 -0
  1207. data/vendor/shm/Cargo.toml +24 -0
  1208. data/vendor/shm/LICENSE +21 -0
  1209. data/vendor/shm/README.md +5 -0
  1210. data/vendor/shm/src/lib.rs +427 -0
  1211. data/vendor/shm/src/lock.rs +153 -0
  1212. data/vendor/shm/src/region.rs +1609 -0
  1213. data/vendor/sst/Cargo.toml +26 -0
  1214. data/vendor/sst/LICENSE +21 -0
  1215. data/vendor/sst/README.md +5 -0
  1216. data/vendor/sst/src/blob.rs +380 -0
  1217. data/vendor/sst/src/iter.rs +803 -0
  1218. data/vendor/sst/src/lib.rs +695 -0
  1219. data/vendor/sst/src/reader.rs +814 -0
  1220. data/vendor/sst/src/writer.rs +596 -0
  1221. data/vendor/text/Cargo.toml +26 -0
  1222. data/vendor/text/LICENSE +21 -0
  1223. data/vendor/text/README.md +9 -0
  1224. data/vendor/text/src/error.rs +108 -0
  1225. data/vendor/text/src/fuzzy.rs +265 -0
  1226. data/vendor/text/src/highlight.rs +236 -0
  1227. data/vendor/text/src/index.rs +1152 -0
  1228. data/vendor/text/src/layout.rs +424 -0
  1229. data/vendor/text/src/lib.rs +75 -0
  1230. data/vendor/text/src/maxscore.rs +658 -0
  1231. data/vendor/text/src/query.rs +450 -0
  1232. data/vendor/text/src/search.rs +569 -0
  1233. data/vendor/text/src/sloppy.rs +460 -0
  1234. data/vendor/text/src/tokenizer.rs +163 -0
  1235. data/vendor/vector/Cargo.toml +28 -0
  1236. data/vendor/vector/LICENSE +21 -0
  1237. data/vendor/vector/README.md +9 -0
  1238. data/vendor/vector/src/error.rs +63 -0
  1239. data/vendor/vector/src/half.rs +167 -0
  1240. data/vendor/vector/src/hooks.rs +135 -0
  1241. data/vendor/vector/src/index.rs +2690 -0
  1242. data/vendor/vector/src/layout.rs +102 -0
  1243. data/vendor/vector/src/lib.rs +52 -0
  1244. data/vendor/vector/src/point.rs +500 -0
  1245. data/vendor/vector/src/rebalancer.rs +200 -0
  1246. data/vendor/vector/src/registry.rs +81 -0
  1247. data/vendor/wal/Cargo.toml +25 -0
  1248. data/vendor/wal/LICENSE +21 -0
  1249. data/vendor/wal/README.md +5 -0
  1250. data/vendor/wal/src/feed.rs +610 -0
  1251. data/vendor/wal/src/foreground.rs +122 -0
  1252. data/vendor/wal/src/lib.rs +458 -0
  1253. data/vendor/wal/src/mem.rs +166 -0
  1254. data/vendor/wal/src/recovery.rs +426 -0
  1255. data/vendor/wal/src/stream.rs +2382 -0
  1256. metadata +1310 -0
@@ -0,0 +1,1993 @@
1
+ # frozen_string_literal: false
2
+ #
3
+ # = drb/drb.rb
4
+ #
5
+ # Distributed Ruby: _dRuby_
6
+ #
7
+ # Copyright (c) 1999-2003 Masatoshi SEKI. You can redistribute it and/or
8
+ # modify it under the same terms as Ruby.
9
+ #
10
+ # Author:: Masatoshi SEKI
11
+ #
12
+ # Documentation:: William Webber (william@williamwebber.com)
13
+ #
14
+ # == Overview
15
+ #
16
+ # dRuby is a distributed object system for Ruby. It allows an object in one
17
+ # Ruby process to invoke methods on an object in another Ruby process on the
18
+ # same or a different machine.
19
+ #
20
+ # The Ruby standard library contains the core classes of the dRuby package.
21
+ # However, the full package also includes access control lists and the
22
+ # Rinda tuple-space distributed task management system, as well as a
23
+ # large number of samples. The full dRuby package can be downloaded from
24
+ # the dRuby home page (see *References*).
25
+ #
26
+ # For an introduction and examples of usage see the documentation to the
27
+ # DRb module.
28
+ #
29
+ # == References
30
+ #
31
+ # [http://www2a.biglobe.ne.jp/~seki/ruby/druby.html]
32
+ # The dRuby home page, in Japanese. Contains the full dRuby package
33
+ # and links to other Japanese-language sources.
34
+ #
35
+ # [http://www2a.biglobe.ne.jp/~seki/ruby/druby.en.html]
36
+ # The English version of the dRuby home page.
37
+ #
38
+ # [https://web.archive.org/web/20160611151955/https://pragprog.com/book/sidruby/the-druby-book]
39
+ # The dRuby Book: Distributed and Parallel Computing with Ruby
40
+ # by Masatoshi Seki and Makoto Inoue
41
+ #
42
+ # [http://ruby-doc.com/docs/ProgrammingRuby/html/ospace.html]
43
+ # The chapter from *Programming* *Ruby* by Dave Thomas and Andy Hunt
44
+ # which discusses dRuby.
45
+ #
46
+ # [http://www.clio.ne.jp/home/web-i31s/Flotuard/Ruby/PRC2K_seki/dRuby.en.html]
47
+ # Translation of presentation on Ruby by Masatoshi Seki.
48
+
49
+ require 'socket'
50
+ require 'io/wait'
51
+ require 'monitor'
52
+ require_relative 'eq'
53
+ require_relative 'version'
54
+
55
+ #
56
+ # == Overview
57
+ #
58
+ # dRuby is a distributed object system for Ruby. It is written in
59
+ # pure Ruby and uses its own protocol. No add-in services are needed
60
+ # beyond those provided by the Ruby runtime, such as TCP sockets. It
61
+ # does not rely on or interoperate with other distributed object
62
+ # systems such as CORBA, RMI, or .NET.
63
+ #
64
+ # dRuby allows methods to be called in one Ruby process upon a Ruby
65
+ # object located in another Ruby process, even on another machine.
66
+ # References to objects can be passed between processes. Method
67
+ # arguments and return values are dumped and loaded in marshalled
68
+ # format. All of this is done transparently to both the caller of the
69
+ # remote method and the object that it is called upon.
70
+ #
71
+ # An object in a remote process is locally represented by a
72
+ # DRb::DRbObject instance. This acts as a sort of proxy for the
73
+ # remote object. Methods called upon this DRbObject instance are
74
+ # forwarded to its remote object. This is arranged dynamically at run
75
+ # time. There are no statically declared interfaces for remote
76
+ # objects, such as CORBA's IDL.
77
+ #
78
+ # dRuby calls made into a process are handled by a DRb::DRbServer
79
+ # instance within that process. This reconstitutes the method call,
80
+ # invokes it upon the specified local object, and returns the value to
81
+ # the remote caller. Any object can receive calls over dRuby. There
82
+ # is no need to implement a special interface, or mixin special
83
+ # functionality. Nor, in the general case, does an object need to
84
+ # explicitly register itself with a DRbServer in order to receive
85
+ # dRuby calls.
86
+ #
87
+ # One process wishing to make dRuby calls upon another process must
88
+ # somehow obtain an initial reference to an object in the remote
89
+ # process by some means other than as the return value of a remote
90
+ # method call, as there is initially no remote object reference it can
91
+ # invoke a method upon. This is done by attaching to the server by
92
+ # URI. Each DRbServer binds itself to a URI such as
93
+ # 'druby://example.com:8787'. A DRbServer can have an object attached
94
+ # to it that acts as the server's *front* *object*. A DRbObject can
95
+ # be explicitly created from the server's URI. This DRbObject's
96
+ # remote object will be the server's front object. This front object
97
+ # can then return references to other Ruby objects in the DRbServer's
98
+ # process.
99
+ #
100
+ # Method calls made over dRuby behave largely the same as normal Ruby
101
+ # method calls made within a process. Method calls with blocks are
102
+ # supported, as are raising exceptions. In addition to a method's
103
+ # standard errors, a dRuby call may also raise one of the
104
+ # dRuby-specific errors, all of which are subclasses of DRb::DRbError.
105
+ #
106
+ # Any type of object can be passed as an argument to a dRuby call or
107
+ # returned as its return value. By default, such objects are dumped
108
+ # or marshalled at the local end, then loaded or unmarshalled at the
109
+ # remote end. The remote end therefore receives a copy of the local
110
+ # object, not a distributed reference to it; methods invoked upon this
111
+ # copy are executed entirely in the remote process, not passed on to
112
+ # the local original. This has semantics similar to pass-by-value.
113
+ #
114
+ # However, if an object cannot be marshalled, a dRuby reference to it
115
+ # is passed or returned instead. This will turn up at the remote end
116
+ # as a DRbObject instance. All methods invoked upon this remote proxy
117
+ # are forwarded to the local object, as described in the discussion of
118
+ # DRbObjects. This has semantics similar to the normal Ruby
119
+ # pass-by-reference.
120
+ #
121
+ # The easiest way to signal that we want an otherwise marshallable
122
+ # object to be passed or returned as a DRbObject reference, rather
123
+ # than marshalled and sent as a copy, is to include the
124
+ # DRb::DRbUndumped mixin module.
125
+ #
126
+ # dRuby supports calling remote methods with blocks. As blocks (or
127
+ # rather the Proc objects that represent them) are not marshallable,
128
+ # the block executes in the local, not the remote, context. Each
129
+ # value yielded to the block is passed from the remote object to the
130
+ # local block, then the value returned by each block invocation is
131
+ # passed back to the remote execution context to be collected, before
132
+ # the collected values are finally returned to the local context as
133
+ # the return value of the method invocation.
134
+ #
135
+ # == Examples of usage
136
+ #
137
+ # For more dRuby samples, see the +samples+ directory in the full
138
+ # dRuby distribution.
139
+ #
140
+ # === dRuby in client/server mode
141
+ #
142
+ # This illustrates setting up a simple client-server drb
143
+ # system. Run the server and client code in different terminals,
144
+ # starting the server code first.
145
+ #
146
+ # ==== Server code
147
+ #
148
+ # require 'drb/drb'
149
+ #
150
+ # # The URI for the server to connect to
151
+ # URI="druby://localhost:8787"
152
+ #
153
+ # class TimeServer
154
+ #
155
+ # def get_current_time
156
+ # return Time.now
157
+ # end
158
+ #
159
+ # end
160
+ #
161
+ # # The object that handles requests on the server
162
+ # FRONT_OBJECT=TimeServer.new
163
+ #
164
+ # DRb.start_service(URI, FRONT_OBJECT)
165
+ # # Wait for the drb server thread to finish before exiting.
166
+ # DRb.thread.join
167
+ #
168
+ # ==== Client code
169
+ #
170
+ # require 'drb/drb'
171
+ #
172
+ # # The URI to connect to
173
+ # SERVER_URI="druby://localhost:8787"
174
+ #
175
+ # # Start a local DRbServer to handle callbacks.
176
+ # #
177
+ # # Not necessary for this small example, but will be required
178
+ # # as soon as we pass a non-marshallable object as an argument
179
+ # # to a dRuby call.
180
+ # #
181
+ # # Note: this must be called at least once per process to take any effect.
182
+ # # This is particularly important if your application forks.
183
+ # DRb.start_service
184
+ #
185
+ # timeserver = DRbObject.new_with_uri(SERVER_URI)
186
+ # puts timeserver.get_current_time
187
+ #
188
+ # === Remote objects under dRuby
189
+ #
190
+ # This example illustrates returning a reference to an object
191
+ # from a dRuby call. The Logger instances live in the server
192
+ # process. References to them are returned to the client process,
193
+ # where methods can be invoked upon them. These methods are
194
+ # executed in the server process.
195
+ #
196
+ # ==== Server code
197
+ #
198
+ # require 'drb/drb'
199
+ #
200
+ # URI="druby://localhost:8787"
201
+ #
202
+ # class Logger
203
+ #
204
+ # # Make dRuby send Logger instances as dRuby references,
205
+ # # not copies.
206
+ # include DRb::DRbUndumped
207
+ #
208
+ # def initialize(n, fname)
209
+ # @name = n
210
+ # @filename = fname
211
+ # end
212
+ #
213
+ # def log(message)
214
+ # File.open(@filename, "a") do |f|
215
+ # f.puts("#{Time.now}: #{@name}: #{message}")
216
+ # end
217
+ # end
218
+ #
219
+ # end
220
+ #
221
+ # # We have a central object for creating and retrieving loggers.
222
+ # # This retains a local reference to all loggers created. This
223
+ # # is so an existing logger can be looked up by name, but also
224
+ # # to prevent loggers from being garbage collected. A dRuby
225
+ # # reference to an object is not sufficient to prevent it being
226
+ # # garbage collected!
227
+ # class LoggerFactory
228
+ #
229
+ # def initialize(bdir)
230
+ # @basedir = bdir
231
+ # @loggers = {}
232
+ # end
233
+ #
234
+ # def get_logger(name)
235
+ # if !@loggers.has_key? name
236
+ # # make the filename safe, then declare it to be so
237
+ # fname = name.gsub(/[.\/\\\:]/, "_")
238
+ # @loggers[name] = Logger.new(name, @basedir + "/" + fname)
239
+ # end
240
+ # return @loggers[name]
241
+ # end
242
+ #
243
+ # end
244
+ #
245
+ # FRONT_OBJECT=LoggerFactory.new("/tmp/dlog")
246
+ #
247
+ # DRb.start_service(URI, FRONT_OBJECT)
248
+ # DRb.thread.join
249
+ #
250
+ # ==== Client code
251
+ #
252
+ # require 'drb/drb'
253
+ #
254
+ # SERVER_URI="druby://localhost:8787"
255
+ #
256
+ # DRb.start_service
257
+ #
258
+ # log_service=DRbObject.new_with_uri(SERVER_URI)
259
+ #
260
+ # ["loga", "logb", "logc"].each do |logname|
261
+ #
262
+ # logger=log_service.get_logger(logname)
263
+ #
264
+ # logger.log("Hello, world!")
265
+ # logger.log("Goodbye, world!")
266
+ # logger.log("=== EOT ===")
267
+ #
268
+ # end
269
+ #
270
+ # == Security
271
+ #
272
+ # As with all network services, security needs to be considered when
273
+ # using dRuby. By allowing external access to a Ruby object, you are
274
+ # not only allowing outside clients to call the methods you have
275
+ # defined for that object, but by default to execute arbitrary Ruby
276
+ # code on your server. Consider the following:
277
+ #
278
+ # # !!! UNSAFE CODE !!!
279
+ # ro = DRbObject::new_with_uri("druby://your.server.com:8989")
280
+ # class << ro
281
+ # undef :instance_eval # force call to be passed to remote object
282
+ # end
283
+ # ro.instance_eval("`rm -rf *`")
284
+ #
285
+ # The dangers posed by instance_eval and friends are such that a
286
+ # DRbServer should only be used when clients are trusted.
287
+ #
288
+ # A DRbServer can be configured with an access control list to
289
+ # selectively allow or deny access from specified IP addresses. The
290
+ # main druby distribution provides the ACL class for this purpose. In
291
+ # general, this mechanism should only be used alongside, rather than
292
+ # as a replacement for, a good firewall.
293
+ #
294
+ # == dRuby internals
295
+ #
296
+ # dRuby is implemented using three main components: a remote method
297
+ # call marshaller/unmarshaller; a transport protocol; and an
298
+ # ID-to-object mapper. The latter two can be directly, and the first
299
+ # indirectly, replaced, in order to provide different behaviour and
300
+ # capabilities.
301
+ #
302
+ # Marshalling and unmarshalling of remote method calls is performed by
303
+ # a DRb::DRbMessage instance. This uses the Marshal module to dump
304
+ # the method call before sending it over the transport layer, then
305
+ # reconstitute it at the other end. There is normally no need to
306
+ # replace this component, and no direct way is provided to do so.
307
+ # However, it is possible to implement an alternative marshalling
308
+ # scheme as part of an implementation of the transport layer.
309
+ #
310
+ # The transport layer is responsible for opening client and server
311
+ # network connections and forwarding dRuby request across them.
312
+ # Normally, it uses DRb::DRbMessage internally to manage marshalling
313
+ # and unmarshalling. The transport layer is managed by
314
+ # DRb::DRbProtocol. Multiple protocols can be installed in
315
+ # DRbProtocol at the one time; selection between them is determined by
316
+ # the scheme of a dRuby URI. The default transport protocol is
317
+ # selected by the scheme 'druby:', and implemented by
318
+ # DRb::DRbTCPSocket. This uses plain TCP/IP sockets for
319
+ # communication. An alternative protocol, using UNIX domain sockets,
320
+ # is implemented by DRb::DRbUNIXSocket in the file drb/unix.rb, and
321
+ # selected by the scheme 'drbunix:'. A sample implementation over
322
+ # HTTP can be found in the samples accompanying the main dRuby
323
+ # distribution.
324
+ #
325
+ # The ID-to-object mapping component maps dRuby object ids to the
326
+ # objects they refer to, and vice versa. The implementation to use
327
+ # can be specified as part of a DRb::DRbServer's configuration. The
328
+ # default implementation is provided by DRb::DRbIdConv. It uses an
329
+ # object's ObjectSpace id as its dRuby id. This means that the dRuby
330
+ # reference to that object only remains meaningful for the lifetime of
331
+ # the object's process and the lifetime of the object within that
332
+ # process. A modified implementation is provided by DRb::TimerIdConv
333
+ # in the file drb/timeridconv.rb. This implementation retains a local
334
+ # reference to all objects exported over dRuby for a configurable
335
+ # period of time (defaulting to ten minutes), to prevent them being
336
+ # garbage-collected within this time. Another sample implementation
337
+ # is provided in sample/name.rb in the main dRuby distribution. This
338
+ # allows objects to specify their own id or "name". A dRuby reference
339
+ # can be made persistent across processes by having each process
340
+ # register an object using the same dRuby name.
341
+ #
342
+ module DRb
343
+
344
+ # Superclass of all errors raised in the DRb module.
345
+ class DRbError < RuntimeError; end
346
+
347
+ # Error raised when an error occurs on the underlying communication
348
+ # protocol.
349
+ class DRbConnError < DRbError; end
350
+
351
+ class DRbObjectSpace # :nodoc:
352
+ # This is an internal class for DRbIdConv. This must not be used
353
+ # by users.
354
+
355
+ include MonitorMixin
356
+
357
+ def initialize
358
+ super()
359
+ @map = ObjectSpace::WeakMap.new
360
+ end
361
+
362
+ def to_id(obj)
363
+ synchronize do
364
+ @map[obj.__id__] = obj
365
+ obj.__id__
366
+ end
367
+ end
368
+
369
+ def to_obj(ref)
370
+ synchronize do
371
+ obj = @map[ref]
372
+ raise RangeError.new("invalid reference") unless obj.__id__ == ref
373
+ obj
374
+ end
375
+ end
376
+ end
377
+
378
+ # :nodoc:
379
+ #
380
+ # This is an internal singleton instance. This must not be used
381
+ # by users.
382
+ DRB_OBJECT_SPACE = DRbObjectSpace.new
383
+
384
+ # Class responsible for converting between an object and its id.
385
+ #
386
+ # This, the default implementation, uses an object's local ObjectSpace
387
+ # __id__ as its id. This means that an object's identification over
388
+ # drb remains valid only while that object instance remains alive
389
+ # within the server runtime.
390
+ #
391
+ # For alternative mechanisms, see DRb::TimerIdConv in drb/timeridconv.rb
392
+ # and DRbNameIdConv in sample/name.rb in the full drb distribution.
393
+ class DRbIdConv
394
+
395
+ # Convert an object reference id to an object.
396
+ #
397
+ # This implementation looks up the reference id in the local object
398
+ # space and returns the object it refers to.
399
+ def to_obj(ref)
400
+ DRB_OBJECT_SPACE.to_obj(ref)
401
+ end
402
+
403
+ # Convert an object into a reference id.
404
+ #
405
+ # This implementation returns the object's __id__ in the local
406
+ # object space.
407
+ def to_id(obj)
408
+ (nil == obj) ? nil : DRB_OBJECT_SPACE.to_id(obj)
409
+ end
410
+ end
411
+
412
+ # Mixin module making an object undumpable or unmarshallable.
413
+ #
414
+ # If an object which includes this module is returned by method
415
+ # called over drb, then the object remains in the server space
416
+ # and a reference to the object is returned, rather than the
417
+ # object being marshalled and moved into the client space.
418
+ module DRbUndumped
419
+ def _dump(dummy) # :nodoc:
420
+ raise TypeError, 'can\'t dump'
421
+ end
422
+ end
423
+
424
+ # Error raised by the DRb module when an attempt is made to refer to
425
+ # the context's current drb server but the context does not have one.
426
+ # See #current_server.
427
+ class DRbServerNotFound < DRbError; end
428
+
429
+ # Error raised by the DRbProtocol module when it cannot find any
430
+ # protocol implementation support the scheme specified in a URI.
431
+ class DRbBadURI < DRbError; end
432
+
433
+ # Error raised by a dRuby protocol when it doesn't support the
434
+ # scheme specified in a URI. See DRb::DRbProtocol.
435
+ class DRbBadScheme < DRbError; end
436
+
437
+ # An exception wrapping a DRb::DRbUnknown object
438
+ class DRbUnknownError < DRbError
439
+
440
+ # Create a new DRbUnknownError for the DRb::DRbUnknown object +unknown+
441
+ def initialize(unknown)
442
+ @unknown = unknown
443
+ super(unknown.name)
444
+ end
445
+
446
+ # Get the wrapped DRb::DRbUnknown object.
447
+ attr_reader :unknown
448
+
449
+ def self._load(s) # :nodoc:
450
+ Marshal::load(s)
451
+ end
452
+
453
+ def _dump(lv) # :nodoc:
454
+ Marshal::dump(@unknown)
455
+ end
456
+ end
457
+
458
+ # An exception wrapping an error object
459
+ class DRbRemoteError < DRbError
460
+
461
+ # Creates a new remote error that wraps the Exception +error+
462
+ def initialize(error)
463
+ @reason = error.class.to_s
464
+ super("#{error.message} (#{error.class})")
465
+ set_backtrace(error.backtrace)
466
+ end
467
+
468
+ # the class of the error, as a string.
469
+ attr_reader :reason
470
+ end
471
+
472
+ # Class wrapping a marshalled object whose type is unknown locally.
473
+ #
474
+ # If an object is returned by a method invoked over drb, but the
475
+ # class of the object is unknown in the client namespace, or
476
+ # the object is a constant unknown in the client namespace, then
477
+ # the still-marshalled object is returned wrapped in a DRbUnknown instance.
478
+ #
479
+ # If this object is passed as an argument to a method invoked over
480
+ # drb, then the wrapped object is passed instead.
481
+ #
482
+ # The class or constant name of the object can be read from the
483
+ # +name+ attribute. The marshalled object is held in the +buf+
484
+ # attribute.
485
+ class DRbUnknown
486
+
487
+ # Create a new DRbUnknown object.
488
+ #
489
+ # +buf+ is a string containing a marshalled object that could not
490
+ # be unmarshalled. +err+ is the error message that was raised
491
+ # when the unmarshalling failed. It is used to determine the
492
+ # name of the unmarshalled object.
493
+ def initialize(err, buf)
494
+ case err.to_s
495
+ when /uninitialized constant (\S+)/
496
+ @name = $1
497
+ when /undefined class\/module (\S+)/
498
+ @name = $1
499
+ else
500
+ @name = nil
501
+ end
502
+ @buf = buf
503
+ end
504
+
505
+ # The name of the unknown thing.
506
+ #
507
+ # Class name for unknown objects; variable name for unknown
508
+ # constants.
509
+ attr_reader :name
510
+
511
+ # Buffer contained the marshalled, unknown object.
512
+ attr_reader :buf
513
+
514
+ def self._load(s) # :nodoc:
515
+ begin
516
+ Marshal::load(s)
517
+ rescue NameError, ArgumentError
518
+ DRbUnknown.new($!, s)
519
+ end
520
+ end
521
+
522
+ def _dump(lv) # :nodoc:
523
+ @buf
524
+ end
525
+
526
+ # Attempt to load the wrapped marshalled object again.
527
+ #
528
+ # If the class of the object is now known locally, the object
529
+ # will be unmarshalled and returned. Otherwise, a new
530
+ # but identical DRbUnknown object will be returned.
531
+ def reload
532
+ self.class._load(@buf)
533
+ end
534
+
535
+ # Create a DRbUnknownError exception containing this object.
536
+ def exception
537
+ DRbUnknownError.new(self)
538
+ end
539
+ end
540
+
541
+ # An Array wrapper that can be sent to another server via DRb.
542
+ #
543
+ # All entries in the array will be dumped or be references that point to
544
+ # the local server.
545
+
546
+ class DRbArray
547
+
548
+ # Creates a new DRbArray that either dumps or wraps all the items in the
549
+ # Array +ary+ so they can be loaded by a remote DRb server.
550
+
551
+ def initialize(ary)
552
+ @ary = ary.collect { |obj|
553
+ if obj.kind_of? DRbUndumped
554
+ DRbObject.new(obj)
555
+ else
556
+ begin
557
+ Marshal.dump(obj)
558
+ obj
559
+ rescue
560
+ DRbObject.new(obj)
561
+ end
562
+ end
563
+ }
564
+ end
565
+
566
+ def self._load(s) # :nodoc:
567
+ Marshal::load(s)
568
+ end
569
+
570
+ def _dump(lv) # :nodoc:
571
+ Marshal.dump(@ary)
572
+ end
573
+ end
574
+
575
+ # Handler for sending and receiving drb messages.
576
+ #
577
+ # This takes care of the low-level marshalling and unmarshalling
578
+ # of drb requests and responses sent over the wire between server
579
+ # and client. This relieves the implementor of a new drb
580
+ # protocol layer with having to deal with these details.
581
+ #
582
+ # The user does not have to directly deal with this object in
583
+ # normal use.
584
+ class DRbMessage
585
+ def initialize(config) # :nodoc:
586
+ @load_limit = config[:load_limit]
587
+ @argc_limit = config[:argc_limit]
588
+ end
589
+
590
+ def dump(obj, error=false) # :nodoc:
591
+ case obj
592
+ when DRbUndumped
593
+ obj = make_proxy(obj, error)
594
+ when Object
595
+ # nothing
596
+ else
597
+ obj = make_proxy(obj, error)
598
+ end
599
+ begin
600
+ str = Marshal::dump(obj)
601
+ rescue
602
+ str = Marshal::dump(make_proxy(obj, error))
603
+ end
604
+ [str.size].pack('N') + str
605
+ end
606
+
607
+ def load(soc) # :nodoc:
608
+ begin
609
+ sz = soc.read(4) # sizeof (N)
610
+ rescue
611
+ raise(DRbConnError, $!.message, $!.backtrace)
612
+ end
613
+ raise(DRbConnError, 'connection closed') if sz.nil?
614
+ raise(DRbConnError, 'premature header') if sz.size < 4
615
+ sz = sz.unpack('N')[0]
616
+ raise(DRbConnError, "too large packet #{sz}") if @load_limit < sz
617
+ begin
618
+ str = soc.read(sz)
619
+ rescue
620
+ raise(DRbConnError, $!.message, $!.backtrace)
621
+ end
622
+ raise(DRbConnError, 'connection closed') if str.nil?
623
+ raise(DRbConnError, 'premature marshal format(can\'t read)') if str.size < sz
624
+ DRb.mutex.synchronize do
625
+ begin
626
+ Marshal::load(str)
627
+ rescue NameError, ArgumentError
628
+ DRbUnknown.new($!, str)
629
+ end
630
+ end
631
+ end
632
+
633
+ def send_request(stream, ref, msg_id, arg, b) # :nodoc:
634
+ ary = []
635
+ ary.push(dump(ref.__drbref))
636
+ ary.push(dump(msg_id.id2name))
637
+ ary.push(dump(arg.length))
638
+ arg.each do |e|
639
+ ary.push(dump(e))
640
+ end
641
+ ary.push(dump(b))
642
+ stream.write(ary.join(''))
643
+ rescue
644
+ raise(DRbConnError, $!.message, $!.backtrace)
645
+ end
646
+
647
+ def recv_request(stream) # :nodoc:
648
+ ref = load(stream)
649
+ ro = DRb.to_obj(ref)
650
+ msg = load(stream)
651
+ argc = load(stream)
652
+ raise(DRbConnError, "too many arguments") if @argc_limit < argc
653
+ argv = Array.new(argc, nil)
654
+ argc.times do |n|
655
+ argv[n] = load(stream)
656
+ end
657
+ block = load(stream)
658
+ return ro, msg, argv, block
659
+ end
660
+
661
+ def send_reply(stream, succ, result) # :nodoc:
662
+ stream.write(dump(succ) + dump(result, !succ))
663
+ rescue
664
+ raise(DRbConnError, $!.message, $!.backtrace)
665
+ end
666
+
667
+ def recv_reply(stream) # :nodoc:
668
+ succ = load(stream)
669
+ result = load(stream)
670
+ [succ, result]
671
+ end
672
+
673
+ private
674
+ def make_proxy(obj, error=false) # :nodoc:
675
+ if error
676
+ DRbRemoteError.new(obj)
677
+ else
678
+ DRbObject.new(obj)
679
+ end
680
+ end
681
+ end
682
+
683
+ # Module managing the underlying network protocol(s) used by drb.
684
+ #
685
+ # By default, drb uses the DRbTCPSocket protocol. Other protocols
686
+ # can be defined. A protocol must define the following class methods:
687
+ #
688
+ # [open(uri, config)] Open a client connection to the server at +uri+,
689
+ # using configuration +config+. Return a protocol
690
+ # instance for this connection.
691
+ # [open_server(uri, config)] Open a server listening at +uri+,
692
+ # using configuration +config+. Return a
693
+ # protocol instance for this listener.
694
+ # [uri_option(uri, config)] Take a URI, possibly containing an option
695
+ # component (e.g. a trailing '?param=val'),
696
+ # and return a [uri, option] tuple.
697
+ #
698
+ # All of these methods should raise a DRbBadScheme error if the URI
699
+ # does not identify the protocol they support (e.g. "druby:" for
700
+ # the standard Ruby protocol). This is how the DRbProtocol module,
701
+ # given a URI, determines which protocol implementation serves that
702
+ # protocol.
703
+ #
704
+ # The protocol instance returned by #open_server must have the
705
+ # following methods:
706
+ #
707
+ # [accept] Accept a new connection to the server. Returns a protocol
708
+ # instance capable of communicating with the client.
709
+ # [close] Close the server connection.
710
+ # [uri] Get the URI for this server.
711
+ #
712
+ # The protocol instance returned by #open must have the following methods:
713
+ #
714
+ # [send_request (ref, msg_id, arg, b)]
715
+ # Send a request to +ref+ with the given message id and arguments.
716
+ # This is most easily implemented by calling DRbMessage.send_request,
717
+ # providing a stream that sits on top of the current protocol.
718
+ # [recv_reply]
719
+ # Receive a reply from the server and return it as a [success-boolean,
720
+ # reply-value] pair. This is most easily implemented by calling
721
+ # DRb.recv_reply, providing a stream that sits on top of the
722
+ # current protocol.
723
+ # [alive?]
724
+ # Is this connection still alive?
725
+ # [close]
726
+ # Close this connection.
727
+ #
728
+ # The protocol instance returned by #open_server().accept() must have
729
+ # the following methods:
730
+ #
731
+ # [recv_request]
732
+ # Receive a request from the client and return a [object, message,
733
+ # args, block] tuple. This is most easily implemented by calling
734
+ # DRbMessage.recv_request, providing a stream that sits on top of
735
+ # the current protocol.
736
+ # [send_reply(succ, result)]
737
+ # Send a reply to the client. This is most easily implemented
738
+ # by calling DRbMessage.send_reply, providing a stream that sits
739
+ # on top of the current protocol.
740
+ # [close]
741
+ # Close this connection.
742
+ #
743
+ # A new protocol is registered with the DRbProtocol module using
744
+ # the add_protocol method.
745
+ #
746
+ # For examples of other protocols, see DRbUNIXSocket in drb/unix.rb,
747
+ # and HTTP0 in sample/http0.rb and sample/http0serv.rb in the full
748
+ # drb distribution.
749
+ module DRbProtocol
750
+
751
+ # Add a new protocol to the DRbProtocol module.
752
+ def add_protocol(prot)
753
+ @protocol.push(prot)
754
+ end
755
+ module_function :add_protocol
756
+
757
+ # Open a client connection to +uri+ with the configuration +config+.
758
+ #
759
+ # The DRbProtocol module asks each registered protocol in turn to
760
+ # try to open the URI. Each protocol signals that it does not handle that
761
+ # URI by raising a DRbBadScheme error. If no protocol recognises the
762
+ # URI, then a DRbBadURI error is raised. If a protocol accepts the
763
+ # URI, but an error occurs in opening it, a DRbConnError is raised.
764
+ def open(uri, config, first=true)
765
+ @protocol.each do |prot|
766
+ begin
767
+ return prot.open(uri, config)
768
+ rescue DRbBadScheme
769
+ rescue DRbConnError
770
+ raise($!)
771
+ rescue
772
+ raise(DRbConnError, "#{uri} - #{$!.inspect}")
773
+ end
774
+ end
775
+ if first && (config[:auto_load] != false)
776
+ auto_load(uri)
777
+ return open(uri, config, false)
778
+ end
779
+ raise DRbBadURI, 'can\'t parse uri:' + uri
780
+ end
781
+ module_function :open
782
+
783
+ # Open a server listening for connections at +uri+ with
784
+ # configuration +config+.
785
+ #
786
+ # The DRbProtocol module asks each registered protocol in turn to
787
+ # try to open a server at the URI. Each protocol signals that it does
788
+ # not handle that URI by raising a DRbBadScheme error. If no protocol
789
+ # recognises the URI, then a DRbBadURI error is raised. If a protocol
790
+ # accepts the URI, but an error occurs in opening it, the underlying
791
+ # error is passed on to the caller.
792
+ def open_server(uri, config, first=true)
793
+ @protocol.each do |prot|
794
+ begin
795
+ return prot.open_server(uri, config)
796
+ rescue DRbBadScheme
797
+ end
798
+ end
799
+ if first && (config[:auto_load] != false)
800
+ auto_load(uri)
801
+ return open_server(uri, config, false)
802
+ end
803
+ raise DRbBadURI, 'can\'t parse uri:' + uri
804
+ end
805
+ module_function :open_server
806
+
807
+ # Parse +uri+ into a [uri, option] pair.
808
+ #
809
+ # The DRbProtocol module asks each registered protocol in turn to
810
+ # try to parse the URI. Each protocol signals that it does not handle that
811
+ # URI by raising a DRbBadScheme error. If no protocol recognises the
812
+ # URI, then a DRbBadURI error is raised.
813
+ def uri_option(uri, config, first=true)
814
+ @protocol.each do |prot|
815
+ begin
816
+ uri, opt = prot.uri_option(uri, config)
817
+ # opt = nil if opt == ''
818
+ return uri, opt
819
+ rescue DRbBadScheme
820
+ end
821
+ end
822
+ if first && (config[:auto_load] != false)
823
+ auto_load(uri)
824
+ return uri_option(uri, config, false)
825
+ end
826
+ raise DRbBadURI, 'can\'t parse uri:' + uri
827
+ end
828
+ module_function :uri_option
829
+
830
+ def auto_load(uri) # :nodoc:
831
+ if /\Adrb([a-z0-9]+):/ =~ uri
832
+ require("drb/#{$1}") rescue nil
833
+ end
834
+ end
835
+ module_function :auto_load
836
+ end
837
+
838
+ # The default drb protocol which communicates over a TCP socket.
839
+ #
840
+ # The DRb TCP protocol URI looks like:
841
+ # <code>druby://<host>:<port>?<option></code>. The option is optional.
842
+
843
+ class DRbTCPSocket
844
+ # :stopdoc:
845
+ private
846
+ def self.parse_uri(uri)
847
+ if /\Adruby:\/\/(.*?):(\d+)(\?(.*))?\z/ =~ uri
848
+ host = $1
849
+ port = $2.to_i
850
+ option = $4
851
+ [host, port, option]
852
+ else
853
+ raise(DRbBadScheme, uri) unless uri.start_with?('druby:')
854
+ raise(DRbBadURI, 'can\'t parse uri:' + uri)
855
+ end
856
+ end
857
+
858
+ public
859
+
860
+ # Open a client connection to +uri+ (DRb URI string) using configuration
861
+ # +config+.
862
+ #
863
+ # This can raise DRb::DRbBadScheme or DRb::DRbBadURI if +uri+ is not for a
864
+ # recognized protocol. See DRb::DRbServer.new for information on built-in
865
+ # URI protocols.
866
+ def self.open(uri, config)
867
+ host, port, = parse_uri(uri)
868
+ soc = TCPSocket.open(host, port)
869
+ self.new(uri, soc, config)
870
+ end
871
+
872
+ # Returns the hostname of this server
873
+ def self.getservername
874
+ host = Socket::gethostname
875
+ begin
876
+ Socket::getaddrinfo(host, nil,
877
+ Socket::AF_UNSPEC,
878
+ Socket::SOCK_STREAM,
879
+ 0,
880
+ Socket::AI_PASSIVE)[0][3]
881
+ rescue
882
+ 'localhost'
883
+ end
884
+ end
885
+
886
+ # For the families available for +host+, returns a TCPServer on +port+.
887
+ # If +port+ is 0 the first available port is used. IPv4 servers are
888
+ # preferred over IPv6 servers.
889
+ def self.open_server_inaddr_any(host, port)
890
+ infos = Socket::getaddrinfo(host, nil,
891
+ Socket::AF_UNSPEC,
892
+ Socket::SOCK_STREAM,
893
+ 0,
894
+ Socket::AI_PASSIVE)
895
+ families = Hash[*infos.collect { |af, *_| af }.uniq.zip([]).flatten]
896
+ return TCPServer.open('0.0.0.0', port) if families.has_key?('AF_INET')
897
+ return TCPServer.open('::', port) if families.has_key?('AF_INET6')
898
+ return TCPServer.open(port)
899
+ # :stopdoc:
900
+ end
901
+
902
+ # Open a server listening for connections at +uri+ using
903
+ # configuration +config+.
904
+ def self.open_server(uri, config)
905
+ uri = 'druby://:0' unless uri
906
+ host, port, _ = parse_uri(uri)
907
+ config = {:tcp_original_host => host}.update(config)
908
+ if host.size == 0
909
+ host = getservername
910
+ soc = open_server_inaddr_any(host, port)
911
+ else
912
+ soc = TCPServer.open(host, port)
913
+ end
914
+ port = soc.addr[1] if port == 0
915
+ config[:tcp_port] = port
916
+ uri = "druby://#{host}:#{port}"
917
+ self.new(uri, soc, config)
918
+ end
919
+
920
+ # Parse +uri+ into a [uri, option] pair.
921
+ def self.uri_option(uri, config)
922
+ host, port, option = parse_uri(uri)
923
+ return "druby://#{host}:#{port}", option
924
+ end
925
+
926
+ # Create a new DRbTCPSocket instance.
927
+ #
928
+ # +uri+ is the URI we are connected to.
929
+ # +soc+ is the tcp socket we are bound to. +config+ is our
930
+ # configuration.
931
+ def initialize(uri, soc, config={})
932
+ @uri = uri
933
+ @socket = soc
934
+ @config = config
935
+ @acl = config[:tcp_acl]
936
+ @msg = DRbMessage.new(config)
937
+ set_sockopt(@socket)
938
+ @shutdown_pipe_r, @shutdown_pipe_w = IO.pipe
939
+ end
940
+
941
+ # Get the URI that we are connected to.
942
+ attr_reader :uri
943
+
944
+ # Get the address of our TCP peer (the other end of the socket
945
+ # we are bound to.
946
+ def peeraddr
947
+ @socket.peeraddr
948
+ end
949
+
950
+ # Get the socket.
951
+ def stream; @socket; end
952
+
953
+ # On the client side, send a request to the server.
954
+ def send_request(ref, msg_id, arg, b)
955
+ @msg.send_request(stream, ref, msg_id, arg, b)
956
+ end
957
+
958
+ # On the server side, receive a request from the client.
959
+ def recv_request
960
+ @msg.recv_request(stream)
961
+ end
962
+
963
+ # On the server side, send a reply to the client.
964
+ def send_reply(succ, result)
965
+ @msg.send_reply(stream, succ, result)
966
+ end
967
+
968
+ # On the client side, receive a reply from the server.
969
+ def recv_reply
970
+ @msg.recv_reply(stream)
971
+ end
972
+
973
+ public
974
+
975
+ # Close the connection.
976
+ #
977
+ # If this is an instance returned by #open_server, then this stops
978
+ # listening for new connections altogether. If this is an instance
979
+ # returned by #open or by #accept, then it closes this particular
980
+ # client-server session.
981
+ def close
982
+ shutdown
983
+ if @socket
984
+ @socket.close
985
+ @socket = nil
986
+ end
987
+ close_shutdown_pipe
988
+ end
989
+
990
+ def close_shutdown_pipe
991
+ @shutdown_pipe_w.close
992
+ @shutdown_pipe_r.close
993
+ end
994
+ private :close_shutdown_pipe
995
+
996
+ # On the server side, for an instance returned by #open_server,
997
+ # accept a client connection and return a new instance to handle
998
+ # the server's side of this client-server session.
999
+ def accept
1000
+ while true
1001
+ s = accept_or_shutdown
1002
+ return nil unless s
1003
+ break if (@acl ? @acl.allow_socket?(s) : true)
1004
+ s.close
1005
+ end
1006
+ if @config[:tcp_original_host].to_s.size == 0
1007
+ uri = "druby://#{s.addr[3]}:#{@config[:tcp_port]}"
1008
+ else
1009
+ uri = @uri
1010
+ end
1011
+ self.class.new(uri, s, @config)
1012
+ end
1013
+
1014
+ def accept_or_shutdown
1015
+ readables, = IO.select([@socket, @shutdown_pipe_r])
1016
+ if readables.include? @shutdown_pipe_r
1017
+ return nil
1018
+ end
1019
+ @socket.accept
1020
+ end
1021
+ private :accept_or_shutdown
1022
+
1023
+ # Graceful shutdown
1024
+ def shutdown
1025
+ @shutdown_pipe_w.close
1026
+ end
1027
+
1028
+ # Check to see if this connection is alive.
1029
+ def alive?
1030
+ return false unless @socket
1031
+ if @socket.to_io.wait_readable(0)
1032
+ close
1033
+ return false
1034
+ end
1035
+ true
1036
+ end
1037
+
1038
+ def set_sockopt(soc) # :nodoc:
1039
+ soc.setsockopt(Socket::IPPROTO_TCP, Socket::TCP_NODELAY, 1)
1040
+ rescue IOError, Errno::ECONNRESET, Errno::EINVAL
1041
+ # closed/shutdown socket, ignore error
1042
+ end
1043
+ end
1044
+
1045
+ module DRbProtocol
1046
+ @protocol = [DRbTCPSocket] # default
1047
+ end
1048
+
1049
+ class DRbURIOption # :nodoc: I don't understand the purpose of this class...
1050
+ def initialize(option)
1051
+ @option = option.to_s
1052
+ end
1053
+ attr_reader :option
1054
+ def to_s; @option; end
1055
+
1056
+ def ==(other)
1057
+ return false unless DRbURIOption === other
1058
+ @option == other.option
1059
+ end
1060
+
1061
+ def hash
1062
+ @option.hash
1063
+ end
1064
+
1065
+ alias eql? ==
1066
+ end
1067
+
1068
+ # Object wrapping a reference to a remote drb object.
1069
+ #
1070
+ # Method calls on this object are relayed to the remote
1071
+ # object that this object is a stub for.
1072
+ class DRbObject
1073
+
1074
+ # Unmarshall a marshalled DRbObject.
1075
+ #
1076
+ # If the referenced object is located within the local server, then
1077
+ # the object itself is returned. Otherwise, a new DRbObject is
1078
+ # created to act as a stub for the remote referenced object.
1079
+ def self._load(s)
1080
+ uri, ref = Marshal.load(s)
1081
+
1082
+ if DRb.here?(uri)
1083
+ obj = DRb.to_obj(ref)
1084
+ return obj
1085
+ end
1086
+
1087
+ self.new_with(uri, ref)
1088
+ end
1089
+
1090
+ # Creates a DRb::DRbObject given the reference information to the remote
1091
+ # host +uri+ and object +ref+.
1092
+
1093
+ def self.new_with(uri, ref)
1094
+ it = self.allocate
1095
+ it.instance_variable_set(:@uri, uri)
1096
+ it.instance_variable_set(:@ref, ref)
1097
+ it
1098
+ end
1099
+
1100
+ # Create a new DRbObject from a URI alone.
1101
+ def self.new_with_uri(uri)
1102
+ self.new(nil, uri)
1103
+ end
1104
+
1105
+ # Marshall this object.
1106
+ #
1107
+ # The URI and ref of the object are marshalled.
1108
+ def _dump(lv)
1109
+ Marshal.dump([@uri, @ref])
1110
+ end
1111
+
1112
+ # Create a new remote object stub.
1113
+ #
1114
+ # +obj+ is the (local) object we want to create a stub for. Normally
1115
+ # this is +nil+. +uri+ is the URI of the remote object that this
1116
+ # will be a stub for.
1117
+ def initialize(obj, uri=nil)
1118
+ @uri = nil
1119
+ @ref = nil
1120
+ case obj
1121
+ when Object
1122
+ is_nil = obj.nil?
1123
+ when BasicObject
1124
+ is_nil = false
1125
+ end
1126
+
1127
+ if is_nil
1128
+ return if uri.nil?
1129
+ @uri, option = DRbProtocol.uri_option(uri, DRb.config)
1130
+ @ref = DRbURIOption.new(option) unless option.nil?
1131
+ else
1132
+ @uri = uri ? uri : (DRb.uri rescue nil)
1133
+ @ref = obj ? DRb.to_id(obj) : nil
1134
+ end
1135
+ end
1136
+
1137
+ # Get the URI of the remote object.
1138
+ def __drburi
1139
+ @uri
1140
+ end
1141
+
1142
+ # Get the reference of the object, if local.
1143
+ def __drbref
1144
+ @ref
1145
+ end
1146
+
1147
+ undef :to_s
1148
+ undef :to_a if respond_to?(:to_a)
1149
+
1150
+ # Routes respond_to? to the referenced remote object.
1151
+ def respond_to?(msg_id, priv=false)
1152
+ case msg_id
1153
+ when :_dump
1154
+ true
1155
+ when :marshal_dump
1156
+ false
1157
+ else
1158
+ method_missing(:respond_to?, msg_id, priv)
1159
+ end
1160
+ end
1161
+
1162
+ # Routes method calls to the referenced remote object.
1163
+ ruby2_keywords def method_missing(msg_id, *a, &b)
1164
+ if DRb.here?(@uri)
1165
+ obj = DRb.to_obj(@ref)
1166
+ DRb.current_server.check_insecure_method(obj, msg_id)
1167
+ return obj.__send__(msg_id, *a, &b)
1168
+ end
1169
+
1170
+ succ, result = self.class.with_friend(@uri) do
1171
+ DRbConn.open(@uri) do |conn|
1172
+ conn.send_message(self, msg_id, a, b)
1173
+ end
1174
+ end
1175
+
1176
+ if succ
1177
+ return result
1178
+ elsif DRbUnknown === result
1179
+ raise result
1180
+ else
1181
+ bt = self.class.prepare_backtrace(@uri, result)
1182
+ result.set_backtrace(bt + caller)
1183
+ raise result
1184
+ end
1185
+ end
1186
+
1187
+ # Given the +uri+ of another host executes the block provided.
1188
+ def self.with_friend(uri) # :nodoc:
1189
+ friend = DRb.fetch_server(uri)
1190
+ return yield() unless friend
1191
+
1192
+ save = Thread.current['DRb']
1193
+ Thread.current['DRb'] = { 'server' => friend }
1194
+ return yield
1195
+ ensure
1196
+ Thread.current['DRb'] = save if friend
1197
+ end
1198
+
1199
+ # Returns a modified backtrace from +result+ with the +uri+ where each call
1200
+ # in the backtrace came from.
1201
+ def self.prepare_backtrace(uri, result) # :nodoc:
1202
+ prefix = "(#{uri}) "
1203
+ bt = []
1204
+ result.backtrace.each do |x|
1205
+ break if /[`']__send__'$/ =~ x
1206
+ if /\A\(druby:\/\// =~ x
1207
+ bt.push(x)
1208
+ else
1209
+ bt.push(prefix + x)
1210
+ end
1211
+ end
1212
+ bt
1213
+ end
1214
+
1215
+ def pretty_print(q) # :nodoc:
1216
+ q.pp_object(self)
1217
+ end
1218
+
1219
+ def pretty_print_cycle(q) # :nodoc:
1220
+ q.object_address_group(self) {
1221
+ q.breakable
1222
+ q.text '...'
1223
+ }
1224
+ end
1225
+ end
1226
+
1227
+ class ThreadObject
1228
+ include MonitorMixin
1229
+
1230
+ def initialize(&blk)
1231
+ super()
1232
+ @wait_ev = new_cond
1233
+ @req_ev = new_cond
1234
+ @res_ev = new_cond
1235
+ @status = :wait
1236
+ @req = nil
1237
+ @res = nil
1238
+ @thread = Thread.new(self, &blk)
1239
+ end
1240
+
1241
+ def alive?
1242
+ @thread.alive?
1243
+ end
1244
+
1245
+ def kill
1246
+ @thread.kill
1247
+ @thread.join
1248
+ end
1249
+
1250
+ def method_missing(msg, *arg, &blk)
1251
+ synchronize do
1252
+ @wait_ev.wait_until { @status == :wait }
1253
+ @req = [msg] + arg
1254
+ @status = :req
1255
+ @req_ev.broadcast
1256
+ @res_ev.wait_until { @status == :res }
1257
+ value = @res
1258
+ @req = @res = nil
1259
+ @status = :wait
1260
+ @wait_ev.broadcast
1261
+ return value
1262
+ end
1263
+ end
1264
+
1265
+ def _execute()
1266
+ synchronize do
1267
+ @req_ev.wait_until { @status == :req }
1268
+ @res = yield(@req)
1269
+ @status = :res
1270
+ @res_ev.signal
1271
+ end
1272
+ end
1273
+ end
1274
+
1275
+ # Class handling the connection between a DRbObject and the
1276
+ # server the real object lives on.
1277
+ #
1278
+ # This class maintains a pool of connections, to reduce the
1279
+ # overhead of starting and closing down connections for each
1280
+ # method call.
1281
+ #
1282
+ # This class is used internally by DRbObject. The user does
1283
+ # not normally need to deal with it directly.
1284
+ class DRbConn
1285
+ POOL_SIZE = 16 # :nodoc:
1286
+
1287
+ def self.make_pool
1288
+ ThreadObject.new do |queue|
1289
+ pool = []
1290
+ while true
1291
+ queue._execute do |message|
1292
+ case(message[0])
1293
+ when :take then
1294
+ remote_uri = message[1]
1295
+ conn = nil
1296
+ new_pool = []
1297
+ pool.each do |c|
1298
+ if conn.nil? and c.uri == remote_uri
1299
+ conn = c if c.alive?
1300
+ else
1301
+ new_pool.push c
1302
+ end
1303
+ end
1304
+ pool = new_pool
1305
+ conn
1306
+ when :store then
1307
+ conn = message[1]
1308
+ pool.unshift(conn)
1309
+ pool.pop.close while pool.size > POOL_SIZE
1310
+ conn
1311
+ else
1312
+ nil
1313
+ end
1314
+ end
1315
+ end
1316
+ end
1317
+ end
1318
+ @pool_proxy = nil
1319
+
1320
+ def self.stop_pool
1321
+ @pool_proxy&.kill
1322
+ @pool_proxy = nil
1323
+ end
1324
+
1325
+ def self.open(remote_uri) # :nodoc:
1326
+ begin
1327
+ @pool_proxy = make_pool unless @pool_proxy&.alive?
1328
+
1329
+ conn = @pool_proxy.take(remote_uri)
1330
+ conn = self.new(remote_uri) unless conn
1331
+ succ, result = yield(conn)
1332
+ return succ, result
1333
+
1334
+ ensure
1335
+ if conn
1336
+ if succ
1337
+ @pool_proxy.store(conn)
1338
+ else
1339
+ conn.close
1340
+ end
1341
+ end
1342
+ end
1343
+ end
1344
+
1345
+ def initialize(remote_uri) # :nodoc:
1346
+ @uri = remote_uri
1347
+ @protocol = DRbProtocol.open(remote_uri, DRb.config)
1348
+ end
1349
+ attr_reader :uri # :nodoc:
1350
+
1351
+ def send_message(ref, msg_id, arg, block) # :nodoc:
1352
+ @protocol.send_request(ref, msg_id, arg, block)
1353
+ @protocol.recv_reply
1354
+ end
1355
+
1356
+ def close # :nodoc:
1357
+ @protocol.close
1358
+ @protocol = nil
1359
+ end
1360
+
1361
+ def alive? # :nodoc:
1362
+ return false unless @protocol
1363
+ @protocol.alive?
1364
+ end
1365
+ end
1366
+
1367
+ # Class representing a drb server instance.
1368
+ #
1369
+ # A DRbServer must be running in the local process before any incoming
1370
+ # dRuby calls can be accepted, or any local objects can be passed as
1371
+ # dRuby references to remote processes, even if those local objects are
1372
+ # never actually called remotely. You do not need to start a DRbServer
1373
+ # in the local process if you are only making outgoing dRuby calls
1374
+ # passing marshalled parameters.
1375
+ #
1376
+ # Unless multiple servers are being used, the local DRbServer is normally
1377
+ # started by calling DRb.start_service.
1378
+ class DRbServer
1379
+ @@acl = nil
1380
+ @@idconv = DRbIdConv.new
1381
+ @@secondary_server = nil
1382
+ @@argc_limit = 256
1383
+ @@load_limit = 0xffffffff
1384
+ @@verbose = false
1385
+
1386
+ # Set the default value for the :argc_limit option.
1387
+ #
1388
+ # See #new(). The initial default value is 256.
1389
+ def self.default_argc_limit(argc)
1390
+ @@argc_limit = argc
1391
+ end
1392
+
1393
+ # Set the default value for the :load_limit option.
1394
+ #
1395
+ # See #new(). The initial default value is 25 MB.
1396
+ def self.default_load_limit(sz)
1397
+ @@load_limit = sz
1398
+ end
1399
+
1400
+ # Set the default access control list to +acl+. The default ACL is +nil+.
1401
+ #
1402
+ # See also DRb::ACL and #new()
1403
+ def self.default_acl(acl)
1404
+ @@acl = acl
1405
+ end
1406
+
1407
+ # Set the default value for the :id_conv option.
1408
+ #
1409
+ # See #new(). The initial default value is a DRbIdConv instance.
1410
+ def self.default_id_conv(idconv)
1411
+ @@idconv = idconv
1412
+ end
1413
+
1414
+ # Set the default value of the :verbose option.
1415
+ #
1416
+ # See #new(). The initial default value is false.
1417
+ def self.verbose=(on)
1418
+ @@verbose = on
1419
+ end
1420
+
1421
+ # Get the default value of the :verbose option.
1422
+ def self.verbose
1423
+ @@verbose
1424
+ end
1425
+
1426
+ def self.make_config(hash={}) # :nodoc:
1427
+ default_config = {
1428
+ :idconv => @@idconv,
1429
+ :verbose => @@verbose,
1430
+ :tcp_acl => @@acl,
1431
+ :load_limit => @@load_limit,
1432
+ :argc_limit => @@argc_limit,
1433
+ }
1434
+ default_config.update(hash)
1435
+ end
1436
+
1437
+ # Create a new DRbServer instance.
1438
+ #
1439
+ # +uri+ is the URI to bind to. This is normally of the form
1440
+ # 'druby://<hostname>:<port>' where <hostname> is a hostname of
1441
+ # the local machine. If nil, then the system's default hostname
1442
+ # will be bound to, on a port selected by the system; these value
1443
+ # can be retrieved from the +uri+ attribute. 'druby:' specifies
1444
+ # the default dRuby transport protocol: another protocol, such
1445
+ # as 'drbunix:', can be specified instead.
1446
+ #
1447
+ # +front+ is the front object for the server, that is, the object
1448
+ # to which remote method calls on the server will be passed. If
1449
+ # nil, then the server will not accept remote method calls.
1450
+ #
1451
+ # If +config_or_acl+ is a hash, it is the configuration to
1452
+ # use for this server. The following options are recognised:
1453
+ #
1454
+ # :idconv :: an id-to-object conversion object. This defaults
1455
+ # to an instance of the class DRb::DRbIdConv.
1456
+ # :verbose :: if true, all unsuccessful remote calls on objects
1457
+ # in the server will be logged to $stdout. false
1458
+ # by default.
1459
+ # :tcp_acl :: the access control list for this server. See
1460
+ # the ACL class from the main dRuby distribution.
1461
+ # :load_limit :: the maximum message size in bytes accepted by
1462
+ # the server. Defaults to 25 MB (26214400).
1463
+ # :argc_limit :: the maximum number of arguments to a remote
1464
+ # method accepted by the server. Defaults to
1465
+ # 256.
1466
+ # The default values of these options can be modified on
1467
+ # a class-wide basis by the class methods #default_argc_limit,
1468
+ # #default_load_limit, #default_acl, #default_id_conv,
1469
+ # and #verbose=
1470
+ #
1471
+ # If +config_or_acl+ is not a hash, but is not nil, it is
1472
+ # assumed to be the access control list for this server.
1473
+ # See the :tcp_acl option for more details.
1474
+ #
1475
+ # If no other server is currently set as the primary server,
1476
+ # this will become the primary server.
1477
+ #
1478
+ # The server will immediately start running in its own thread.
1479
+ def initialize(uri=nil, front=nil, config_or_acl=nil)
1480
+ if Hash === config_or_acl
1481
+ config = config_or_acl.dup
1482
+ else
1483
+ acl = config_or_acl || @@acl
1484
+ config = {
1485
+ :tcp_acl => acl
1486
+ }
1487
+ end
1488
+
1489
+ @config = self.class.make_config(config)
1490
+
1491
+ @protocol = DRbProtocol.open_server(uri, @config)
1492
+ @uri = @protocol.uri
1493
+ @exported_uri = [@uri]
1494
+
1495
+ @front = front
1496
+ @idconv = @config[:idconv]
1497
+
1498
+ @grp = ThreadGroup.new
1499
+ @thread = run
1500
+
1501
+ DRb.regist_server(self)
1502
+ end
1503
+
1504
+ # The URI of this DRbServer.
1505
+ attr_reader :uri
1506
+
1507
+ # The main thread of this DRbServer.
1508
+ #
1509
+ # This is the thread that listens for and accepts connections
1510
+ # from clients, not that handles each client's request-response
1511
+ # session.
1512
+ attr_reader :thread
1513
+
1514
+ # The front object of the DRbServer.
1515
+ #
1516
+ # This object receives remote method calls made on the server's
1517
+ # URI alone, with an object id.
1518
+ attr_reader :front
1519
+
1520
+ # The configuration of this DRbServer
1521
+ attr_reader :config
1522
+
1523
+ # Set whether to operate in verbose mode.
1524
+ #
1525
+ # In verbose mode, failed calls are logged to stdout.
1526
+ def verbose=(v); @config[:verbose]=v; end
1527
+
1528
+ # Get whether the server is in verbose mode.
1529
+ #
1530
+ # In verbose mode, failed calls are logged to stdout.
1531
+ def verbose; @config[:verbose]; end
1532
+
1533
+ # Is this server alive?
1534
+ def alive?
1535
+ @thread.alive?
1536
+ end
1537
+
1538
+ # Is +uri+ the URI for this server?
1539
+ def here?(uri)
1540
+ @exported_uri.include?(uri)
1541
+ end
1542
+
1543
+ # Stop this server.
1544
+ def stop_service
1545
+ DRb.remove_server(self)
1546
+ if Thread.current['DRb'] && Thread.current['DRb']['server'] == self
1547
+ Thread.current['DRb']['stop_service'] = true
1548
+ else
1549
+ shutdown
1550
+ end
1551
+ end
1552
+
1553
+ # Convert a dRuby reference to the local object it refers to.
1554
+ def to_obj(ref)
1555
+ return front if ref.nil?
1556
+ return front[ref.to_s] if DRbURIOption === ref
1557
+ @idconv.to_obj(ref)
1558
+ end
1559
+
1560
+ # Convert a local object to a dRuby reference.
1561
+ def to_id(obj)
1562
+ return nil if obj.__id__ == front.__id__
1563
+ @idconv.to_id(obj)
1564
+ end
1565
+
1566
+ private
1567
+
1568
+ def shutdown
1569
+ current = Thread.current
1570
+ if @protocol.respond_to? :shutdown
1571
+ @protocol.shutdown
1572
+ else
1573
+ [@thread, *@grp.list].each { |thread|
1574
+ thread.kill unless thread == current # xxx: Thread#kill
1575
+ }
1576
+ end
1577
+ @thread.join unless @thread == current
1578
+ end
1579
+
1580
+ ##
1581
+ # Starts the DRb main loop in a new thread.
1582
+
1583
+ def run
1584
+ Thread.start do
1585
+ begin
1586
+ while main_loop
1587
+ end
1588
+ ensure
1589
+ @protocol.close if @protocol
1590
+ end
1591
+ end
1592
+ end
1593
+
1594
+ # List of insecure methods.
1595
+ #
1596
+ # These methods are not callable via dRuby.
1597
+ INSECURE_METHOD = [
1598
+ :__send__
1599
+ ]
1600
+
1601
+ # Has a method been included in the list of insecure methods?
1602
+ def insecure_method?(msg_id)
1603
+ INSECURE_METHOD.include?(msg_id)
1604
+ end
1605
+
1606
+ # Coerce an object to a string, providing our own representation if
1607
+ # to_s is not defined for the object.
1608
+ def any_to_s(obj)
1609
+ "#{obj}:#{obj.class}"
1610
+ rescue
1611
+ Kernel.instance_method(:to_s).bind_call(obj)
1612
+ end
1613
+
1614
+ # Check that a method is callable via dRuby.
1615
+ #
1616
+ # +obj+ is the object we want to invoke the method on. +msg_id+ is the
1617
+ # method name, as a Symbol.
1618
+ #
1619
+ # If the method is an insecure method (see #insecure_method?) a
1620
+ # SecurityError is thrown. If the method is private or undefined,
1621
+ # a NameError is thrown.
1622
+ def check_insecure_method(obj, msg_id)
1623
+ return true if Proc === obj && msg_id == :__drb_yield
1624
+ raise(ArgumentError, "#{any_to_s(msg_id)} is not a symbol") unless Symbol == msg_id.class
1625
+ raise(SecurityError, "insecure method '#{msg_id}'") if insecure_method?(msg_id)
1626
+
1627
+ case obj
1628
+ when Object
1629
+ if obj.private_methods.include?(msg_id)
1630
+ desc = any_to_s(obj)
1631
+ raise NoMethodError, "private method '#{msg_id}' called for #{desc}"
1632
+ elsif obj.protected_methods.include?(msg_id)
1633
+ desc = any_to_s(obj)
1634
+ raise NoMethodError, "protected method '#{msg_id}' called for #{desc}"
1635
+ else
1636
+ true
1637
+ end
1638
+ else
1639
+ if Kernel.instance_method(:private_methods).bind(obj).call.include?(msg_id)
1640
+ desc = any_to_s(obj)
1641
+ raise NoMethodError, "private method '#{msg_id}' called for #{desc}"
1642
+ elsif Kernel.instance_method(:protected_methods).bind(obj).call.include?(msg_id)
1643
+ desc = any_to_s(obj)
1644
+ raise NoMethodError, "protected method '#{msg_id}' called for #{desc}"
1645
+ else
1646
+ true
1647
+ end
1648
+ end
1649
+ end
1650
+ public :check_insecure_method
1651
+
1652
+ class InvokeMethod # :nodoc:
1653
+ def initialize(drb_server, client)
1654
+ @drb_server = drb_server
1655
+ @client = client
1656
+ end
1657
+
1658
+ def perform
1659
+ begin
1660
+ setup_message
1661
+ ensure
1662
+ @result = nil
1663
+ @succ = false
1664
+ end
1665
+
1666
+ if @block
1667
+ @result = perform_with_block
1668
+ else
1669
+ @result = perform_without_block
1670
+ end
1671
+ @succ = true
1672
+ case @result
1673
+ when Array
1674
+ if @msg_id == :to_ary
1675
+ @result = DRbArray.new(@result)
1676
+ end
1677
+ end
1678
+ return @succ, @result
1679
+ rescue NoMemoryError, SystemExit, SystemStackError, SecurityError
1680
+ raise
1681
+ rescue Exception
1682
+ @result = $!
1683
+ return @succ, @result
1684
+ end
1685
+
1686
+ private
1687
+ def init_with_client
1688
+ obj, msg, argv, block = @client.recv_request
1689
+ @obj = obj
1690
+ @msg_id = msg.intern
1691
+ @argv = argv
1692
+ @block = block
1693
+ end
1694
+
1695
+ def check_insecure_method
1696
+ @drb_server.check_insecure_method(@obj, @msg_id)
1697
+ end
1698
+
1699
+ def setup_message
1700
+ init_with_client
1701
+ check_insecure_method
1702
+ end
1703
+
1704
+ def block_yield(x)
1705
+ if x.size == 1 && x[0].class == Array
1706
+ x[0] = DRbArray.new(x[0])
1707
+ end
1708
+ @block.call(*x)
1709
+ end
1710
+
1711
+ def perform_with_block
1712
+ @obj.__send__(@msg_id, *@argv) do |*x|
1713
+ jump_error = nil
1714
+ begin
1715
+ block_value = block_yield(x)
1716
+ rescue LocalJumpError
1717
+ jump_error = $!
1718
+ end
1719
+ if jump_error
1720
+ case jump_error.reason
1721
+ when :break
1722
+ break(jump_error.exit_value)
1723
+ else
1724
+ raise jump_error
1725
+ end
1726
+ end
1727
+ block_value
1728
+ end
1729
+ end
1730
+
1731
+ def perform_without_block
1732
+ if Proc === @obj && @msg_id == :__drb_yield
1733
+ if @argv.size == 1
1734
+ ary = @argv
1735
+ else
1736
+ ary = [@argv]
1737
+ end
1738
+ ary.collect(&@obj)[0]
1739
+ else
1740
+ @obj.__send__(@msg_id, *@argv)
1741
+ end
1742
+ end
1743
+
1744
+ end
1745
+
1746
+ def error_print(exception)
1747
+ exception.backtrace.inject(true) do |first, x|
1748
+ if first
1749
+ $stderr.puts "#{x}: #{exception} (#{exception.class})"
1750
+ else
1751
+ $stderr.puts "\tfrom #{x}"
1752
+ end
1753
+ false
1754
+ end
1755
+ end
1756
+
1757
+ # The main loop performed by a DRbServer's internal thread.
1758
+ #
1759
+ # Accepts a connection from a client, and starts up its own
1760
+ # thread to handle it. This thread loops, receiving requests
1761
+ # from the client, invoking them on a local object, and
1762
+ # returning responses, until the client closes the connection
1763
+ # or a local method call fails.
1764
+ def main_loop
1765
+ client0 = @protocol.accept
1766
+ return nil if !client0
1767
+ Thread.start(client0) do |client|
1768
+ @grp.add Thread.current
1769
+ Thread.current['DRb'] = { 'client' => client ,
1770
+ 'server' => self }
1771
+ DRb.mutex.synchronize do
1772
+ client_uri = client.uri
1773
+ @exported_uri << client_uri unless @exported_uri.include?(client_uri)
1774
+ end
1775
+ _last_invoke_method = nil
1776
+ loop do
1777
+ begin
1778
+ succ = false
1779
+ invoke_method = InvokeMethod.new(self, client)
1780
+ succ, result = invoke_method.perform
1781
+ error_print(result) if !succ && verbose
1782
+ unless DRbConnError === result && result.message == 'connection closed'
1783
+ client.send_reply(succ, result)
1784
+ end
1785
+ rescue Exception => e
1786
+ error_print(e) if verbose
1787
+ ensure
1788
+ _last_invoke_method = invoke_method
1789
+ client.close unless succ
1790
+ if Thread.current['DRb']['stop_service']
1791
+ shutdown
1792
+ break
1793
+ end
1794
+ break unless succ
1795
+ end
1796
+ end
1797
+ end
1798
+ end
1799
+ end
1800
+
1801
+ @primary_server = nil
1802
+
1803
+ # Start a dRuby server locally.
1804
+ #
1805
+ # The new dRuby server will become the primary server, even
1806
+ # if another server is currently the primary server.
1807
+ #
1808
+ # +uri+ is the URI for the server to bind to. If nil,
1809
+ # the server will bind to random port on the default local host
1810
+ # name and use the default dRuby protocol.
1811
+ #
1812
+ # +front+ is the server's front object. This may be nil.
1813
+ #
1814
+ # +config+ is the configuration for the new server. This may
1815
+ # be nil.
1816
+ #
1817
+ # See DRbServer::new.
1818
+ def start_service(uri=nil, front=nil, config=nil)
1819
+ @primary_server = DRbServer.new(uri, front, config)
1820
+ end
1821
+ module_function :start_service
1822
+
1823
+ # The primary local dRuby server.
1824
+ #
1825
+ # This is the server created by the #start_service call.
1826
+ attr_accessor :primary_server
1827
+ module_function :primary_server=, :primary_server
1828
+
1829
+ # Get the 'current' server.
1830
+ #
1831
+ # In the context of execution taking place within the main
1832
+ # thread of a dRuby server (typically, as a result of a remote
1833
+ # call on the server or one of its objects), the current
1834
+ # server is that server. Otherwise, the current server is
1835
+ # the primary server.
1836
+ #
1837
+ # If the above rule fails to find a server, a DRbServerNotFound
1838
+ # error is raised.
1839
+ def current_server
1840
+ drb = Thread.current['DRb']
1841
+ server = (drb && drb['server']) ? drb['server'] : @primary_server
1842
+ raise DRbServerNotFound unless server
1843
+ return server
1844
+ end
1845
+ module_function :current_server
1846
+
1847
+ # Stop the local dRuby server.
1848
+ #
1849
+ # This operates on the primary server. If there is no primary
1850
+ # server currently running, it is a noop.
1851
+ def stop_service
1852
+ @primary_server.stop_service if @primary_server
1853
+ @primary_server = nil
1854
+ end
1855
+ module_function :stop_service
1856
+
1857
+ # Get the URI defining the local dRuby space.
1858
+ #
1859
+ # This is the URI of the current server. See #current_server.
1860
+ def uri
1861
+ drb = Thread.current['DRb']
1862
+ client = (drb && drb['client'])
1863
+ if client
1864
+ uri = client.uri
1865
+ return uri if uri
1866
+ end
1867
+ current_server.uri
1868
+ end
1869
+ module_function :uri
1870
+
1871
+ # Is +uri+ the URI for the current local server?
1872
+ def here?(uri)
1873
+ current_server.here?(uri) rescue false
1874
+ # (current_server.uri rescue nil) == uri
1875
+ end
1876
+ module_function :here?
1877
+
1878
+ # Get the configuration of the current server.
1879
+ #
1880
+ # If there is no current server, this returns the default configuration.
1881
+ # See #current_server and DRbServer::make_config.
1882
+ def config
1883
+ current_server.config
1884
+ rescue
1885
+ DRbServer.make_config
1886
+ end
1887
+ module_function :config
1888
+
1889
+ # Get the front object of the current server.
1890
+ #
1891
+ # This raises a DRbServerNotFound error if there is no current server.
1892
+ # See #current_server.
1893
+ def front
1894
+ current_server.front
1895
+ end
1896
+ module_function :front
1897
+
1898
+ # Convert a reference into an object using the current server.
1899
+ #
1900
+ # This raises a DRbServerNotFound error if there is no current server.
1901
+ # See #current_server.
1902
+ def to_obj(ref)
1903
+ current_server.to_obj(ref)
1904
+ end
1905
+
1906
+ # Get a reference id for an object using the current server.
1907
+ #
1908
+ # This raises a DRbServerNotFound error if there is no current server.
1909
+ # See #current_server.
1910
+ def to_id(obj)
1911
+ current_server.to_id(obj)
1912
+ end
1913
+ module_function :to_id
1914
+ module_function :to_obj
1915
+
1916
+ # Get the thread of the primary server.
1917
+ #
1918
+ # This returns nil if there is no primary server. See #primary_server.
1919
+ def thread
1920
+ @primary_server ? @primary_server.thread : nil
1921
+ end
1922
+ module_function :thread
1923
+
1924
+ # Set the default id conversion object.
1925
+ #
1926
+ # This is expected to be an instance such as DRb::DRbIdConv that responds to
1927
+ # #to_id and #to_obj that can convert objects to and from DRb references.
1928
+ #
1929
+ # See DRbServer#default_id_conv.
1930
+ def install_id_conv(idconv)
1931
+ DRbServer.default_id_conv(idconv)
1932
+ end
1933
+ module_function :install_id_conv
1934
+
1935
+ # Set the default ACL to +acl+.
1936
+ #
1937
+ # See DRb::DRbServer.default_acl.
1938
+ def install_acl(acl)
1939
+ DRbServer.default_acl(acl)
1940
+ end
1941
+ module_function :install_acl
1942
+
1943
+ @mutex = Thread::Mutex.new
1944
+ def mutex # :nodoc:
1945
+ @mutex
1946
+ end
1947
+ module_function :mutex
1948
+
1949
+ @server = {}
1950
+ # Registers +server+ with DRb.
1951
+ #
1952
+ # This is called when a new DRb::DRbServer is created.
1953
+ #
1954
+ # If there is no primary server then +server+ becomes the primary server.
1955
+ #
1956
+ # Example:
1957
+ #
1958
+ # require 'drb'
1959
+ #
1960
+ # s = DRb::DRbServer.new # automatically calls regist_server
1961
+ # DRb.fetch_server s.uri #=> #<DRb::DRbServer:0x...>
1962
+ def regist_server(server)
1963
+ @server[server.uri] = server
1964
+ mutex.synchronize do
1965
+ @primary_server = server unless @primary_server
1966
+ end
1967
+ end
1968
+ module_function :regist_server
1969
+
1970
+ # Removes +server+ from the list of registered servers.
1971
+ def remove_server(server)
1972
+ @server.delete(server.uri)
1973
+ mutex.synchronize do
1974
+ if @primary_server == server
1975
+ @primary_server = nil
1976
+ end
1977
+ end
1978
+ end
1979
+ module_function :remove_server
1980
+
1981
+ # Retrieves the server with the given +uri+.
1982
+ #
1983
+ # See also regist_server and remove_server.
1984
+ def fetch_server(uri)
1985
+ @server[uri]
1986
+ end
1987
+ module_function :fetch_server
1988
+ end
1989
+
1990
+ # :stopdoc:
1991
+ DRbObject = DRb::DRbObject
1992
+ DRbUndumped = DRb::DRbUndumped
1993
+ DRbIdConv = DRb::DRbIdConv