tdiary 5.2.3 → 5.2.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2596) hide show
  1. checksums.yaml +4 -4
  2. data/ChangeLog +5 -0
  3. data/Gemfile +1 -0
  4. data/Gemfile.lock +30 -29
  5. data/lib/tdiary/cli.rb +1 -1
  6. data/lib/tdiary/rack/session.rb +0 -1
  7. data/lib/tdiary/version.rb +1 -1
  8. data/misc/paas/heroku/Gemfile.local +2 -1
  9. data/vendor/bundle/ruby/3.1.0/bin/bundle +29 -0
  10. data/vendor/bundle/ruby/3.1.0/bin/bundler +29 -0
  11. data/vendor/bundle/ruby/3.1.0/bin/irb +29 -0
  12. data/vendor/bundle/ruby/3.1.0/bin/rackup +4 -4
  13. data/vendor/bundle/ruby/3.1.0/build_info/{nokogiri-1.13.8-x86_64-linux.info → nokogiri-1.13.9-x86_64-linux.info} +0 -0
  14. data/vendor/bundle/ruby/3.1.0/cache/bundler-2.3.7.gem +0 -0
  15. data/vendor/bundle/ruby/3.1.0/cache/capybara-3.36.0.gem +0 -0
  16. data/vendor/bundle/ruby/3.1.0/cache/debug-1.6.3.gem +0 -0
  17. data/vendor/bundle/ruby/3.1.0/cache/irb-1.4.2.gem +0 -0
  18. data/vendor/bundle/ruby/3.1.0/cache/net-smtp-0.3.3.gem +0 -0
  19. data/vendor/bundle/ruby/3.1.0/cache/nokogiri-1.13.9-x86_64-linux.gem +0 -0
  20. data/vendor/bundle/ruby/3.1.0/cache/octokit-4.25.1.gem +0 -0
  21. data/vendor/bundle/ruby/3.1.0/cache/rack-3.0.1.gem +0 -0
  22. data/vendor/bundle/ruby/3.1.0/cache/rackup-0.2.3.gem +0 -0
  23. data/vendor/bundle/ruby/3.1.0/cache/rspec-3.12.0.gem +0 -0
  24. data/vendor/bundle/ruby/3.1.0/cache/rspec-core-3.12.0.gem +0 -0
  25. data/vendor/bundle/ruby/3.1.0/cache/rspec-expectations-3.12.0.gem +0 -0
  26. data/vendor/bundle/ruby/3.1.0/cache/rspec-mocks-3.12.0.gem +0 -0
  27. data/vendor/bundle/ruby/3.1.0/cache/rspec-support-3.12.0.gem +0 -0
  28. data/vendor/bundle/ruby/3.1.0/cache/selenium-webdriver-4.1.0.gem +0 -0
  29. data/vendor/bundle/ruby/3.1.0/cache/sequel-5.62.0.gem +0 -0
  30. data/vendor/bundle/ruby/3.1.0/cache/sqlite3-1.5.4-x86_64-linux.gem +0 -0
  31. data/vendor/bundle/ruby/3.1.0/cache/test-unit-3.5.5.gem +0 -0
  32. data/vendor/bundle/ruby/3.1.0/extensions/x86_64-linux/3.1.0/debug-1.6.3/debug/debug.so +0 -0
  33. data/vendor/bundle/ruby/3.1.0/extensions/x86_64-linux/3.1.0/{debug-1.6.2 → debug-1.6.3}/gem.build_complete +0 -0
  34. data/vendor/bundle/ruby/3.1.0/extensions/x86_64-linux/3.1.0/debug-1.6.3/gem_make.out +16 -0
  35. data/vendor/bundle/ruby/3.1.0/extensions/x86_64-linux/3.1.0/json-2.6.2/gem_make.out +4 -4
  36. data/vendor/bundle/ruby/3.1.0/extensions/x86_64-linux/3.1.0/redcarpet-3.5.1/gem_make.out +5 -5
  37. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/CHANGELOG.md +3985 -0
  38. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/LICENSE.md +22 -0
  39. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/README.md +62 -0
  40. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/bundler.gemspec +46 -0
  41. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/exe/bundle +49 -0
  42. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/exe/bundler +4 -0
  43. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/build_metadata.rb +45 -0
  44. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/capistrano.rb +22 -0
  45. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/cli/add.rb +47 -0
  46. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/cli/binstubs.rb +53 -0
  47. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/cli/cache.rb +43 -0
  48. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/cli/check.rb +40 -0
  49. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/cli/clean.rb +25 -0
  50. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/cli/common.rb +128 -0
  51. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/cli/config.rb +203 -0
  52. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/cli/console.rb +43 -0
  53. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/cli/doctor.rb +159 -0
  54. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/cli/exec.rb +88 -0
  55. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/cli/fund.rb +36 -0
  56. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/cli/gem.rb +443 -0
  57. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/cli/info.rb +94 -0
  58. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/cli/init.rb +47 -0
  59. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/cli/inject.rb +60 -0
  60. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/cli/install.rb +187 -0
  61. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/cli/issue.rb +41 -0
  62. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/cli/list.rb +66 -0
  63. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/cli/lock.rb +67 -0
  64. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/cli/open.rb +29 -0
  65. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/cli/outdated.rb +290 -0
  66. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/cli/platform.rb +46 -0
  67. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/cli/plugin.rb +41 -0
  68. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/cli/pristine.rb +52 -0
  69. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/cli/remove.rb +17 -0
  70. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/cli/show.rb +75 -0
  71. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/cli/update.rb +122 -0
  72. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/cli/viz.rb +31 -0
  73. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/cli.rb +849 -0
  74. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/compact_index_client/cache.rb +101 -0
  75. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/compact_index_client/gem_parser.rb +28 -0
  76. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/compact_index_client/updater.rb +103 -0
  77. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/compact_index_client.rb +119 -0
  78. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/constants.rb +7 -0
  79. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/current_ruby.rb +96 -0
  80. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/definition.rb +834 -0
  81. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/dep_proxy.rb +55 -0
  82. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/dependency.rb +142 -0
  83. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/deployment.rb +69 -0
  84. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/deprecate.rb +44 -0
  85. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/digest.rb +71 -0
  86. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/dsl.rb +588 -0
  87. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/endpoint_specification.rb +151 -0
  88. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/env.rb +150 -0
  89. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/environment_preserver.rb +85 -0
  90. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/errors.rb +175 -0
  91. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/feature_flag.rb +55 -0
  92. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/fetcher/base.rb +52 -0
  93. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/fetcher/compact_index.rb +135 -0
  94. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/fetcher/dependency.rb +82 -0
  95. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/fetcher/downloader.rb +90 -0
  96. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/fetcher/index.rb +26 -0
  97. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/fetcher.rb +309 -0
  98. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/friendly_errors.rb +112 -0
  99. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/gem_helper.rb +238 -0
  100. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/gem_helpers.rb +110 -0
  101. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/gem_tasks.rb +7 -0
  102. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/gem_version_promoter.rb +190 -0
  103. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/graph.rb +152 -0
  104. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/index.rb +213 -0
  105. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/injector.rb +282 -0
  106. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/inline.rb +85 -0
  107. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/installer/gem_installer.rb +71 -0
  108. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/installer/parallel_installer.rb +250 -0
  109. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/installer/standalone.rb +72 -0
  110. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/installer.rb +288 -0
  111. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/lazy_specification.rb +158 -0
  112. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/lockfile_generator.rb +95 -0
  113. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/lockfile_parser.rb +220 -0
  114. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/man/bundle-add.1 +74 -0
  115. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/man/bundle-add.1.ronn +52 -0
  116. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/man/bundle-binstubs.1 +42 -0
  117. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/man/bundle-binstubs.1.ronn +41 -0
  118. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/man/bundle-cache.1 +55 -0
  119. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/man/bundle-cache.1.ronn +72 -0
  120. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/man/bundle-check.1 +31 -0
  121. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/man/bundle-check.1.ronn +26 -0
  122. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/man/bundle-clean.1 +24 -0
  123. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/man/bundle-clean.1.ronn +18 -0
  124. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/man/bundle-config.1 +496 -0
  125. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/man/bundle-config.1.ronn +396 -0
  126. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/man/bundle-doctor.1 +44 -0
  127. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/man/bundle-doctor.1.ronn +33 -0
  128. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/man/bundle-exec.1 +165 -0
  129. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/man/bundle-exec.1.ronn +152 -0
  130. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/man/bundle-gem.1 +115 -0
  131. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/man/bundle-gem.1.ronn +117 -0
  132. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/man/bundle-info.1 +20 -0
  133. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/man/bundle-info.1.ronn +17 -0
  134. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/man/bundle-init.1 +25 -0
  135. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/man/bundle-init.1.ronn +29 -0
  136. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/man/bundle-inject.1 +33 -0
  137. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/man/bundle-inject.1.ronn +22 -0
  138. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/man/bundle-install.1 +338 -0
  139. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/man/bundle-install.1.ronn +405 -0
  140. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/man/bundle-list.1 +50 -0
  141. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/man/bundle-list.1.ronn +33 -0
  142. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/man/bundle-lock.1 +84 -0
  143. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/man/bundle-lock.1.ronn +94 -0
  144. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/man/bundle-open.1 +32 -0
  145. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/man/bundle-open.1.ronn +19 -0
  146. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/man/bundle-outdated.1 +155 -0
  147. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/man/bundle-outdated.1.ronn +111 -0
  148. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/man/bundle-platform.1 +61 -0
  149. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/man/bundle-platform.1.ronn +42 -0
  150. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/man/bundle-pristine.1 +34 -0
  151. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/man/bundle-pristine.1.ronn +34 -0
  152. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/man/bundle-remove.1 +31 -0
  153. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/man/bundle-remove.1.ronn +23 -0
  154. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/man/bundle-show.1 +23 -0
  155. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/man/bundle-show.1.ronn +21 -0
  156. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/man/bundle-update.1 +394 -0
  157. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/man/bundle-update.1.ronn +351 -0
  158. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/man/bundle-viz.1 +39 -0
  159. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/man/bundle-viz.1.ronn +30 -0
  160. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/man/bundle.1 +136 -0
  161. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/man/bundle.1.ronn +111 -0
  162. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/man/gemfile.5 +712 -0
  163. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/man/gemfile.5.ronn +525 -0
  164. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/man/index.txt +25 -0
  165. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/match_platform.rb +24 -0
  166. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/mirror.rb +223 -0
  167. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/plugin/api/source.rb +326 -0
  168. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/plugin/api.rb +81 -0
  169. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/plugin/dsl.rb +53 -0
  170. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/plugin/events.rb +61 -0
  171. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/plugin/index.rb +185 -0
  172. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/plugin/installer/git.rb +38 -0
  173. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/plugin/installer/rubygems.rb +27 -0
  174. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/plugin/installer.rb +109 -0
  175. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/plugin/source_list.rb +31 -0
  176. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/plugin.rb +350 -0
  177. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/process_lock.rb +24 -0
  178. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/remote_specification.rb +122 -0
  179. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/resolver/spec_group.rb +110 -0
  180. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/resolver.rb +387 -0
  181. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/retry.rb +66 -0
  182. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/ruby_dsl.rb +18 -0
  183. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/ruby_version.rb +137 -0
  184. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/rubygems_ext.rb +239 -0
  185. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/rubygems_gem_installer.rb +160 -0
  186. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/rubygems_integration.rb +584 -0
  187. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/runtime.rb +312 -0
  188. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/self_manager.rb +168 -0
  189. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/settings/validator.rb +102 -0
  190. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/settings.rb +513 -0
  191. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/setup.rb +27 -0
  192. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/shared_helpers.rb +343 -0
  193. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/similarity_detector.rb +63 -0
  194. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/source/gemspec.rb +18 -0
  195. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/source/git/git_proxy.rb +263 -0
  196. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/source/git.rb +356 -0
  197. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/source/metadata.rb +63 -0
  198. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/source/path/installer.rb +74 -0
  199. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/source/path.rb +260 -0
  200. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/source/rubygems/remote.rb +68 -0
  201. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/source/rubygems.rb +555 -0
  202. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/source/rubygems_aggregate.rb +68 -0
  203. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/source.rb +115 -0
  204. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/source_list.rb +221 -0
  205. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/source_map.rb +58 -0
  206. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/spec_set.rb +188 -0
  207. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/stub_specification.rb +114 -0
  208. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/templates/Executable +29 -0
  209. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/templates/Executable.bundler +114 -0
  210. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/templates/Executable.standalone +14 -0
  211. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/templates/Gemfile +5 -0
  212. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/templates/gems.rb +5 -0
  213. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/templates/newgem/CHANGELOG.md.tt +5 -0
  214. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +84 -0
  215. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/templates/newgem/Gemfile.tt +23 -0
  216. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/templates/newgem/LICENSE.txt.tt +21 -0
  217. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/templates/newgem/README.md.tt +49 -0
  218. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/templates/newgem/Rakefile.tt +56 -0
  219. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/templates/newgem/bin/console.tt +15 -0
  220. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/templates/newgem/bin/setup.tt +8 -0
  221. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/templates/newgem/circleci/config.yml.tt +13 -0
  222. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/templates/newgem/exe/newgem.tt +3 -0
  223. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt +5 -0
  224. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/templates/newgem/ext/newgem/newgem.c.tt +9 -0
  225. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/templates/newgem/ext/newgem/newgem.h.tt +6 -0
  226. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/templates/newgem/github/workflows/main.yml.tt +27 -0
  227. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/templates/newgem/gitignore.tt +20 -0
  228. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/templates/newgem/gitlab-ci.yml.tt +9 -0
  229. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +9 -0
  230. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/templates/newgem/lib/newgem.rb.tt +15 -0
  231. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/templates/newgem/newgem.gemspec.tt +44 -0
  232. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/templates/newgem/rspec.tt +3 -0
  233. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/templates/newgem/rubocop.yml.tt +13 -0
  234. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/templates/newgem/sig/newgem.rbs.tt +8 -0
  235. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt +11 -0
  236. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/templates/newgem/spec/spec_helper.rb.tt +15 -0
  237. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/templates/newgem/standard.yml.tt +3 -0
  238. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/templates/newgem/test/minitest/test_helper.rb.tt +6 -0
  239. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/templates/newgem/test/minitest/test_newgem.rb.tt +13 -0
  240. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt +15 -0
  241. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt +6 -0
  242. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/templates/newgem/travis.yml.tt +6 -0
  243. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/ui/rg_proxy.rb +19 -0
  244. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/ui/shell.rb +142 -0
  245. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/ui/silent.rb +69 -0
  246. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/ui.rb +9 -0
  247. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/uri_credentials_filter.rb +43 -0
  248. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/connection_pool/LICENSE +20 -0
  249. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +174 -0
  250. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +3 -0
  251. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +57 -0
  252. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +126 -0
  253. data/vendor/bundle/ruby/3.1.0/gems/{debug-1.6.2 → bundler-2.3.7/lib/bundler/vendor/fileutils}/LICENSE.txt +0 -0
  254. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/fileutils/lib/fileutils.rb +1764 -0
  255. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/molinillo/LICENSE +9 -0
  256. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb +57 -0
  257. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +88 -0
  258. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb +36 -0
  259. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +66 -0
  260. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +62 -0
  261. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +63 -0
  262. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +61 -0
  263. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +126 -0
  264. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +46 -0
  265. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +36 -0
  266. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +164 -0
  267. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +255 -0
  268. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +143 -0
  269. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +6 -0
  270. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +112 -0
  271. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb +67 -0
  272. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +839 -0
  273. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb +46 -0
  274. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/molinillo/lib/molinillo/state.rb +58 -0
  275. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/molinillo/lib/molinillo.rb +11 -0
  276. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/net-http-persistent/README.rdoc +82 -0
  277. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +40 -0
  278. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +53 -0
  279. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb +79 -0
  280. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +1073 -0
  281. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/thor/LICENSE.md +20 -0
  282. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/thor/lib/thor/actions/create_file.rb +104 -0
  283. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +61 -0
  284. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/thor/lib/thor/actions/directory.rb +108 -0
  285. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/thor/lib/thor/actions/empty_directory.rb +143 -0
  286. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +375 -0
  287. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +119 -0
  288. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/thor/lib/thor/actions.rb +340 -0
  289. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/thor/lib/thor/base.rb +699 -0
  290. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/thor/lib/thor/command.rb +142 -0
  291. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb +103 -0
  292. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/thor/lib/thor/error.rb +115 -0
  293. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/thor/lib/thor/group.rb +281 -0
  294. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/thor/lib/thor/invocation.rb +178 -0
  295. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/thor/lib/thor/line_editor/basic.rb +37 -0
  296. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/thor/lib/thor/line_editor/readline.rb +88 -0
  297. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/thor/lib/thor/line_editor.rb +17 -0
  298. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/thor/lib/thor/nested_context.rb +29 -0
  299. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/thor/lib/thor/parser/argument.rb +70 -0
  300. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb +179 -0
  301. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/thor/lib/thor/parser/option.rb +159 -0
  302. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/thor/lib/thor/parser/options.rb +255 -0
  303. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/thor/lib/thor/parser.rb +4 -0
  304. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/thor/lib/thor/rake_compat.rb +72 -0
  305. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/thor/lib/thor/runner.rb +325 -0
  306. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +512 -0
  307. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/thor/lib/thor/shell/color.rb +157 -0
  308. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/thor/lib/thor/shell/html.rb +126 -0
  309. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/thor/lib/thor/shell.rb +81 -0
  310. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/thor/lib/thor/util.rb +284 -0
  311. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/thor/lib/thor/version.rb +3 -0
  312. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/thor/lib/thor.rb +516 -0
  313. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +154 -0
  314. data/vendor/bundle/ruby/3.1.0/gems/{net-smtp-0.3.1 → bundler-2.3.7/lib/bundler/vendor/tsort}/LICENSE.txt +0 -0
  315. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/tsort/lib/tsort.rb +453 -0
  316. data/vendor/bundle/ruby/3.1.0/gems/{reline-0.3.1/BSDL → bundler-2.3.7/lib/bundler/vendor/uri/LICENSE.txt} +0 -0
  317. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/uri/lib/uri/common.rb +681 -0
  318. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/uri/lib/uri/file.rb +94 -0
  319. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/uri/lib/uri/ftp.rb +266 -0
  320. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/uri/lib/uri/generic.rb +1567 -0
  321. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/uri/lib/uri/http.rb +87 -0
  322. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/uri/lib/uri/https.rb +22 -0
  323. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/uri/lib/uri/ldap.rb +261 -0
  324. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/uri/lib/uri/ldaps.rb +21 -0
  325. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/uri/lib/uri/mailto.rb +293 -0
  326. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +533 -0
  327. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +114 -0
  328. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/uri/lib/uri/version.rb +6 -0
  329. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/uri/lib/uri/ws.rb +84 -0
  330. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/uri/lib/uri/wss.rb +22 -0
  331. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/uri/lib/uri.rb +103 -0
  332. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendored_fileutils.rb +4 -0
  333. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendored_molinillo.rb +4 -0
  334. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendored_persistent.rb +47 -0
  335. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendored_thor.rb +8 -0
  336. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendored_tmpdir.rb +4 -0
  337. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendored_tsort.rb +4 -0
  338. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vendored_uri.rb +4 -0
  339. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/version.rb +9 -0
  340. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/version_ranges.rb +122 -0
  341. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/vlad.rb +17 -0
  342. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/worker.rb +119 -0
  343. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler/yaml_serializer.rb +89 -0
  344. data/vendor/bundle/ruby/3.1.0/gems/bundler-2.3.7/lib/bundler.rb +703 -0
  345. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/History.md +1931 -0
  346. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/License.txt +0 -0
  347. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/README.md +1108 -0
  348. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/config.rb +0 -0
  349. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/cucumber.rb +0 -0
  350. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/driver/base.rb +0 -0
  351. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/lib/capybara/driver/node.rb +139 -0
  352. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/lib/capybara/dsl.rb +65 -0
  353. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/lib/capybara/helpers.rb +123 -0
  354. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/lib/capybara/minitest/spec.rb +267 -0
  355. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/minitest.rb +0 -0
  356. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/node/actions.rb +0 -0
  357. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/node/base.rb +0 -0
  358. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/node/document.rb +0 -0
  359. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/node/document_matchers.rb +0 -0
  360. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/lib/capybara/node/element.rb +602 -0
  361. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/lib/capybara/node/finders.rb +326 -0
  362. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/node/matchers.rb +0 -0
  363. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/node/simple.rb +0 -0
  364. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/queries/active_element_query.rb +0 -0
  365. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/queries/ancestor_query.rb +0 -0
  366. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/queries/base_query.rb +0 -0
  367. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/queries/current_path_query.rb +0 -0
  368. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/queries/match_query.rb +0 -0
  369. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/lib/capybara/queries/selector_query.rb +745 -0
  370. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/queries/sibling_query.rb +0 -0
  371. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/queries/style_query.rb +0 -0
  372. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/queries/text_query.rb +0 -0
  373. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/queries/title_query.rb +0 -0
  374. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/lib/capybara/rack_test/browser.rb +144 -0
  375. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/rack_test/css_handlers.rb +0 -0
  376. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/lib/capybara/rack_test/driver.rb +110 -0
  377. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/rack_test/errors.rb +0 -0
  378. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/rack_test/form.rb +0 -0
  379. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/lib/capybara/rack_test/node.rb +328 -0
  380. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/rails.rb +0 -0
  381. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/lib/capybara/registration_container.rb +44 -0
  382. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/registrations/drivers.rb +0 -0
  383. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/registrations/patches/puma_ssl.rb +0 -0
  384. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/registrations/servers.rb +0 -0
  385. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/result.rb +0 -0
  386. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/rspec/features.rb +0 -0
  387. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/rspec/matcher_proxies.rb +0 -0
  388. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/rspec/matchers/base.rb +0 -0
  389. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/rspec/matchers/become_closed.rb +0 -0
  390. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/rspec/matchers/compound.rb +0 -0
  391. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/rspec/matchers/count_sugar.rb +0 -0
  392. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/rspec/matchers/have_ancestor.rb +0 -0
  393. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/rspec/matchers/have_current_path.rb +0 -0
  394. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/lib/capybara/rspec/matchers/have_selector.rb +77 -0
  395. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/rspec/matchers/have_sibling.rb +0 -0
  396. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/rspec/matchers/have_text.rb +0 -0
  397. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/rspec/matchers/have_title.rb +0 -0
  398. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/rspec/matchers/match_selector.rb +0 -0
  399. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/rspec/matchers/match_style.rb +0 -0
  400. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/rspec/matchers/spatial_sugar.rb +0 -0
  401. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/lib/capybara/rspec/matchers.rb +202 -0
  402. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/rspec.rb +0 -0
  403. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selector/builders/css_builder.rb +0 -0
  404. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selector/builders/xpath_builder.rb +0 -0
  405. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selector/css.rb +0 -0
  406. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selector/definition/button.rb +0 -0
  407. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selector/definition/checkbox.rb +0 -0
  408. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selector/definition/css.rb +0 -0
  409. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selector/definition/datalist_input.rb +0 -0
  410. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selector/definition/datalist_option.rb +0 -0
  411. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selector/definition/element.rb +0 -0
  412. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selector/definition/field.rb +0 -0
  413. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selector/definition/fieldset.rb +0 -0
  414. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selector/definition/file_field.rb +0 -0
  415. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selector/definition/fillable_field.rb +0 -0
  416. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selector/definition/frame.rb +0 -0
  417. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selector/definition/id.rb +0 -0
  418. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selector/definition/label.rb +0 -0
  419. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selector/definition/link.rb +0 -0
  420. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selector/definition/link_or_button.rb +0 -0
  421. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selector/definition/option.rb +0 -0
  422. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selector/definition/radio_button.rb +0 -0
  423. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selector/definition/select.rb +0 -0
  424. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selector/definition/table.rb +0 -0
  425. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selector/definition/table_row.rb +0 -0
  426. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selector/definition/xpath.rb +0 -0
  427. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/lib/capybara/selector/definition.rb +279 -0
  428. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selector/filter.rb +0 -0
  429. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selector/filter_set.rb +0 -0
  430. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selector/filters/base.rb +0 -0
  431. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selector/filters/expression_filter.rb +0 -0
  432. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selector/filters/locator_filter.rb +0 -0
  433. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selector/filters/node_filter.rb +0 -0
  434. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selector/regexp_disassembler.rb +0 -0
  435. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/lib/capybara/selector/selector.rb +155 -0
  436. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selector/xpath_extensions.rb +0 -0
  437. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selector.rb +0 -0
  438. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selenium/atoms/getAttribute.min.js +0 -0
  439. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selenium/atoms/isDisplayed.min.js +0 -0
  440. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selenium/atoms/src/getAttribute.js +0 -0
  441. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selenium/atoms/src/isDisplayed.js +0 -0
  442. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/lib/capybara/selenium/driver.rb +550 -0
  443. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selenium/driver_specializations/chrome_driver.rb +0 -0
  444. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selenium/driver_specializations/edge_driver.rb +0 -0
  445. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selenium/driver_specializations/firefox_driver.rb +0 -0
  446. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selenium/driver_specializations/internet_explorer_driver.rb +0 -0
  447. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selenium/driver_specializations/safari_driver.rb +0 -0
  448. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selenium/extensions/file_input_click_emulation.rb +0 -0
  449. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selenium/extensions/find.rb +0 -0
  450. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selenium/extensions/html5_drag.rb +0 -0
  451. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selenium/extensions/modifier_keys_stack.rb +0 -0
  452. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selenium/extensions/scroll.rb +0 -0
  453. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selenium/logger_suppressor.rb +0 -0
  454. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/lib/capybara/selenium/node.rb +616 -0
  455. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selenium/nodes/chrome_node.rb +0 -0
  456. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selenium/nodes/edge_node.rb +0 -0
  457. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selenium/nodes/firefox_node.rb +0 -0
  458. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selenium/nodes/ie_node.rb +0 -0
  459. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selenium/nodes/safari_node.rb +0 -0
  460. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selenium/patches/action_pauser.rb +0 -0
  461. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selenium/patches/atoms.rb +0 -0
  462. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selenium/patches/is_displayed.rb +0 -0
  463. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selenium/patches/logs.rb +0 -0
  464. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selenium/patches/pause_duration_fix.rb +0 -0
  465. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/selenium/patches/persistent_client.rb +0 -0
  466. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/lib/capybara/server/animation_disabler.rb +69 -0
  467. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/server/checker.rb +0 -0
  468. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/server/middleware.rb +0 -0
  469. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/server.rb +0 -0
  470. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/lib/capybara/session/config.rb +126 -0
  471. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/session/matchers.rb +0 -0
  472. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/lib/capybara/session.rb +961 -0
  473. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/fixtures/another_test_file.txt +0 -0
  474. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/fixtures/capybara.jpg +0 -0
  475. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/fixtures/no_extension +0 -0
  476. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/fixtures/test_file.txt +0 -0
  477. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/public/jquery-ui.js +0 -0
  478. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/public/jquery.js +0 -0
  479. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/public/offset.js +0 -0
  480. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/public/test.js +0 -0
  481. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/accept_alert_spec.rb +0 -0
  482. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/accept_confirm_spec.rb +0 -0
  483. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/accept_prompt_spec.rb +0 -0
  484. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/active_element_spec.rb +0 -0
  485. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/lib/capybara/spec/session/all_spec.rb +276 -0
  486. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/ancestor_spec.rb +0 -0
  487. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/assert_all_of_selectors_spec.rb +0 -0
  488. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/assert_current_path_spec.rb +0 -0
  489. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/assert_selector_spec.rb +0 -0
  490. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/assert_style_spec.rb +0 -0
  491. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/lib/capybara/spec/session/assert_text_spec.rb +258 -0
  492. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/assert_title_spec.rb +0 -0
  493. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/attach_file_spec.rb +0 -0
  494. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/body_spec.rb +0 -0
  495. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/check_spec.rb +0 -0
  496. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/choose_spec.rb +0 -0
  497. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/click_button_spec.rb +0 -0
  498. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/click_link_or_button_spec.rb +0 -0
  499. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/click_link_spec.rb +0 -0
  500. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/current_scope_spec.rb +0 -0
  501. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/current_url_spec.rb +0 -0
  502. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/dismiss_confirm_spec.rb +0 -0
  503. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/dismiss_prompt_spec.rb +0 -0
  504. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/element/assert_match_selector_spec.rb +0 -0
  505. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/element/match_css_spec.rb +0 -0
  506. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/element/match_xpath_spec.rb +0 -0
  507. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/element/matches_selector_spec.rb +0 -0
  508. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/evaluate_async_script_spec.rb +0 -0
  509. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/evaluate_script_spec.rb +0 -0
  510. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/execute_script_spec.rb +0 -0
  511. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/fill_in_spec.rb +0 -0
  512. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/find_button_spec.rb +0 -0
  513. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/find_by_id_spec.rb +0 -0
  514. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/find_field_spec.rb +0 -0
  515. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/find_link_spec.rb +0 -0
  516. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/lib/capybara/spec/session/find_spec.rb +531 -0
  517. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/first_spec.rb +0 -0
  518. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/frame/frame_title_spec.rb +0 -0
  519. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/frame/frame_url_spec.rb +0 -0
  520. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/frame/switch_to_frame_spec.rb +0 -0
  521. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/frame/within_frame_spec.rb +0 -0
  522. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/go_back_spec.rb +0 -0
  523. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/go_forward_spec.rb +0 -0
  524. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/has_all_selectors_spec.rb +0 -0
  525. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/has_ancestor_spec.rb +0 -0
  526. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/has_any_selectors_spec.rb +0 -0
  527. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/has_button_spec.rb +0 -0
  528. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/has_css_spec.rb +0 -0
  529. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/lib/capybara/spec/session/has_current_path_spec.rb +151 -0
  530. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/lib/capybara/spec/session/has_field_spec.rb +389 -0
  531. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/lib/capybara/spec/session/has_link_spec.rb +63 -0
  532. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/has_none_selectors_spec.rb +0 -0
  533. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/lib/capybara/spec/session/has_select_spec.rb +310 -0
  534. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/lib/capybara/spec/session/has_selector_spec.rb +202 -0
  535. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/has_sibling_spec.rb +0 -0
  536. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/has_table_spec.rb +0 -0
  537. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/lib/capybara/spec/session/has_text_spec.rb +383 -0
  538. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/has_title_spec.rb +0 -0
  539. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/has_xpath_spec.rb +0 -0
  540. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/headers_spec.rb +0 -0
  541. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/html_spec.rb +0 -0
  542. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/matches_style_spec.rb +0 -0
  543. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/lib/capybara/spec/session/node_spec.rb +1312 -0
  544. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/node_wrapper_spec.rb +0 -0
  545. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/refresh_spec.rb +0 -0
  546. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/reset_session_spec.rb +0 -0
  547. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/response_code_spec.rb +0 -0
  548. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/save_and_open_page_spec.rb +0 -0
  549. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/save_and_open_screenshot_spec.rb +0 -0
  550. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/save_page_spec.rb +0 -0
  551. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/save_screenshot_spec.rb +0 -0
  552. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/screenshot_spec.rb +0 -0
  553. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/scroll_spec.rb +0 -0
  554. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/select_spec.rb +0 -0
  555. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/selectors_spec.rb +0 -0
  556. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/sibling_spec.rb +0 -0
  557. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/text_spec.rb +0 -0
  558. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/title_spec.rb +0 -0
  559. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/uncheck_spec.rb +0 -0
  560. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/unselect_spec.rb +0 -0
  561. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/lib/capybara/spec/session/visit_spec.rb +204 -0
  562. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/window/become_closed_spec.rb +0 -0
  563. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/window/current_window_spec.rb +0 -0
  564. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/window/open_new_window_spec.rb +0 -0
  565. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/window/switch_to_window_spec.rb +0 -0
  566. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/window/window_opened_by_spec.rb +0 -0
  567. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/lib/capybara/spec/session/window/window_spec.rb +203 -0
  568. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/window/windows_spec.rb +0 -0
  569. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/window/within_window_spec.rb +0 -0
  570. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/session/within_spec.rb +0 -0
  571. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/spec_helper.rb +0 -0
  572. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/lib/capybara/spec/test_app.rb +237 -0
  573. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/views/animated.erb +0 -0
  574. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/views/buttons.erb +0 -0
  575. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/views/fieldsets.erb +0 -0
  576. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/views/form.erb +0 -0
  577. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/views/frame_child.erb +0 -0
  578. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/views/frame_one.erb +0 -0
  579. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/views/frame_parent.erb +0 -0
  580. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/views/frame_two.erb +0 -0
  581. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/views/header_links.erb +0 -0
  582. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/views/host_links.erb +0 -0
  583. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/views/initial_alert.erb +0 -0
  584. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/views/layout.erb +0 -0
  585. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/views/obscured.erb +0 -0
  586. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/views/offset.erb +0 -0
  587. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/views/path.erb +0 -0
  588. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/views/popup_one.erb +0 -0
  589. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/views/popup_two.erb +0 -0
  590. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/views/postback.erb +0 -0
  591. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/views/react.erb +0 -0
  592. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/views/scroll.erb +0 -0
  593. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/views/spatial.erb +0 -0
  594. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/views/tables.erb +0 -0
  595. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/views/with_animation.erb +0 -0
  596. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/views/with_base_tag.erb +0 -0
  597. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/views/with_count.erb +0 -0
  598. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/views/with_dragula.erb +0 -0
  599. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/views/with_fixed_header_footer.erb +0 -0
  600. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/views/with_hover.erb +0 -0
  601. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/views/with_hover1.erb +0 -0
  602. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/views/with_html.erb +0 -0
  603. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/views/with_html5_svg.erb +0 -0
  604. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/views/with_html_entities.erb +0 -0
  605. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/views/with_jquery_animation.erb +0 -0
  606. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/views/with_js.erb +0 -0
  607. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/views/with_jstree.erb +0 -0
  608. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/views/with_namespace.erb +0 -0
  609. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/views/with_scope.erb +0 -0
  610. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/views/with_scope_other.erb +0 -0
  611. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/views/with_simple_html.erb +0 -0
  612. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/views/with_slow_unload.erb +0 -0
  613. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/views/with_sortable_js.erb +0 -0
  614. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/views/with_unload_alert.erb +0 -0
  615. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/views/with_windows.erb +0 -0
  616. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/lib/capybara/spec/views/within_frames.erb +0 -0
  617. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/lib/capybara/version.rb +5 -0
  618. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/lib/capybara/window.rb +142 -0
  619. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/lib/capybara.rb +517 -0
  620. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/spec/basic_node_spec.rb +0 -0
  621. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/spec/capybara_spec.rb +0 -0
  622. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/spec/css_builder_spec.rb +0 -0
  623. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/spec/css_splitter_spec.rb +0 -0
  624. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/spec/dsl_spec.rb +289 -0
  625. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/spec/filter_set_spec.rb +0 -0
  626. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/spec/fixtures/capybara.csv +0 -0
  627. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/spec/fixtures/certificate.pem +0 -0
  628. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/spec/fixtures/key.pem +0 -0
  629. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/spec/fixtures/selenium_driver_rspec_failure.rb +13 -0
  630. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/spec/fixtures/selenium_driver_rspec_success.rb +13 -0
  631. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/spec/minitest_spec.rb +0 -0
  632. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/spec/minitest_spec_spec.rb +0 -0
  633. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/spec/per_session_config_spec.rb +0 -0
  634. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/spec/rack_test_spec.rb +283 -0
  635. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/spec/regexp_dissassembler_spec.rb +0 -0
  636. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/spec/result_spec.rb +195 -0
  637. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/spec/rspec/features_spec.rb +101 -0
  638. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/spec/rspec/scenarios_spec.rb +23 -0
  639. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/spec/rspec/shared_spec_matchers.rb +0 -0
  640. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/spec/rspec/views_spec.rb +0 -0
  641. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/spec/rspec_matchers_spec.rb +0 -0
  642. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/spec/rspec_spec.rb +0 -0
  643. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/spec/sauce_spec_chrome.rb +43 -0
  644. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/spec/selector_spec.rb +528 -0
  645. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/spec/selenium_spec_chrome.rb +206 -0
  646. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/spec/selenium_spec_chrome_remote.rb +0 -0
  647. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/spec/selenium_spec_edge.rb +0 -0
  648. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/spec/selenium_spec_firefox.rb +211 -0
  649. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/spec/selenium_spec_firefox_remote.rb +0 -0
  650. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/spec/selenium_spec_ie.rb +0 -0
  651. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/spec/selenium_spec_safari.rb +156 -0
  652. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/spec/server_spec.rb +303 -0
  653. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/spec/session_spec.rb +0 -0
  654. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/spec/shared_selenium_node.rb +0 -0
  655. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/spec/shared_selenium_session.rb +561 -0
  656. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/spec/spec_helper.rb +100 -0
  657. data/vendor/bundle/ruby/3.1.0/gems/{capybara-3.37.1 → capybara-3.36.0}/spec/xpath_builder_spec.rb +0 -0
  658. data/vendor/bundle/ruby/3.1.0/gems/debug-1.6.3/CONTRIBUTING.md +561 -0
  659. data/vendor/bundle/ruby/3.1.0/gems/{debug-1.6.2 → debug-1.6.3}/Gemfile +0 -0
  660. data/vendor/bundle/ruby/3.1.0/gems/debug-1.6.3/LICENSE.txt +22 -0
  661. data/vendor/bundle/ruby/3.1.0/gems/debug-1.6.3/README.md +913 -0
  662. data/vendor/bundle/ruby/3.1.0/gems/{debug-1.6.2 → debug-1.6.3}/Rakefile +0 -0
  663. data/vendor/bundle/ruby/3.1.0/gems/{debug-1.6.2 → debug-1.6.3}/TODO.md +0 -0
  664. data/vendor/bundle/ruby/3.1.0/gems/{debug-1.6.2 → debug-1.6.3}/debug.gemspec +0 -0
  665. data/vendor/bundle/ruby/3.1.0/gems/debug-1.6.3/exe/rdbg +53 -0
  666. data/vendor/bundle/ruby/3.1.0/gems/debug-1.6.3/ext/debug/Makefile +268 -0
  667. data/vendor/bundle/ruby/3.1.0/gems/{debug-1.6.2 → debug-1.6.3}/ext/debug/debug.c +0 -0
  668. data/vendor/bundle/ruby/3.1.0/gems/debug-1.6.3/ext/debug/debug.o +0 -0
  669. data/vendor/bundle/ruby/3.1.0/gems/debug-1.6.3/ext/debug/debug.so +0 -0
  670. data/vendor/bundle/ruby/3.1.0/gems/debug-1.6.3/ext/debug/debug_version.h +1 -0
  671. data/vendor/bundle/ruby/3.1.0/gems/{debug-1.6.2 → debug-1.6.3}/ext/debug/extconf.rb +0 -0
  672. data/vendor/bundle/ruby/3.1.0/gems/{debug-1.6.2 → debug-1.6.3}/ext/debug/iseq_collector.c +0 -0
  673. data/vendor/bundle/ruby/3.1.0/gems/debug-1.6.3/ext/debug/iseq_collector.o +0 -0
  674. data/vendor/bundle/ruby/3.1.0/gems/{debug-1.6.2 → debug-1.6.3}/lib/debug/breakpoint.rb +0 -0
  675. data/vendor/bundle/ruby/3.1.0/gems/debug-1.6.3/lib/debug/client.rb +245 -0
  676. data/vendor/bundle/ruby/3.1.0/gems/{debug-1.6.2 → debug-1.6.3}/lib/debug/color.rb +0 -0
  677. data/vendor/bundle/ruby/3.1.0/gems/{debug-1.6.2 → debug-1.6.3}/lib/debug/config.rb +0 -0
  678. data/vendor/bundle/ruby/3.1.0/gems/{debug-1.6.2 → debug-1.6.3}/lib/debug/console.rb +0 -0
  679. data/vendor/bundle/ruby/3.1.0/gems/debug-1.6.3/lib/debug/debug.so +0 -0
  680. data/vendor/bundle/ruby/3.1.0/gems/{debug-1.6.2 → debug-1.6.3}/lib/debug/frame_info.rb +0 -0
  681. data/vendor/bundle/ruby/3.1.0/gems/{debug-1.6.2 → debug-1.6.3}/lib/debug/local.rb +0 -0
  682. data/vendor/bundle/ruby/3.1.0/gems/{debug-1.6.2 → debug-1.6.3}/lib/debug/open.rb +0 -0
  683. data/vendor/bundle/ruby/3.1.0/gems/{debug-1.6.2 → debug-1.6.3}/lib/debug/open_nonstop.rb +0 -0
  684. data/vendor/bundle/ruby/3.1.0/gems/{debug-1.6.2 → debug-1.6.3}/lib/debug/prelude.rb +0 -0
  685. data/vendor/bundle/ruby/3.1.0/gems/{debug-1.6.2 → debug-1.6.3}/lib/debug/server.rb +0 -0
  686. data/vendor/bundle/ruby/3.1.0/gems/debug-1.6.3/lib/debug/server_cdp.rb +1144 -0
  687. data/vendor/bundle/ruby/3.1.0/gems/debug-1.6.3/lib/debug/server_dap.rb +975 -0
  688. data/vendor/bundle/ruby/3.1.0/gems/debug-1.6.3/lib/debug/session.rb +2424 -0
  689. data/vendor/bundle/ruby/3.1.0/gems/{debug-1.6.2 → debug-1.6.3}/lib/debug/source_repository.rb +0 -0
  690. data/vendor/bundle/ruby/3.1.0/gems/{debug-1.6.2 → debug-1.6.3}/lib/debug/start.rb +0 -0
  691. data/vendor/bundle/ruby/3.1.0/gems/debug-1.6.3/lib/debug/thread_client.rb +1299 -0
  692. data/vendor/bundle/ruby/3.1.0/gems/{debug-1.6.2 → debug-1.6.3}/lib/debug/tracer.rb +0 -0
  693. data/vendor/bundle/ruby/3.1.0/gems/debug-1.6.3/lib/debug/version.rb +5 -0
  694. data/vendor/bundle/ruby/3.1.0/gems/{debug-1.6.2 → debug-1.6.3}/lib/debug.rb +0 -0
  695. data/vendor/bundle/ruby/3.1.0/gems/debug-1.6.3/misc/README.md.erb +604 -0
  696. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/Gemfile +14 -0
  697. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/LICENSE.txt +22 -0
  698. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/README.md +59 -0
  699. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/Rakefile +26 -0
  700. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/bin/console +6 -0
  701. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/bin/setup +6 -0
  702. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/doc/irb/irb-tools.rd.ja +184 -0
  703. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/doc/irb/irb.rd.ja +427 -0
  704. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/exe/irb +11 -0
  705. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/irb.gemspec +40 -0
  706. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/lib/irb/cmd/chws.rb +36 -0
  707. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/lib/irb/cmd/fork.rb +40 -0
  708. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/lib/irb/cmd/help.rb +49 -0
  709. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/lib/irb/cmd/info.rb +34 -0
  710. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/lib/irb/cmd/load.rb +68 -0
  711. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/lib/irb/cmd/ls.rb +103 -0
  712. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/lib/irb/cmd/measure.rb +45 -0
  713. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/lib/irb/cmd/nop.rb +47 -0
  714. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/lib/irb/cmd/pushws.rb +42 -0
  715. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/lib/irb/cmd/show_source.rb +95 -0
  716. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/lib/irb/cmd/subirb.rb +45 -0
  717. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/lib/irb/cmd/whereami.rb +22 -0
  718. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/lib/irb/color.rb +259 -0
  719. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/lib/irb/color_printer.rb +50 -0
  720. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/lib/irb/completion.rb +472 -0
  721. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/lib/irb/context.rb +522 -0
  722. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/lib/irb/easter-egg.rb +138 -0
  723. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/lib/irb/ext/change-ws.rb +45 -0
  724. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/lib/irb/ext/history.rb +155 -0
  725. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/lib/irb/ext/loader.rb +155 -0
  726. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/lib/irb/ext/multi-irb.rb +264 -0
  727. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/lib/irb/ext/save-history.rb +130 -0
  728. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/lib/irb/ext/tracer.rb +84 -0
  729. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/lib/irb/ext/use-loader.rb +75 -0
  730. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/lib/irb/ext/workspaces.rb +66 -0
  731. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/lib/irb/extend-command.rb +356 -0
  732. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/lib/irb/frame.rb +86 -0
  733. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/lib/irb/help.rb +36 -0
  734. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/lib/irb/init.rb +430 -0
  735. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/lib/irb/input-method.rb +482 -0
  736. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/lib/irb/inspector.rb +128 -0
  737. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/lib/irb/lc/error.rb +68 -0
  738. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/lib/irb/lc/help-message +51 -0
  739. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/lib/irb/lc/ja/encoding_aliases.rb +13 -0
  740. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/lib/irb/lc/ja/error.rb +69 -0
  741. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/lib/irb/lc/ja/help-message +45 -0
  742. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/lib/irb/locale.rb +191 -0
  743. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/lib/irb/magic-file.rb +38 -0
  744. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/lib/irb/notifier.rb +236 -0
  745. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/lib/irb/output-method.rb +92 -0
  746. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/lib/irb/ruby-lex.rb +849 -0
  747. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/lib/irb/ruby_logo.aa +37 -0
  748. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/lib/irb/src_encoding.rb +7 -0
  749. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/lib/irb/version.rb +17 -0
  750. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/lib/irb/workspace.rb +180 -0
  751. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/lib/irb/ws-for-case-2.rb +15 -0
  752. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/lib/irb/xmp.rb +170 -0
  753. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/lib/irb.rb +930 -0
  754. data/vendor/bundle/ruby/3.1.0/gems/irb-1.4.2/man/irb.1 +229 -0
  755. data/vendor/bundle/ruby/3.1.0/gems/json-2.6.2/ext/json/Makefile +3 -2
  756. data/vendor/bundle/ruby/3.1.0/gems/json-2.6.2/ext/json/ext/generator/Makefile +3 -2
  757. data/vendor/bundle/ruby/3.1.0/gems/json-2.6.2/ext/json/ext/parser/Makefile +3 -2
  758. data/vendor/bundle/ruby/3.1.0/gems/net-smtp-0.3.3/LICENSE.txt +22 -0
  759. data/vendor/bundle/ruby/3.1.0/gems/net-smtp-0.3.3/lib/net/smtp.rb +1212 -0
  760. data/vendor/bundle/ruby/3.1.0/gems/net-smtp-0.3.3/net-smtp.gemspec +33 -0
  761. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/Gemfile +0 -0
  762. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/LICENSE-DEPENDENCIES.md +0 -0
  763. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/LICENSE.md +0 -0
  764. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/README.md +0 -0
  765. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/bin/nokogiri +0 -0
  766. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.9-x86_64-linux/dependencies.yml +23 -0
  767. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/depend +0 -0
  768. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.9-x86_64-linux/ext/nokogiri/extconf.rb +1023 -0
  769. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/gumbo.c +0 -0
  770. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/html4_document.c +0 -0
  771. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/html4_element_description.c +0 -0
  772. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/html4_entity_lookup.c +0 -0
  773. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/html4_sax_parser_context.c +0 -0
  774. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/html4_sax_push_parser.c +0 -0
  775. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/include/libexslt/exslt.h +0 -0
  776. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.9-x86_64-linux/ext/nokogiri/include/libexslt/exsltconfig.h +70 -0
  777. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.9-x86_64-linux/ext/nokogiri/include/libexslt/exsltexports.h +63 -0
  778. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/include/libxml2/libxml/HTMLparser.h +0 -0
  779. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/include/libxml2/libxml/HTMLtree.h +0 -0
  780. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.9-x86_64-linux/ext/nokogiri/include/libxml2/libxml/SAX.h +204 -0
  781. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.9-x86_64-linux/ext/nokogiri/include/libxml2/libxml/SAX2.h +172 -0
  782. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/include/libxml2/libxml/c14n.h +0 -0
  783. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/include/libxml2/libxml/catalog.h +0 -0
  784. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/include/libxml2/libxml/chvalid.h +0 -0
  785. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/include/libxml2/libxml/debugXML.h +0 -0
  786. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.9-x86_64-linux/ext/nokogiri/include/libxml2/libxml/dict.h +81 -0
  787. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.9-x86_64-linux/ext/nokogiri/include/libxml2/libxml/encoding.h +232 -0
  788. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.9-x86_64-linux/ext/nokogiri/include/libxml2/libxml/entities.h +153 -0
  789. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.9-x86_64-linux/ext/nokogiri/include/libxml2/libxml/globals.h +499 -0
  790. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/include/libxml2/libxml/hash.h +0 -0
  791. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/include/libxml2/libxml/list.h +0 -0
  792. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.9-x86_64-linux/ext/nokogiri/include/libxml2/libxml/nanoftp.h +186 -0
  793. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/include/libxml2/libxml/nanohttp.h +0 -0
  794. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.9-x86_64-linux/ext/nokogiri/include/libxml2/libxml/parser.h +1244 -0
  795. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.9-x86_64-linux/ext/nokogiri/include/libxml2/libxml/parserInternals.h +656 -0
  796. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/include/libxml2/libxml/pattern.h +0 -0
  797. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.9-x86_64-linux/ext/nokogiri/include/libxml2/libxml/relaxng.h +218 -0
  798. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/include/libxml2/libxml/schemasInternals.h +0 -0
  799. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.9-x86_64-linux/ext/nokogiri/include/libxml2/libxml/schematron.h +142 -0
  800. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.9-x86_64-linux/ext/nokogiri/include/libxml2/libxml/threads.h +91 -0
  801. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.9-x86_64-linux/ext/nokogiri/include/libxml2/libxml/tree.h +1312 -0
  802. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/include/libxml2/libxml/uri.h +0 -0
  803. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.9-x86_64-linux/ext/nokogiri/include/libxml2/libxml/valid.h +463 -0
  804. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/include/libxml2/libxml/xinclude.h +0 -0
  805. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/include/libxml2/libxml/xlink.h +0 -0
  806. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/include/libxml2/libxml/xmlIO.h +0 -0
  807. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/include/libxml2/libxml/xmlautomata.h +0 -0
  808. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.9-x86_64-linux/ext/nokogiri/include/libxml2/libxml/xmlerror.h +947 -0
  809. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/include/libxml2/libxml/xmlexports.h +0 -0
  810. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.9-x86_64-linux/ext/nokogiri/include/libxml2/libxml/xmlmemory.h +226 -0
  811. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/include/libxml2/libxml/xmlmodule.h +0 -0
  812. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/include/libxml2/libxml/xmlreader.h +0 -0
  813. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/include/libxml2/libxml/xmlregexp.h +0 -0
  814. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/include/libxml2/libxml/xmlsave.h +0 -0
  815. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/include/libxml2/libxml/xmlschemas.h +0 -0
  816. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.9-x86_64-linux/ext/nokogiri/include/libxml2/libxml/xmlschemastypes.h +152 -0
  817. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/include/libxml2/libxml/xmlstring.h +0 -0
  818. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/include/libxml2/libxml/xmlunicode.h +0 -0
  819. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.9-x86_64-linux/ext/nokogiri/include/libxml2/libxml/xmlversion.h +503 -0
  820. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/include/libxml2/libxml/xmlwriter.h +0 -0
  821. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.9-x86_64-linux/ext/nokogiri/include/libxml2/libxml/xpath.h +575 -0
  822. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/include/libxml2/libxml/xpathInternals.h +0 -0
  823. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.9-x86_64-linux/ext/nokogiri/include/libxml2/libxml/xpointer.h +137 -0
  824. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/include/libxslt/attributes.h +0 -0
  825. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/include/libxslt/documents.h +0 -0
  826. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/include/libxslt/extensions.h +0 -0
  827. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/include/libxslt/extra.h +0 -0
  828. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/include/libxslt/functions.h +0 -0
  829. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/include/libxslt/imports.h +0 -0
  830. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/include/libxslt/keys.h +0 -0
  831. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/include/libxslt/namespaces.h +0 -0
  832. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/include/libxslt/numbersInternals.h +0 -0
  833. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/include/libxslt/pattern.h +0 -0
  834. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/include/libxslt/preproc.h +0 -0
  835. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/include/libxslt/security.h +0 -0
  836. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/include/libxslt/templates.h +0 -0
  837. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/include/libxslt/transform.h +0 -0
  838. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/include/libxslt/variables.h +0 -0
  839. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/include/libxslt/xslt.h +0 -0
  840. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/include/libxslt/xsltInternals.h +0 -0
  841. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.9-x86_64-linux/ext/nokogiri/include/libxslt/xsltconfig.h +179 -0
  842. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.9-x86_64-linux/ext/nokogiri/include/libxslt/xsltexports.h +64 -0
  843. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.9-x86_64-linux/ext/nokogiri/include/libxslt/xsltlocale.h +76 -0
  844. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.9-x86_64-linux/ext/nokogiri/include/libxslt/xsltutils.h +310 -0
  845. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/libxml2_backwards_compat.c +0 -0
  846. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/nokogiri.c +0 -0
  847. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.9-x86_64-linux/ext/nokogiri/nokogiri.h +232 -0
  848. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/test_global_handlers.c +0 -0
  849. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/xml_attr.c +0 -0
  850. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/xml_attribute_decl.c +0 -0
  851. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/xml_cdata.c +0 -0
  852. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/xml_comment.c +0 -0
  853. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.9-x86_64-linux/ext/nokogiri/xml_document.c +684 -0
  854. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/xml_document_fragment.c +0 -0
  855. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/xml_dtd.c +0 -0
  856. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/xml_element_content.c +0 -0
  857. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/xml_element_decl.c +0 -0
  858. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/xml_encoding_handler.c +0 -0
  859. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/xml_entity_decl.c +0 -0
  860. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/xml_entity_reference.c +0 -0
  861. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.9-x86_64-linux/ext/nokogiri/xml_namespace.c +156 -0
  862. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.9-x86_64-linux/ext/nokogiri/xml_node.c +2165 -0
  863. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/xml_node_set.c +0 -0
  864. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/xml_processing_instruction.c +0 -0
  865. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/xml_reader.c +0 -0
  866. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/xml_relax_ng.c +0 -0
  867. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/xml_sax_parser.c +0 -0
  868. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/xml_sax_parser_context.c +0 -0
  869. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/xml_sax_push_parser.c +0 -0
  870. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/xml_schema.c +0 -0
  871. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/xml_syntax_error.c +0 -0
  872. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/xml_text.c +0 -0
  873. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.9-x86_64-linux/ext/nokogiri/xml_xpath_context.c +409 -0
  874. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/ext/nokogiri/xslt_stylesheet.c +0 -0
  875. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/gumbo-parser/CHANGES.md +0 -0
  876. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/gumbo-parser/Makefile +0 -0
  877. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/gumbo-parser/THANKS +0 -0
  878. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.9-x86_64-linux/lib/nokogiri/2.6/nokogiri.so +0 -0
  879. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.9-x86_64-linux/lib/nokogiri/2.7/nokogiri.so +0 -0
  880. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.9-x86_64-linux/lib/nokogiri/3.0/nokogiri.so +0 -0
  881. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.9-x86_64-linux/lib/nokogiri/3.1/nokogiri.so +0 -0
  882. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/class_resolver.rb +0 -0
  883. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/css/node.rb +0 -0
  884. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/css/parser.rb +0 -0
  885. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/css/parser.y +0 -0
  886. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/css/parser_extras.rb +0 -0
  887. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/css/syntax_error.rb +0 -0
  888. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/css/tokenizer.rb +0 -0
  889. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/css/tokenizer.rex +0 -0
  890. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/css/xpath_visitor.rb +0 -0
  891. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/css.rb +0 -0
  892. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/decorators/slop.rb +0 -0
  893. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/extension.rb +0 -0
  894. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/gumbo.rb +0 -0
  895. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/html.rb +0 -0
  896. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/html4/builder.rb +0 -0
  897. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/html4/document.rb +0 -0
  898. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/html4/document_fragment.rb +0 -0
  899. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/html4/element_description.rb +0 -0
  900. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/html4/element_description_defaults.rb +0 -0
  901. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/html4/entity_lookup.rb +0 -0
  902. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/html4/sax/parser.rb +0 -0
  903. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/html4/sax/parser_context.rb +0 -0
  904. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/html4/sax/push_parser.rb +0 -0
  905. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/html4.rb +0 -0
  906. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/html5/document.rb +0 -0
  907. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/html5/document_fragment.rb +0 -0
  908. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/html5/node.rb +0 -0
  909. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/html5.rb +0 -0
  910. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/jruby/dependencies.rb +0 -0
  911. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/syntax_error.rb +0 -0
  912. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.9-x86_64-linux/lib/nokogiri/version/constant.rb +6 -0
  913. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/version/info.rb +0 -0
  914. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/version.rb +0 -0
  915. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/xml/attr.rb +0 -0
  916. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/xml/attribute_decl.rb +0 -0
  917. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/xml/builder.rb +0 -0
  918. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/xml/cdata.rb +0 -0
  919. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/xml/character_data.rb +0 -0
  920. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/xml/document.rb +0 -0
  921. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/xml/document_fragment.rb +0 -0
  922. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/xml/dtd.rb +0 -0
  923. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/xml/element_content.rb +0 -0
  924. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/xml/element_decl.rb +0 -0
  925. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/xml/entity_decl.rb +0 -0
  926. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/xml/entity_reference.rb +0 -0
  927. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/xml/namespace.rb +0 -0
  928. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/xml/node/save_options.rb +0 -0
  929. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/xml/node.rb +0 -0
  930. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/xml/node_set.rb +0 -0
  931. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/xml/notation.rb +0 -0
  932. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/xml/parse_options.rb +0 -0
  933. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/xml/pp/character_data.rb +0 -0
  934. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/xml/pp/node.rb +0 -0
  935. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/xml/pp.rb +0 -0
  936. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/xml/processing_instruction.rb +0 -0
  937. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/xml/reader.rb +0 -0
  938. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/xml/relax_ng.rb +0 -0
  939. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/xml/sax/document.rb +0 -0
  940. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/xml/sax/parser.rb +0 -0
  941. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/xml/sax/parser_context.rb +0 -0
  942. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/xml/sax/push_parser.rb +0 -0
  943. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/xml/sax.rb +0 -0
  944. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/xml/schema.rb +0 -0
  945. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/xml/searchable.rb +0 -0
  946. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/xml/syntax_error.rb +0 -0
  947. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/xml/text.rb +0 -0
  948. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/xml/xpath/syntax_error.rb +0 -0
  949. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/xml/xpath.rb +0 -0
  950. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/xml/xpath_context.rb +0 -0
  951. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/xml.rb +0 -0
  952. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/xslt/stylesheet.rb +0 -0
  953. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri/xslt.rb +0 -0
  954. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/nokogiri.rb +0 -0
  955. data/vendor/bundle/ruby/3.1.0/gems/{nokogiri-1.13.8-x86_64-linux → nokogiri-1.13.9-x86_64-linux}/lib/xsd/xmlparser/nokogiri.rb +0 -0
  956. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/CONTRIBUTING.md +0 -0
  957. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/LICENSE.md +0 -0
  958. data/vendor/bundle/ruby/3.1.0/gems/octokit-4.25.1/README.md +820 -0
  959. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/Rakefile +0 -0
  960. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/lib/ext/sawyer/relation.rb +0 -0
  961. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/lib/octokit/arguments.rb +0 -0
  962. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/lib/octokit/authentication.rb +0 -0
  963. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/lib/octokit/client/actions_secrets.rb +0 -0
  964. data/vendor/bundle/ruby/3.1.0/gems/octokit-4.25.1/lib/octokit/client/actions_workflow_runs.rb +107 -0
  965. data/vendor/bundle/ruby/3.1.0/gems/octokit-4.25.1/lib/octokit/client/actions_workflows.rb +44 -0
  966. data/vendor/bundle/ruby/3.1.0/gems/octokit-4.25.1/lib/octokit/client/apps.rb +222 -0
  967. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/lib/octokit/client/authorizations.rb +0 -0
  968. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/lib/octokit/client/checks.rb +0 -0
  969. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/lib/octokit/client/commit_branches.rb +0 -0
  970. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/lib/octokit/client/commit_comments.rb +0 -0
  971. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/lib/octokit/client/commit_pulls.rb +0 -0
  972. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/lib/octokit/client/commits.rb +0 -0
  973. data/vendor/bundle/ruby/3.1.0/gems/octokit-4.25.1/lib/octokit/client/community_profile.rb +22 -0
  974. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/lib/octokit/client/contents.rb +0 -0
  975. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/lib/octokit/client/deployments.rb +0 -0
  976. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/lib/octokit/client/downloads.rb +0 -0
  977. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/lib/octokit/client/emojis.rb +0 -0
  978. data/vendor/bundle/ruby/3.1.0/gems/octokit-4.25.1/lib/octokit/client/events.rb +152 -0
  979. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/lib/octokit/client/feeds.rb +0 -0
  980. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/lib/octokit/client/gists.rb +0 -0
  981. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/lib/octokit/client/gitignore.rb +0 -0
  982. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/lib/octokit/client/hooks.rb +0 -0
  983. data/vendor/bundle/ruby/3.1.0/gems/octokit-4.25.1/lib/octokit/client/issues.rb +368 -0
  984. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/lib/octokit/client/labels.rb +0 -0
  985. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/lib/octokit/client/legacy_search.rb +0 -0
  986. data/vendor/bundle/ruby/3.1.0/gems/octokit-4.25.1/lib/octokit/client/licenses.rb +45 -0
  987. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/lib/octokit/client/markdown.rb +0 -0
  988. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/lib/octokit/client/marketplace.rb +0 -0
  989. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/lib/octokit/client/meta.rb +0 -0
  990. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/lib/octokit/client/milestones.rb +0 -0
  991. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/lib/octokit/client/notifications.rb +0 -0
  992. data/vendor/bundle/ruby/3.1.0/gems/octokit-4.25.1/lib/octokit/client/oauth_applications.rb +120 -0
  993. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/lib/octokit/client/objects.rb +0 -0
  994. data/vendor/bundle/ruby/3.1.0/gems/octokit-4.25.1/lib/octokit/client/organizations.rb +820 -0
  995. data/vendor/bundle/ruby/3.1.0/gems/octokit-4.25.1/lib/octokit/client/pages.rb +63 -0
  996. data/vendor/bundle/ruby/3.1.0/gems/octokit-4.25.1/lib/octokit/client/projects.rb +313 -0
  997. data/vendor/bundle/ruby/3.1.0/gems/octokit-4.25.1/lib/octokit/client/pub_sub_hubbub.rb +111 -0
  998. data/vendor/bundle/ruby/3.1.0/gems/octokit-4.25.1/lib/octokit/client/pull_requests.rb +302 -0
  999. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/lib/octokit/client/rate_limit.rb +0 -0
  1000. data/vendor/bundle/ruby/3.1.0/gems/octokit-4.25.1/lib/octokit/client/reactions.rb +158 -0
  1001. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/lib/octokit/client/refs.rb +0 -0
  1002. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/lib/octokit/client/releases.rb +0 -0
  1003. data/vendor/bundle/ruby/3.1.0/gems/octokit-4.25.1/lib/octokit/client/repositories.rb +799 -0
  1004. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/lib/octokit/client/repository_invitations.rb +0 -0
  1005. data/vendor/bundle/ruby/3.1.0/gems/octokit-4.25.1/lib/octokit/client/reviews.rb +227 -0
  1006. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/lib/octokit/client/say.rb +0 -0
  1007. data/vendor/bundle/ruby/3.1.0/gems/octokit-4.25.1/lib/octokit/client/search.rb +91 -0
  1008. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/lib/octokit/client/service_status.rb +0 -0
  1009. data/vendor/bundle/ruby/3.1.0/gems/octokit-4.25.1/lib/octokit/client/source_import.rb +161 -0
  1010. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/lib/octokit/client/stats.rb +0 -0
  1011. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/lib/octokit/client/statuses.rb +0 -0
  1012. data/vendor/bundle/ruby/3.1.0/gems/octokit-4.25.1/lib/octokit/client/traffic.rb +68 -0
  1013. data/vendor/bundle/ruby/3.1.0/gems/octokit-4.25.1/lib/octokit/client/users.rb +442 -0
  1014. data/vendor/bundle/ruby/3.1.0/gems/octokit-4.25.1/lib/octokit/client.rb +268 -0
  1015. data/vendor/bundle/ruby/3.1.0/gems/octokit-4.25.1/lib/octokit/configurable.rb +157 -0
  1016. data/vendor/bundle/ruby/3.1.0/gems/octokit-4.25.1/lib/octokit/connection.rb +210 -0
  1017. data/vendor/bundle/ruby/3.1.0/gems/octokit-4.25.1/lib/octokit/default.rb +187 -0
  1018. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/lib/octokit/enterprise_admin_client/admin_stats.rb +0 -0
  1019. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/lib/octokit/enterprise_admin_client/license.rb +0 -0
  1020. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/lib/octokit/enterprise_admin_client/orgs.rb +0 -0
  1021. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/lib/octokit/enterprise_admin_client/search_indexing.rb +0 -0
  1022. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/lib/octokit/enterprise_admin_client/users.rb +0 -0
  1023. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/lib/octokit/enterprise_admin_client.rb +0 -0
  1024. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/lib/octokit/enterprise_management_console_client/management_console.rb +0 -0
  1025. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/lib/octokit/enterprise_management_console_client.rb +0 -0
  1026. data/vendor/bundle/ruby/3.1.0/gems/octokit-4.25.1/lib/octokit/error.rb +356 -0
  1027. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/lib/octokit/gist.rb +0 -0
  1028. data/vendor/bundle/ruby/3.1.0/gems/octokit-4.25.1/lib/octokit/middleware/follow_redirects.rb +135 -0
  1029. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/lib/octokit/organization.rb +0 -0
  1030. data/vendor/bundle/ruby/3.1.0/gems/octokit-4.25.1/lib/octokit/preview.rb +46 -0
  1031. data/vendor/bundle/ruby/3.1.0/gems/octokit-4.25.1/lib/octokit/rate_limit.rb +33 -0
  1032. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/lib/octokit/repo_arguments.rb +0 -0
  1033. data/vendor/bundle/ruby/3.1.0/gems/octokit-4.25.1/lib/octokit/repository.rb +94 -0
  1034. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/lib/octokit/response/base_middleware.rb +0 -0
  1035. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/lib/octokit/response/feed_parser.rb +0 -0
  1036. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/lib/octokit/response/raise_error.rb +0 -0
  1037. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/lib/octokit/user.rb +0 -0
  1038. data/vendor/bundle/ruby/3.1.0/gems/octokit-4.25.1/lib/octokit/version.rb +19 -0
  1039. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/lib/octokit/warnable.rb +0 -0
  1040. data/vendor/bundle/ruby/3.1.0/gems/{octokit-5.3.0 → octokit-4.25.1}/lib/octokit.rb +0 -0
  1041. data/vendor/bundle/ruby/3.1.0/gems/octokit-4.25.1/octokit.gemspec +25 -0
  1042. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/CHANGELOG.md +815 -0
  1043. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/CONTRIBUTING.md +142 -0
  1044. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/MIT-LICENSE +20 -0
  1045. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/README.md +293 -0
  1046. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/SPEC.rdoc +340 -0
  1047. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/auth/abstract/handler.rb +41 -0
  1048. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/auth/abstract/request.rb +49 -0
  1049. data/vendor/bundle/ruby/3.1.0/gems/{rack-2.2.4 → rack-3.0.1}/lib/rack/auth/basic.rb +0 -0
  1050. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/auth/digest/md5.rb +1 -0
  1051. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/auth/digest/nonce.rb +1 -0
  1052. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/auth/digest/params.rb +1 -0
  1053. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/auth/digest/request.rb +1 -0
  1054. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/auth/digest.rb +256 -0
  1055. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/body_proxy.rb +47 -0
  1056. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/builder.rb +275 -0
  1057. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/cascade.rb +70 -0
  1058. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/chunked.rb +120 -0
  1059. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/common_logger.rb +88 -0
  1060. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/conditional_get.rb +86 -0
  1061. data/vendor/bundle/ruby/3.1.0/gems/{rack-2.2.4 → rack-3.0.1}/lib/rack/config.rb +0 -0
  1062. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/constants.rb +63 -0
  1063. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/content_length.rb +34 -0
  1064. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/content_type.rb +33 -0
  1065. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/deflater.rb +158 -0
  1066. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/directory.rb +205 -0
  1067. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/etag.rb +68 -0
  1068. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/events.rb +157 -0
  1069. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/file.rb +9 -0
  1070. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/files.rb +216 -0
  1071. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/head.rb +26 -0
  1072. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/headers.rb +154 -0
  1073. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/lint.rb +907 -0
  1074. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/lock.rb +29 -0
  1075. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/logger.rb +22 -0
  1076. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/media_type.rb +43 -0
  1077. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/method_override.rb +56 -0
  1078. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/mime.rb +693 -0
  1079. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/mock.rb +3 -0
  1080. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/mock_request.rb +166 -0
  1081. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/mock_response.rb +126 -0
  1082. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/multipart/generator.rb +99 -0
  1083. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/multipart/parser.rb +422 -0
  1084. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/multipart/uploaded_file.rb +45 -0
  1085. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/multipart.rb +44 -0
  1086. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/null_logger.rb +48 -0
  1087. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/query_parser.rb +253 -0
  1088. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/recursive.rb +66 -0
  1089. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/reloader.rb +112 -0
  1090. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/request.rb +757 -0
  1091. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/response.rb +388 -0
  1092. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/rewindable_input.rb +113 -0
  1093. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/runtime.rb +35 -0
  1094. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/sendfile.rb +167 -0
  1095. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/show_exceptions.rb +403 -0
  1096. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/show_status.rb +123 -0
  1097. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/static.rb +187 -0
  1098. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/tempfile_reaper.rb +33 -0
  1099. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/urlmap.rb +99 -0
  1100. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/utils.rb +642 -0
  1101. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack/version.rb +34 -0
  1102. data/vendor/bundle/ruby/3.1.0/gems/rack-3.0.1/lib/rack.rb +70 -0
  1103. data/vendor/bundle/ruby/3.1.0/gems/rackup-0.2.3/LICENSE.md +22 -0
  1104. data/vendor/bundle/ruby/3.1.0/gems/rackup-0.2.3/bin/rackup +5 -0
  1105. data/vendor/bundle/ruby/3.1.0/gems/rackup-0.2.3/lib/rack/handler.rb +7 -0
  1106. data/vendor/bundle/ruby/3.1.0/gems/rackup-0.2.3/lib/rack/server.rb +7 -0
  1107. data/vendor/bundle/ruby/3.1.0/gems/rackup-0.2.3/lib/rackup/handler/cgi.rb +58 -0
  1108. data/vendor/bundle/ruby/3.1.0/gems/rackup-0.2.3/lib/rackup/handler/webrick.rb +138 -0
  1109. data/vendor/bundle/ruby/3.1.0/gems/rackup-0.2.3/lib/rackup/handler.rb +110 -0
  1110. data/vendor/bundle/ruby/3.1.0/gems/rackup-0.2.3/lib/rackup/lobster.rb +78 -0
  1111. data/vendor/bundle/ruby/3.1.0/gems/rackup-0.2.3/lib/rackup/server.rb +459 -0
  1112. data/vendor/bundle/ruby/3.1.0/gems/rackup-0.2.3/lib/rackup/version.rb +25 -0
  1113. data/vendor/bundle/ruby/3.1.0/gems/rackup-0.2.3/lib/rackup.rb +8 -0
  1114. data/vendor/bundle/ruby/3.1.0/gems/redcarpet-3.5.1/ext/redcarpet/Makefile +3 -2
  1115. data/vendor/bundle/ruby/3.1.0/gems/{rspec-3.11.0 → rspec-3.12.0}/LICENSE.md +0 -0
  1116. data/vendor/bundle/ruby/3.1.0/gems/{rspec-3.11.0 → rspec-3.12.0}/README.md +0 -0
  1117. data/vendor/bundle/ruby/3.1.0/gems/rspec-3.12.0/lib/rspec/version.rb +5 -0
  1118. data/vendor/bundle/ruby/3.1.0/gems/{rspec-3.11.0 → rspec-3.12.0}/lib/rspec.rb +0 -0
  1119. data/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.12.0/Changelog.md +2360 -0
  1120. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/LICENSE.md +0 -0
  1121. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/README.md +0 -0
  1122. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/exe/rspec +0 -0
  1123. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/autorun.rb +0 -0
  1124. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/backtrace_formatter.rb +0 -0
  1125. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/bisect/coordinator.rb +0 -0
  1126. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/bisect/example_minimizer.rb +0 -0
  1127. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/bisect/fork_runner.rb +0 -0
  1128. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/bisect/server.rb +0 -0
  1129. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/bisect/shell_command.rb +0 -0
  1130. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/bisect/shell_runner.rb +0 -0
  1131. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/bisect/utilities.rb +0 -0
  1132. data/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.12.0/lib/rspec/core/configuration.rb +2385 -0
  1133. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/configuration_options.rb +0 -0
  1134. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/did_you_mean.rb +0 -0
  1135. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/drb.rb +0 -0
  1136. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/dsl.rb +0 -0
  1137. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/example.rb +0 -0
  1138. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/example_group.rb +0 -0
  1139. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/example_status_persister.rb +0 -0
  1140. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/filter_manager.rb +0 -0
  1141. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/flat_map.rb +0 -0
  1142. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/formatters/base_bisect_formatter.rb +0 -0
  1143. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/formatters/base_formatter.rb +0 -0
  1144. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/formatters/base_text_formatter.rb +0 -0
  1145. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/formatters/bisect_drb_formatter.rb +0 -0
  1146. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/formatters/bisect_progress_formatter.rb +0 -0
  1147. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/formatters/console_codes.rb +0 -0
  1148. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/formatters/deprecation_formatter.rb +0 -0
  1149. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/formatters/documentation_formatter.rb +0 -0
  1150. data/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.12.0/lib/rspec/core/formatters/exception_presenter.rb +525 -0
  1151. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/formatters/failure_list_formatter.rb +0 -0
  1152. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/formatters/fallback_message_formatter.rb +0 -0
  1153. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/formatters/helpers.rb +0 -0
  1154. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/formatters/html_formatter.rb +0 -0
  1155. data/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.12.0/lib/rspec/core/formatters/html_printer.rb +412 -0
  1156. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/formatters/html_snippet_extractor.rb +0 -0
  1157. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/formatters/json_formatter.rb +0 -0
  1158. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/formatters/profile_formatter.rb +0 -0
  1159. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/formatters/progress_formatter.rb +0 -0
  1160. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/formatters/protocol.rb +0 -0
  1161. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/formatters/snippet_extractor.rb +0 -0
  1162. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/formatters/syntax_highlighter.rb +0 -0
  1163. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/formatters.rb +0 -0
  1164. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/hooks.rb +0 -0
  1165. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/invocations.rb +0 -0
  1166. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/memoized_helpers.rb +0 -0
  1167. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/metadata.rb +0 -0
  1168. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/metadata_filter.rb +0 -0
  1169. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/minitest_assertions_adapter.rb +0 -0
  1170. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/mocking_adapters/flexmock.rb +0 -0
  1171. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/mocking_adapters/mocha.rb +0 -0
  1172. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/mocking_adapters/null.rb +0 -0
  1173. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/mocking_adapters/rr.rb +0 -0
  1174. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/mocking_adapters/rspec.rb +0 -0
  1175. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/notifications.rb +0 -0
  1176. data/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.12.0/lib/rspec/core/option_parser.rb +323 -0
  1177. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/ordering.rb +0 -0
  1178. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/output_wrapper.rb +0 -0
  1179. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/pending.rb +0 -0
  1180. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/profiler.rb +0 -0
  1181. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/project_initializer/spec/spec_helper.rb +0 -0
  1182. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/project_initializer.rb +0 -0
  1183. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/rake_task.rb +0 -0
  1184. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/reporter.rb +0 -0
  1185. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/ruby_project.rb +0 -0
  1186. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/runner.rb +0 -0
  1187. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/sandbox.rb +0 -0
  1188. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/set.rb +0 -0
  1189. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/shared_context.rb +0 -0
  1190. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/shared_example_group.rb +0 -0
  1191. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/shell_escape.rb +0 -0
  1192. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/test_unit_assertions_adapter.rb +0 -0
  1193. data/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.12.0/lib/rspec/core/version.rb +9 -0
  1194. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/warnings.rb +0 -0
  1195. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/world.rb +0 -0
  1196. data/vendor/bundle/ruby/3.1.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core.rb +0 -0
  1197. data/vendor/bundle/ruby/3.1.0/gems/rspec-expectations-3.12.0/Changelog.md +1285 -0
  1198. data/vendor/bundle/ruby/3.1.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/LICENSE.md +0 -0
  1199. data/vendor/bundle/ruby/3.1.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/README.md +0 -0
  1200. data/vendor/bundle/ruby/3.1.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/expectations/block_snippet_extractor.rb +0 -0
  1201. data/vendor/bundle/ruby/3.1.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/expectations/configuration.rb +0 -0
  1202. data/vendor/bundle/ruby/3.1.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/expectations/expectation_target.rb +0 -0
  1203. data/vendor/bundle/ruby/3.1.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/expectations/fail_with.rb +0 -0
  1204. data/vendor/bundle/ruby/3.1.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/expectations/failure_aggregator.rb +0 -0
  1205. data/vendor/bundle/ruby/3.1.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/expectations/handler.rb +0 -0
  1206. data/vendor/bundle/ruby/3.1.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/expectations/minitest_integration.rb +0 -0
  1207. data/vendor/bundle/ruby/3.1.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/expectations/syntax.rb +0 -0
  1208. data/vendor/bundle/ruby/3.1.0/gems/rspec-expectations-3.12.0/lib/rspec/expectations/version.rb +8 -0
  1209. data/vendor/bundle/ruby/3.1.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/expectations.rb +0 -0
  1210. data/vendor/bundle/ruby/3.1.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/aliased_matcher.rb +0 -0
  1211. data/vendor/bundle/ruby/3.1.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/built_in/all.rb +0 -0
  1212. data/vendor/bundle/ruby/3.1.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/built_in/base_matcher.rb +0 -0
  1213. data/vendor/bundle/ruby/3.1.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/built_in/be.rb +0 -0
  1214. data/vendor/bundle/ruby/3.1.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/built_in/be_between.rb +0 -0
  1215. data/vendor/bundle/ruby/3.1.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/built_in/be_instance_of.rb +0 -0
  1216. data/vendor/bundle/ruby/3.1.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/built_in/be_kind_of.rb +0 -0
  1217. data/vendor/bundle/ruby/3.1.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/built_in/be_within.rb +0 -0
  1218. data/vendor/bundle/ruby/3.1.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/built_in/change.rb +0 -0
  1219. data/vendor/bundle/ruby/3.1.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/built_in/compound.rb +0 -0
  1220. data/vendor/bundle/ruby/3.1.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers/built_in/contain_exactly.rb +310 -0
  1221. data/vendor/bundle/ruby/3.1.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers/built_in/count_expectation.rb +169 -0
  1222. data/vendor/bundle/ruby/3.1.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/built_in/cover.rb +0 -0
  1223. data/vendor/bundle/ruby/3.1.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/built_in/eq.rb +0 -0
  1224. data/vendor/bundle/ruby/3.1.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/built_in/eql.rb +0 -0
  1225. data/vendor/bundle/ruby/3.1.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/built_in/equal.rb +0 -0
  1226. data/vendor/bundle/ruby/3.1.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers/built_in/exist.rb +90 -0
  1227. data/vendor/bundle/ruby/3.1.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/built_in/has.rb +0 -0
  1228. data/vendor/bundle/ruby/3.1.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/built_in/have_attributes.rb +0 -0
  1229. data/vendor/bundle/ruby/3.1.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/built_in/include.rb +0 -0
  1230. data/vendor/bundle/ruby/3.1.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/built_in/match.rb +0 -0
  1231. data/vendor/bundle/ruby/3.1.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/built_in/operators.rb +0 -0
  1232. data/vendor/bundle/ruby/3.1.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/built_in/output.rb +0 -0
  1233. data/vendor/bundle/ruby/3.1.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers/built_in/raise_error.rb +271 -0
  1234. data/vendor/bundle/ruby/3.1.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/built_in/respond_to.rb +0 -0
  1235. data/vendor/bundle/ruby/3.1.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/built_in/satisfy.rb +0 -0
  1236. data/vendor/bundle/ruby/3.1.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/built_in/start_or_end_with.rb +0 -0
  1237. data/vendor/bundle/ruby/3.1.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers/built_in/throw_symbol.rb +138 -0
  1238. data/vendor/bundle/ruby/3.1.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/built_in/yield.rb +0 -0
  1239. data/vendor/bundle/ruby/3.1.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/built_in.rb +0 -0
  1240. data/vendor/bundle/ruby/3.1.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/composable.rb +0 -0
  1241. data/vendor/bundle/ruby/3.1.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers/dsl.rb +544 -0
  1242. data/vendor/bundle/ruby/3.1.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/english_phrasing.rb +0 -0
  1243. data/vendor/bundle/ruby/3.1.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/expecteds_for_multiple_diffs.rb +0 -0
  1244. data/vendor/bundle/ruby/3.1.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/fail_matchers.rb +0 -0
  1245. data/vendor/bundle/ruby/3.1.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/generated_descriptions.rb +0 -0
  1246. data/vendor/bundle/ruby/3.1.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/matcher_delegator.rb +0 -0
  1247. data/vendor/bundle/ruby/3.1.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/matcher_protocol.rb +0 -0
  1248. data/vendor/bundle/ruby/3.1.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers.rb +1044 -0
  1249. data/vendor/bundle/ruby/3.1.0/gems/rspec-mocks-3.12.0/Changelog.md +1212 -0
  1250. data/vendor/bundle/ruby/3.1.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.0}/LICENSE.md +0 -0
  1251. data/vendor/bundle/ruby/3.1.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.0}/README.md +0 -0
  1252. data/vendor/bundle/ruby/3.1.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.0}/lib/rspec/mocks/any_instance/chain.rb +0 -0
  1253. data/vendor/bundle/ruby/3.1.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.0}/lib/rspec/mocks/any_instance/error_generator.rb +0 -0
  1254. data/vendor/bundle/ruby/3.1.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.0}/lib/rspec/mocks/any_instance/expect_chain_chain.rb +0 -0
  1255. data/vendor/bundle/ruby/3.1.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.0}/lib/rspec/mocks/any_instance/expectation_chain.rb +0 -0
  1256. data/vendor/bundle/ruby/3.1.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.0}/lib/rspec/mocks/any_instance/message_chains.rb +0 -0
  1257. data/vendor/bundle/ruby/3.1.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.0}/lib/rspec/mocks/any_instance/proxy.rb +0 -0
  1258. data/vendor/bundle/ruby/3.1.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.0}/lib/rspec/mocks/any_instance/recorder.rb +0 -0
  1259. data/vendor/bundle/ruby/3.1.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.0}/lib/rspec/mocks/any_instance/stub_chain.rb +0 -0
  1260. data/vendor/bundle/ruby/3.1.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.0}/lib/rspec/mocks/any_instance/stub_chain_chain.rb +0 -0
  1261. data/vendor/bundle/ruby/3.1.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.0}/lib/rspec/mocks/any_instance.rb +0 -0
  1262. data/vendor/bundle/ruby/3.1.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.0}/lib/rspec/mocks/argument_list_matcher.rb +0 -0
  1263. data/vendor/bundle/ruby/3.1.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.0}/lib/rspec/mocks/argument_matchers.rb +0 -0
  1264. data/vendor/bundle/ruby/3.1.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.0}/lib/rspec/mocks/configuration.rb +0 -0
  1265. data/vendor/bundle/ruby/3.1.0/gems/rspec-mocks-3.12.0/lib/rspec/mocks/error_generator.rb +380 -0
  1266. data/vendor/bundle/ruby/3.1.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.0}/lib/rspec/mocks/example_methods.rb +0 -0
  1267. data/vendor/bundle/ruby/3.1.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.0}/lib/rspec/mocks/instance_method_stasher.rb +0 -0
  1268. data/vendor/bundle/ruby/3.1.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.0}/lib/rspec/mocks/marshal_extension.rb +0 -0
  1269. data/vendor/bundle/ruby/3.1.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.0}/lib/rspec/mocks/matchers/expectation_customization.rb +0 -0
  1270. data/vendor/bundle/ruby/3.1.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.0}/lib/rspec/mocks/matchers/have_received.rb +0 -0
  1271. data/vendor/bundle/ruby/3.1.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.0}/lib/rspec/mocks/matchers/receive.rb +0 -0
  1272. data/vendor/bundle/ruby/3.1.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.0}/lib/rspec/mocks/matchers/receive_message_chain.rb +0 -0
  1273. data/vendor/bundle/ruby/3.1.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.0}/lib/rspec/mocks/matchers/receive_messages.rb +0 -0
  1274. data/vendor/bundle/ruby/3.1.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.0}/lib/rspec/mocks/message_chain.rb +0 -0
  1275. data/vendor/bundle/ruby/3.1.0/gems/rspec-mocks-3.12.0/lib/rspec/mocks/message_expectation.rb +820 -0
  1276. data/vendor/bundle/ruby/3.1.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.0}/lib/rspec/mocks/method_double.rb +0 -0
  1277. data/vendor/bundle/ruby/3.1.0/gems/rspec-mocks-3.12.0/lib/rspec/mocks/method_reference.rb +214 -0
  1278. data/vendor/bundle/ruby/3.1.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.0}/lib/rspec/mocks/minitest_integration.rb +0 -0
  1279. data/vendor/bundle/ruby/3.1.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.0}/lib/rspec/mocks/mutate_const.rb +0 -0
  1280. data/vendor/bundle/ruby/3.1.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.0}/lib/rspec/mocks/object_reference.rb +0 -0
  1281. data/vendor/bundle/ruby/3.1.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.0}/lib/rspec/mocks/order_group.rb +0 -0
  1282. data/vendor/bundle/ruby/3.1.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.0}/lib/rspec/mocks/proxy.rb +0 -0
  1283. data/vendor/bundle/ruby/3.1.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.0}/lib/rspec/mocks/space.rb +0 -0
  1284. data/vendor/bundle/ruby/3.1.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.0}/lib/rspec/mocks/standalone.rb +0 -0
  1285. data/vendor/bundle/ruby/3.1.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.0}/lib/rspec/mocks/syntax.rb +0 -0
  1286. data/vendor/bundle/ruby/3.1.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.0}/lib/rspec/mocks/targets.rb +0 -0
  1287. data/vendor/bundle/ruby/3.1.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.0}/lib/rspec/mocks/test_double.rb +0 -0
  1288. data/vendor/bundle/ruby/3.1.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.0}/lib/rspec/mocks/verifying_double.rb +0 -0
  1289. data/vendor/bundle/ruby/3.1.0/gems/rspec-mocks-3.12.0/lib/rspec/mocks/verifying_message_expectation.rb +55 -0
  1290. data/vendor/bundle/ruby/3.1.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.0}/lib/rspec/mocks/verifying_proxy.rb +0 -0
  1291. data/vendor/bundle/ruby/3.1.0/gems/rspec-mocks-3.12.0/lib/rspec/mocks/version.rb +9 -0
  1292. data/vendor/bundle/ruby/3.1.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.0}/lib/rspec/mocks.rb +0 -0
  1293. data/vendor/bundle/ruby/3.1.0/gems/rspec-support-3.12.0/Changelog.md +364 -0
  1294. data/vendor/bundle/ruby/3.1.0/gems/{rspec-support-3.11.0 → rspec-support-3.12.0}/LICENSE.md +0 -0
  1295. data/vendor/bundle/ruby/3.1.0/gems/{rspec-support-3.11.0 → rspec-support-3.12.0}/README.md +0 -0
  1296. data/vendor/bundle/ruby/3.1.0/gems/rspec-support-3.12.0/lib/rspec/support/caller_filter.rb +83 -0
  1297. data/vendor/bundle/ruby/3.1.0/gems/rspec-support-3.12.0/lib/rspec/support/comparable_version.rb +46 -0
  1298. data/vendor/bundle/ruby/3.1.0/gems/rspec-support-3.12.0/lib/rspec/support/differ.rb +215 -0
  1299. data/vendor/bundle/ruby/3.1.0/gems/{rspec-support-3.11.0 → rspec-support-3.12.0}/lib/rspec/support/directory_maker.rb +0 -0
  1300. data/vendor/bundle/ruby/3.1.0/gems/rspec-support-3.12.0/lib/rspec/support/encoded_string.rb +161 -0
  1301. data/vendor/bundle/ruby/3.1.0/gems/{rspec-support-3.11.0 → rspec-support-3.12.0}/lib/rspec/support/fuzzy_matcher.rb +0 -0
  1302. data/vendor/bundle/ruby/3.1.0/gems/{rspec-support-3.11.0 → rspec-support-3.12.0}/lib/rspec/support/hunk_generator.rb +0 -0
  1303. data/vendor/bundle/ruby/3.1.0/gems/{rspec-support-3.11.0 → rspec-support-3.12.0}/lib/rspec/support/matcher_definition.rb +0 -0
  1304. data/vendor/bundle/ruby/3.1.0/gems/rspec-support-3.12.0/lib/rspec/support/method_signature_verifier.rb +438 -0
  1305. data/vendor/bundle/ruby/3.1.0/gems/rspec-support-3.12.0/lib/rspec/support/mutex.rb +73 -0
  1306. data/vendor/bundle/ruby/3.1.0/gems/{rspec-support-3.11.0 → rspec-support-3.12.0}/lib/rspec/support/object_formatter.rb +0 -0
  1307. data/vendor/bundle/ruby/3.1.0/gems/{rspec-support-3.11.0 → rspec-support-3.12.0}/lib/rspec/support/recursive_const_methods.rb +0 -0
  1308. data/vendor/bundle/ruby/3.1.0/gems/{rspec-support-3.11.0 → rspec-support-3.12.0}/lib/rspec/support/reentrant_mutex.rb +0 -0
  1309. data/vendor/bundle/ruby/3.1.0/gems/rspec-support-3.12.0/lib/rspec/support/ruby_features.rb +198 -0
  1310. data/vendor/bundle/ruby/3.1.0/gems/{rspec-support-3.11.0 → rspec-support-3.12.0}/lib/rspec/support/source/location.rb +0 -0
  1311. data/vendor/bundle/ruby/3.1.0/gems/{rspec-support-3.11.0 → rspec-support-3.12.0}/lib/rspec/support/source/node.rb +0 -0
  1312. data/vendor/bundle/ruby/3.1.0/gems/{rspec-support-3.11.0 → rspec-support-3.12.0}/lib/rspec/support/source/token.rb +0 -0
  1313. data/vendor/bundle/ruby/3.1.0/gems/{rspec-support-3.11.0 → rspec-support-3.12.0}/lib/rspec/support/source.rb +0 -0
  1314. data/vendor/bundle/ruby/3.1.0/gems/{rspec-support-3.11.0 → rspec-support-3.12.0}/lib/rspec/support/spec/deprecation_helpers.rb +0 -0
  1315. data/vendor/bundle/ruby/3.1.0/gems/{rspec-support-3.11.0 → rspec-support-3.12.0}/lib/rspec/support/spec/diff_helpers.rb +0 -0
  1316. data/vendor/bundle/ruby/3.1.0/gems/{rspec-support-3.11.0 → rspec-support-3.12.0}/lib/rspec/support/spec/formatting_support.rb +0 -0
  1317. data/vendor/bundle/ruby/3.1.0/gems/rspec-support-3.12.0/lib/rspec/support/spec/in_sub_process.rb +67 -0
  1318. data/vendor/bundle/ruby/3.1.0/gems/{rspec-support-3.11.0 → rspec-support-3.12.0}/lib/rspec/support/spec/library_wide_checks.rb +0 -0
  1319. data/vendor/bundle/ruby/3.1.0/gems/{rspec-support-3.11.0 → rspec-support-3.12.0}/lib/rspec/support/spec/shell_out.rb +0 -0
  1320. data/vendor/bundle/ruby/3.1.0/gems/rspec-support-3.12.0/lib/rspec/support/spec/stderr_splitter.rb +75 -0
  1321. data/vendor/bundle/ruby/3.1.0/gems/{rspec-support-3.11.0 → rspec-support-3.12.0}/lib/rspec/support/spec/string_matcher.rb +0 -0
  1322. data/vendor/bundle/ruby/3.1.0/gems/{rspec-support-3.11.0 → rspec-support-3.12.0}/lib/rspec/support/spec/with_isolated_directory.rb +0 -0
  1323. data/vendor/bundle/ruby/3.1.0/gems/{rspec-support-3.11.0 → rspec-support-3.12.0}/lib/rspec/support/spec/with_isolated_stderr.rb +0 -0
  1324. data/vendor/bundle/ruby/3.1.0/gems/{rspec-support-3.11.0 → rspec-support-3.12.0}/lib/rspec/support/spec.rb +0 -0
  1325. data/vendor/bundle/ruby/3.1.0/gems/rspec-support-3.12.0/lib/rspec/support/version.rb +7 -0
  1326. data/vendor/bundle/ruby/3.1.0/gems/{rspec-support-3.11.0 → rspec-support-3.12.0}/lib/rspec/support/warnings.rb +0 -0
  1327. data/vendor/bundle/ruby/3.1.0/gems/rspec-support-3.12.0/lib/rspec/support/with_keywords_when_needed.rb +33 -0
  1328. data/vendor/bundle/ruby/3.1.0/gems/{rspec-support-3.11.0 → rspec-support-3.12.0}/lib/rspec/support.rb +0 -0
  1329. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/CHANGES +2005 -0
  1330. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/Gemfile +0 -0
  1331. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/LICENSE +202 -0
  1332. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/NOTICE +2 -0
  1333. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/README.md +0 -0
  1334. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/server.rb +278 -0
  1335. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/atoms/findElements.js +0 -0
  1336. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/atoms/getAttribute.js +0 -0
  1337. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/atoms/isDisplayed.js +0 -0
  1338. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/atoms/mutationListener.js +0 -0
  1339. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/atoms.rb +0 -0
  1340. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/chrome/driver.rb +0 -0
  1341. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/chrome/features.rb +106 -0
  1342. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/chrome/options.rb +261 -0
  1343. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/chrome/profile.rb +0 -0
  1344. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/chrome/service.rb +0 -0
  1345. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/chrome.rb +55 -0
  1346. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/action_builder.rb +213 -0
  1347. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/common/alert.rb +0 -0
  1348. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/driver.rb +397 -0
  1349. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/common/driver_extensions/downloads_files.rb +0 -0
  1350. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/common/driver_extensions/full_page_screenshot.rb +0 -0
  1351. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/common/driver_extensions/has_addons.rb +0 -0
  1352. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/common/driver_extensions/has_apple_permissions.rb +0 -0
  1353. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/common/driver_extensions/has_authentication.rb +0 -0
  1354. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/driver_extensions/has_casting.rb +77 -0
  1355. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/common/driver_extensions/has_cdp.rb +0 -0
  1356. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/driver_extensions/has_context.rb +45 -0
  1357. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/common/driver_extensions/has_debugger.rb +0 -0
  1358. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/common/driver_extensions/has_devtools.rb +0 -0
  1359. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/common/driver_extensions/has_launching.rb +0 -0
  1360. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/common/driver_extensions/has_location.rb +0 -0
  1361. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/driver_extensions/has_log_events.rb +144 -0
  1362. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/common/driver_extensions/has_logs.rb +0 -0
  1363. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/common/driver_extensions/has_network_conditions.rb +0 -0
  1364. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/common/driver_extensions/has_network_connection.rb +0 -0
  1365. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/driver_extensions/has_network_interception.rb +136 -0
  1366. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/common/driver_extensions/has_permissions.rb +0 -0
  1367. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/driver_extensions/has_pinned_scripts.rb +77 -0
  1368. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/driver_extensions/has_remote_status.rb +31 -0
  1369. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/common/driver_extensions/has_session_id.rb +0 -0
  1370. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/common/driver_extensions/has_web_storage.rb +0 -0
  1371. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/common/driver_extensions/prints_page.rb +0 -0
  1372. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/common/driver_extensions/uploads_files.rb +0 -0
  1373. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/element.rb +395 -0
  1374. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/error.rb +219 -0
  1375. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/common/file_reaper.rb +0 -0
  1376. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/common/html5/local_storage.rb +0 -0
  1377. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/common/html5/session_storage.rb +0 -0
  1378. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/common/html5/shared_web_storage.rb +0 -0
  1379. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/interactions/input_device.rb +54 -0
  1380. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/interactions/interaction.rb +56 -0
  1381. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/interactions/interactions.rb +43 -0
  1382. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/interactions/key_actions.rb +145 -0
  1383. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/interactions/key_input.rb +66 -0
  1384. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/interactions/none_input.rb +36 -0
  1385. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/interactions/pointer_actions.rb +363 -0
  1386. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/interactions/pointer_input.rb +139 -0
  1387. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/keys.rb +146 -0
  1388. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/common/log_entry.rb +0 -0
  1389. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/common/logger.rb +0 -0
  1390. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/common/logs.rb +0 -0
  1391. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/manager.rb +177 -0
  1392. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/common/navigation.rb +0 -0
  1393. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/options.rb +184 -0
  1394. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/platform.rb +227 -0
  1395. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/common/port_prober.rb +0 -0
  1396. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/common/profile_helper.rb +0 -0
  1397. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/common/proxy.rb +0 -0
  1398. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/search_context.rb +112 -0
  1399. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/common/service.rb +0 -0
  1400. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/service_manager.rb +151 -0
  1401. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/shadow_root.rb +87 -0
  1402. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/common/socket_lock.rb +0 -0
  1403. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/socket_poller.rb +126 -0
  1404. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/takes_screenshot.rb +66 -0
  1405. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/common/target_locator.rb +0 -0
  1406. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/common/timeouts.rb +0 -0
  1407. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/common/wait.rb +0 -0
  1408. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/window.rb +159 -0
  1409. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/zipper.rb +91 -0
  1410. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common.rb +83 -0
  1411. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/devtools/console_event.rb +0 -0
  1412. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/devtools/exception_event.rb +0 -0
  1413. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/devtools/mutation_event.rb +0 -0
  1414. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/devtools/pinned_script.rb +0 -0
  1415. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/devtools/request.rb +67 -0
  1416. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/devtools/response.rb +66 -0
  1417. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/devtools.rb +193 -0
  1418. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/edge/driver.rb +0 -0
  1419. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/edge/features.rb +44 -0
  1420. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/edge/options.rb +0 -0
  1421. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/edge/profile.rb +0 -0
  1422. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/edge/service.rb +0 -0
  1423. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/edge.rb +0 -0
  1424. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/firefox/driver.rb +62 -0
  1425. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/firefox/extension.rb +0 -0
  1426. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/firefox/features.rb +66 -0
  1427. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/firefox/options.rb +183 -0
  1428. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/firefox/profile.rb +231 -0
  1429. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/firefox/profiles_ini.rb +0 -0
  1430. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/firefox/service.rb +0 -0
  1431. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/firefox.rb +68 -0
  1432. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/ie/driver.rb +0 -0
  1433. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/ie/options.rb +0 -0
  1434. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/ie/service.rb +0 -0
  1435. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/ie.rb +42 -0
  1436. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/remote/bridge.rb +670 -0
  1437. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/remote/capabilities.rb +0 -0
  1438. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/remote/commands.rb +163 -0
  1439. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/remote/driver.rb +61 -0
  1440. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/remote/http/common.rb +0 -0
  1441. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/remote/http/curb.rb +0 -0
  1442. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/remote/http/default.rb +179 -0
  1443. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/remote/http/persistent.rb +65 -0
  1444. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/remote/response.rb +105 -0
  1445. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/remote/server_error.rb +0 -0
  1446. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/remote.rb +0 -0
  1447. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/safari/driver.rb +0 -0
  1448. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/safari/features.rb +0 -0
  1449. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/safari/options.rb +0 -0
  1450. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/safari/service.rb +0 -0
  1451. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/safari.rb +73 -0
  1452. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/support/abstract_event_listener.rb +0 -0
  1453. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/support/block_event_listener.rb +0 -0
  1454. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/support/cdp/domain.rb.erb +0 -0
  1455. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/support/cdp_client_generator.rb +108 -0
  1456. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/support/color.rb +146 -0
  1457. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/support/escaper.rb +0 -0
  1458. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/support/event_firing_bridge.rb +0 -0
  1459. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/support/guards/guard.rb +0 -0
  1460. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/support/guards/guard_condition.rb +52 -0
  1461. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/support/guards.rb +95 -0
  1462. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/support/relative_locator.rb +0 -0
  1463. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/support/select.rb +0 -0
  1464. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium/webdriver/support.rb +0 -0
  1465. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/version.rb +24 -0
  1466. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver.rb +101 -0
  1467. data/vendor/bundle/ruby/3.1.0/gems/{selenium-webdriver-4.4.0 → selenium-webdriver-4.1.0}/lib/selenium-webdriver.rb +0 -0
  1468. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.1.0/selenium-webdriver.gemspec +63 -0
  1469. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/CHANGELOG +1127 -0
  1470. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/MIT-LICENSE +0 -0
  1471. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/README.rdoc +934 -0
  1472. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/bin/sequel +275 -0
  1473. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/doc/advanced_associations.rdoc +882 -0
  1474. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/doc/association_basics.rdoc +1829 -0
  1475. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/bin_sequel.rdoc +0 -0
  1476. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/doc/cheat_sheet.rdoc +255 -0
  1477. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/code_order.rdoc +0 -0
  1478. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/core_extensions.rdoc +0 -0
  1479. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/dataset_basics.rdoc +0 -0
  1480. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/dataset_filtering.rdoc +0 -0
  1481. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/extensions.rdoc +0 -0
  1482. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/fork_safety.rdoc +0 -0
  1483. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/mass_assignment.rdoc +0 -0
  1484. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/migration.rdoc +0 -0
  1485. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/model_dataset_method_design.rdoc +0 -0
  1486. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/doc/model_hooks.rdoc +254 -0
  1487. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/model_plugins.rdoc +0 -0
  1488. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/mssql_stored_procedures.rdoc +0 -0
  1489. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/doc/object_model.rdoc +563 -0
  1490. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/doc/opening_databases.rdoc +425 -0
  1491. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/doc/postgresql.rdoc +611 -0
  1492. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/prepared_statements.rdoc +0 -0
  1493. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/doc/querying.rdoc +1065 -0
  1494. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/reflection.rdoc +0 -0
  1495. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.0.0.txt +0 -0
  1496. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.1.0.txt +0 -0
  1497. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.10.0.txt +0 -0
  1498. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.11.0.txt +0 -0
  1499. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.12.0.txt +0 -0
  1500. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.13.0.txt +0 -0
  1501. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.14.0.txt +0 -0
  1502. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.15.0.txt +0 -0
  1503. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.16.0.txt +0 -0
  1504. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.17.0.txt +0 -0
  1505. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.18.0.txt +0 -0
  1506. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.19.0.txt +0 -0
  1507. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.2.0.txt +0 -0
  1508. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.20.0.txt +0 -0
  1509. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.21.0.txt +0 -0
  1510. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.22.0.txt +0 -0
  1511. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.23.0.txt +0 -0
  1512. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.24.0.txt +0 -0
  1513. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.25.0.txt +0 -0
  1514. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.26.0.txt +0 -0
  1515. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.27.0.txt +0 -0
  1516. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.28.0.txt +0 -0
  1517. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.29.0.txt +0 -0
  1518. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.3.0.txt +0 -0
  1519. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.30.0.txt +0 -0
  1520. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.31.0.txt +0 -0
  1521. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.32.0.txt +0 -0
  1522. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.33.0.txt +0 -0
  1523. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.34.0.txt +0 -0
  1524. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.35.0.txt +0 -0
  1525. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.36.0.txt +0 -0
  1526. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.37.0.txt +0 -0
  1527. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.38.0.txt +0 -0
  1528. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.39.0.txt +0 -0
  1529. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.4.0.txt +0 -0
  1530. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.40.0.txt +0 -0
  1531. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.41.0.txt +0 -0
  1532. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.42.0.txt +0 -0
  1533. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.43.0.txt +0 -0
  1534. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.44.0.txt +0 -0
  1535. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.45.0.txt +0 -0
  1536. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.46.0.txt +0 -0
  1537. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.47.0.txt +0 -0
  1538. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.48.0.txt +0 -0
  1539. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.49.0.txt +0 -0
  1540. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.5.0.txt +0 -0
  1541. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.50.0.txt +0 -0
  1542. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.51.0.txt +0 -0
  1543. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.52.0.txt +0 -0
  1544. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.53.0.txt +0 -0
  1545. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.54.0.txt +0 -0
  1546. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.55.0.txt +0 -0
  1547. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.56.0.txt +0 -0
  1548. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.57.0.txt +0 -0
  1549. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.58.0.txt +0 -0
  1550. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.59.0.txt +0 -0
  1551. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.6.0.txt +0 -0
  1552. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/doc/release_notes/5.60.0.txt +22 -0
  1553. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/doc/release_notes/5.61.0.txt +43 -0
  1554. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/doc/release_notes/5.62.0.txt +132 -0
  1555. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.7.0.txt +0 -0
  1556. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.8.0.txt +0 -0
  1557. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/release_notes/5.9.0.txt +0 -0
  1558. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/doc/schema_modification.rdoc +679 -0
  1559. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/doc/security.rdoc +443 -0
  1560. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/sharding.rdoc +0 -0
  1561. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/doc/sql.rdoc +648 -0
  1562. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/doc/testing.rdoc +188 -0
  1563. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/thread_safety.rdoc +0 -0
  1564. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/doc/transactions.rdoc +250 -0
  1565. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/doc/validations.rdoc +0 -0
  1566. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/doc/virtual_rows.rdoc +265 -0
  1567. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/adapters/ado/access.rb +0 -0
  1568. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/adapters/ado/mssql.rb +0 -0
  1569. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/adapters/ado.rb +0 -0
  1570. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/adapters/amalgalite.rb +0 -0
  1571. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/adapters/ibmdb.rb +0 -0
  1572. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/adapters/jdbc/db2.rb +0 -0
  1573. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/adapters/jdbc/derby.rb +0 -0
  1574. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/adapters/jdbc/h2.rb +0 -0
  1575. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/adapters/jdbc/hsqldb.rb +0 -0
  1576. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/adapters/jdbc/jtds.rb +0 -0
  1577. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/adapters/jdbc/mssql.rb +0 -0
  1578. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/adapters/jdbc/mysql.rb +0 -0
  1579. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/adapters/jdbc/oracle.rb +0 -0
  1580. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/adapters/jdbc/postgresql.rb +0 -0
  1581. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/adapters/jdbc/sqlanywhere.rb +0 -0
  1582. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/adapters/jdbc/sqlite.rb +0 -0
  1583. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/adapters/jdbc/sqlserver.rb +0 -0
  1584. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/adapters/jdbc/transactions.rb +0 -0
  1585. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/adapters/jdbc.rb +0 -0
  1586. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/adapters/mock.rb +0 -0
  1587. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/adapters/mysql.rb +0 -0
  1588. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/adapters/mysql2.rb +0 -0
  1589. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/adapters/odbc/db2.rb +0 -0
  1590. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/adapters/odbc/mssql.rb +0 -0
  1591. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/adapters/odbc/oracle.rb +0 -0
  1592. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/adapters/odbc.rb +0 -0
  1593. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/adapters/oracle.rb +0 -0
  1594. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/adapters/postgres.rb +861 -0
  1595. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/adapters/postgresql.rb +0 -0
  1596. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/adapters/shared/access.rb +300 -0
  1597. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/adapters/shared/db2.rb +0 -0
  1598. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/adapters/shared/mssql.rb +1167 -0
  1599. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/adapters/shared/mysql.rb +1099 -0
  1600. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/adapters/shared/oracle.rb +728 -0
  1601. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/adapters/shared/postgres.rb +2433 -0
  1602. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/adapters/shared/sqlanywhere.rb +464 -0
  1603. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/adapters/shared/sqlite.rb +1040 -0
  1604. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/adapters/sqlanywhere.rb +0 -0
  1605. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/adapters/sqlite.rb +0 -0
  1606. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/adapters/tinytds.rb +0 -0
  1607. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/adapters/utils/columns_limit_1.rb +0 -0
  1608. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/adapters/utils/emulate_offset_with_reverse_and_count.rb +0 -0
  1609. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/adapters/utils/emulate_offset_with_row_number.rb +0 -0
  1610. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/adapters/utils/mysql_mysql2.rb +0 -0
  1611. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/adapters/utils/mysql_prepared_statements.rb +0 -0
  1612. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/adapters/utils/replace.rb +0 -0
  1613. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/adapters/utils/split_alter_table.rb +0 -0
  1614. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/adapters/utils/stored_procedures.rb +0 -0
  1615. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/adapters/utils/unmodified_identifiers.rb +0 -0
  1616. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/ast_transformer.rb +0 -0
  1617. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/connection_pool/sharded_single.rb +0 -0
  1618. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/connection_pool/sharded_threaded.rb +0 -0
  1619. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/connection_pool/single.rb +0 -0
  1620. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/connection_pool/threaded.rb +0 -0
  1621. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/connection_pool.rb +157 -0
  1622. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/core.rb +0 -0
  1623. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/database/connecting.rb +355 -0
  1624. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/database/dataset.rb +0 -0
  1625. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/database/dataset_defaults.rb +0 -0
  1626. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/database/features.rb +0 -0
  1627. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/database/logging.rb +0 -0
  1628. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/database/misc.rb +626 -0
  1629. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/database/query.rb +402 -0
  1630. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/database/schema_generator.rb +0 -0
  1631. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/database/schema_methods.rb +0 -0
  1632. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/database/transactions.rb +0 -0
  1633. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/database.rb +0 -0
  1634. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/dataset/actions.rb +1313 -0
  1635. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/dataset/dataset_module.rb +0 -0
  1636. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/dataset/features.rb +275 -0
  1637. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/dataset/graph.rb +0 -0
  1638. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/dataset/misc.rb +371 -0
  1639. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/dataset/placeholder_literalizer.rb +0 -0
  1640. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/dataset/prepared_statements.rb +0 -0
  1641. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/dataset/query.rb +1485 -0
  1642. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/dataset/sql.rb +1815 -0
  1643. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/dataset.rb +0 -0
  1644. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/deprecated.rb +0 -0
  1645. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/exceptions.rb +0 -0
  1646. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/_model_constraint_validations.rb +0 -0
  1647. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/extensions/_model_pg_row.rb +31 -0
  1648. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/extensions/_pretty_table.rb +85 -0
  1649. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/any_not_empty.rb +0 -0
  1650. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/arbitrary_servers.rb +0 -0
  1651. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/extensions/async_thread_pool.rb +438 -0
  1652. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/extensions/auto_literal_strings.rb +74 -0
  1653. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/blank.rb +0 -0
  1654. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/caller_logging.rb +0 -0
  1655. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/columns_introspection.rb +0 -0
  1656. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/connection_expiration.rb +0 -0
  1657. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/connection_validator.rb +0 -0
  1658. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/constant_sql_override.rb +0 -0
  1659. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/extensions/constraint_validations.rb +510 -0
  1660. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/core_extensions.rb +0 -0
  1661. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/core_refinements.rb +0 -0
  1662. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/current_datetime_timestamp.rb +0 -0
  1663. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/dataset_source_alias.rb +0 -0
  1664. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/extensions/date_arithmetic.rb +254 -0
  1665. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/date_parse_input_handler.rb +0 -0
  1666. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/datetime_parse_to_time.rb +0 -0
  1667. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/duplicate_columns_handler.rb +0 -0
  1668. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/empty_array_consider_nulls.rb +0 -0
  1669. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/error_sql.rb +0 -0
  1670. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/escaped_like.rb +0 -0
  1671. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/eval_inspect.rb +0 -0
  1672. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/exclude_or_null.rb +0 -0
  1673. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/fiber_concurrency.rb +0 -0
  1674. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/freeze_datasets.rb +0 -0
  1675. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/from_block.rb +0 -0
  1676. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/graph_each.rb +0 -0
  1677. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/identifier_mangling.rb +0 -0
  1678. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/implicit_subquery.rb +0 -0
  1679. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/index_caching.rb +0 -0
  1680. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/inflector.rb +0 -0
  1681. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/integer64.rb +0 -0
  1682. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/extensions/is_distinct_from.rb +141 -0
  1683. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/extensions/looser_typecasting.rb +57 -0
  1684. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/extensions/migration.rb +797 -0
  1685. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/mssql_emulate_lateral_with_apply.rb +0 -0
  1686. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/extensions/named_timezones.rb +180 -0
  1687. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/no_auto_literal_strings.rb +0 -0
  1688. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/null_dataset.rb +0 -0
  1689. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/pagination.rb +0 -0
  1690. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/extensions/pg_array.rb +546 -0
  1691. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/pg_array_ops.rb +0 -0
  1692. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/extensions/pg_auto_parameterize.rb +478 -0
  1693. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/pg_enum.rb +0 -0
  1694. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/extensions/pg_extended_date_support.rb +253 -0
  1695. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/extensions/pg_extended_integer_support.rb +116 -0
  1696. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/extensions/pg_hstore.rb +353 -0
  1697. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/pg_hstore_ops.rb +0 -0
  1698. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/extensions/pg_inet.rb +136 -0
  1699. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/pg_inet_ops.rb +0 -0
  1700. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/extensions/pg_interval.rb +224 -0
  1701. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/extensions/pg_json.rb +644 -0
  1702. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/extensions/pg_json_ops.rb +752 -0
  1703. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/pg_loose_count.rb +0 -0
  1704. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/extensions/pg_multirange.rb +367 -0
  1705. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/extensions/pg_range.rb +560 -0
  1706. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/pg_range_ops.rb +0 -0
  1707. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/extensions/pg_row.rb +587 -0
  1708. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/pg_row_ops.rb +0 -0
  1709. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/pg_static_cache_updater.rb +0 -0
  1710. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/pg_timestamptz.rb +0 -0
  1711. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/pretty_table.rb +0 -0
  1712. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/query.rb +0 -0
  1713. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/round_timestamps.rb +0 -0
  1714. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/run_transaction_hooks.rb +0 -0
  1715. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/s.rb +0 -0
  1716. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/schema_caching.rb +0 -0
  1717. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/schema_dumper.rb +0 -0
  1718. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/select_remove.rb +0 -0
  1719. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/sequel_4_dataset_methods.rb +0 -0
  1720. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/server_block.rb +0 -0
  1721. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/server_logging.rb +0 -0
  1722. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/split_array_nil.rb +0 -0
  1723. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/sql_comments.rb +0 -0
  1724. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/sql_expr.rb +0 -0
  1725. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/sql_log_normalizer.rb +0 -0
  1726. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/sqlite_json_ops.rb +0 -0
  1727. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/string_agg.rb +0 -0
  1728. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/string_date_time.rb +0 -0
  1729. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/extensions/symbol_aref.rb +55 -0
  1730. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/symbol_aref_refinement.rb +0 -0
  1731. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/symbol_as.rb +0 -0
  1732. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/symbol_as_refinement.rb +0 -0
  1733. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/synchronize_sql.rb +0 -0
  1734. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/thread_local_timezones.rb +0 -0
  1735. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/to_dot.rb +0 -0
  1736. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/extensions/virtual_row_method_block.rb +0 -0
  1737. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/model/associations.rb +4019 -0
  1738. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/model/base.rb +2271 -0
  1739. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/model/dataset_module.rb +0 -0
  1740. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/model/default_inflections.rb +0 -0
  1741. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/model/errors.rb +0 -0
  1742. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/model/exceptions.rb +0 -0
  1743. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/model/inflections.rb +0 -0
  1744. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/model/plugins.rb +0 -0
  1745. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/model.rb +0 -0
  1746. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/accessed_columns.rb +0 -0
  1747. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/active_model.rb +0 -0
  1748. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/after_initialize.rb +0 -0
  1749. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/association_dependencies.rb +0 -0
  1750. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/association_lazy_eager_option.rb +0 -0
  1751. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/association_multi_add_remove.rb +0 -0
  1752. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/association_pks.rb +0 -0
  1753. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/association_proxies.rb +0 -0
  1754. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/async_thread_pool.rb +0 -0
  1755. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/auto_restrict_eager_graph.rb +0 -0
  1756. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/plugins/auto_validations.rb +302 -0
  1757. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/auto_validations_constraint_validations_presence_message.rb +0 -0
  1758. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/before_after_save.rb +0 -0
  1759. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/blacklist_security.rb +0 -0
  1760. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/boolean_readers.rb +0 -0
  1761. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/boolean_subsets.rb +0 -0
  1762. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/caching.rb +0 -0
  1763. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/plugins/class_table_inheritance.rb +439 -0
  1764. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/column_conflicts.rb +0 -0
  1765. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/column_encryption.rb +0 -0
  1766. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/column_select.rb +0 -0
  1767. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/columns_updated.rb +0 -0
  1768. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/plugins/composition.rb +205 -0
  1769. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/plugins/concurrent_eager_loading.rb +174 -0
  1770. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/constraint_validations.rb +0 -0
  1771. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/csv_serializer.rb +0 -0
  1772. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/dataset_associations.rb +0 -0
  1773. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/def_dataset_method.rb +0 -0
  1774. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/defaults_setter.rb +0 -0
  1775. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/delay_add_association.rb +0 -0
  1776. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/plugins/dirty.rb +276 -0
  1777. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/eager_each.rb +0 -0
  1778. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/eager_graph_eager.rb +0 -0
  1779. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/empty_failure_backtraces.rb +0 -0
  1780. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/enum.rb +0 -0
  1781. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/error_splitter.rb +0 -0
  1782. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/plugins/finder.rb +248 -0
  1783. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/forbid_lazy_load.rb +0 -0
  1784. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/force_encoding.rb +0 -0
  1785. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/hook_class_methods.rb +0 -0
  1786. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/input_transformer.rb +0 -0
  1787. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/insert_conflict.rb +0 -0
  1788. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/insert_returning_select.rb +0 -0
  1789. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/instance_filters.rb +0 -0
  1790. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/instance_hooks.rb +0 -0
  1791. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/instance_specific_default.rb +0 -0
  1792. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/inverted_subsets.rb +0 -0
  1793. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/json_serializer.rb +0 -0
  1794. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/lazy_attributes.rb +0 -0
  1795. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/list.rb +0 -0
  1796. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/many_through_many.rb +0 -0
  1797. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/modification_detection.rb +0 -0
  1798. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/mssql_optimistic_locking.rb +0 -0
  1799. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/plugins/nested_attributes.rb +335 -0
  1800. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/optimistic_locking.rb +0 -0
  1801. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/pg_array_associations.rb +0 -0
  1802. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/plugins/pg_auto_constraint_validations.rb +350 -0
  1803. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/pg_row.rb +0 -0
  1804. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/prepared_statements.rb +0 -0
  1805. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/prepared_statements_safe.rb +0 -0
  1806. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/plugins/primary_key_lookup_check_values.rb +154 -0
  1807. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/rcte_tree.rb +0 -0
  1808. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/require_valid_schema.rb +0 -0
  1809. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/serialization.rb +0 -0
  1810. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/serialization_modification_detection.rb +0 -0
  1811. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/sharding.rb +0 -0
  1812. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/single_table_inheritance.rb +0 -0
  1813. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/singular_table_names.rb +0 -0
  1814. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/skip_create_refresh.rb +0 -0
  1815. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/skip_saving_columns.rb +0 -0
  1816. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/split_values.rb +0 -0
  1817. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/plugins/sql_comments.rb +189 -0
  1818. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/static_cache.rb +0 -0
  1819. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/static_cache_cache.rb +0 -0
  1820. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/string_stripper.rb +0 -0
  1821. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/subclasses.rb +0 -0
  1822. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/subset_conditions.rb +0 -0
  1823. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/table_select.rb +0 -0
  1824. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/tactical_eager_loading.rb +0 -0
  1825. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/throw_failures.rb +0 -0
  1826. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/timestamps.rb +0 -0
  1827. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/touch.rb +0 -0
  1828. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/tree.rb +0 -0
  1829. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/typecast_on_load.rb +0 -0
  1830. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/unlimited_update.rb +0 -0
  1831. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/unused_associations.rb +0 -0
  1832. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/update_or_create.rb +0 -0
  1833. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/update_primary_key.rb +0 -0
  1834. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/update_refresh.rb +0 -0
  1835. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/uuid.rb +0 -0
  1836. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/validate_associated.rb +0 -0
  1837. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/validation_class_methods.rb +0 -0
  1838. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/validation_contexts.rb +0 -0
  1839. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/plugins/validation_helpers.rb +344 -0
  1840. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/whitelist_security.rb +0 -0
  1841. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/plugins/xml_serializer.rb +0 -0
  1842. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/sql.rb +0 -0
  1843. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel/timezones.rb +0 -0
  1844. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.62.0/lib/sequel/version.rb +25 -0
  1845. data/vendor/bundle/ruby/3.1.0/gems/{sequel-5.59.0 → sequel-5.62.0}/lib/sequel.rb +0 -0
  1846. data/vendor/bundle/ruby/3.1.0/gems/sqlite3-1.5.4-x86_64-linux/API_CHANGES.md +49 -0
  1847. data/vendor/bundle/ruby/3.1.0/gems/sqlite3-1.5.4-x86_64-linux/CHANGELOG.md +469 -0
  1848. data/vendor/bundle/ruby/3.1.0/gems/sqlite3-1.5.4-x86_64-linux/CONTRIBUTING.md +24 -0
  1849. data/vendor/bundle/ruby/3.1.0/gems/{sqlite3-1.4.4 → sqlite3-1.5.4-x86_64-linux}/ChangeLog.cvs +0 -0
  1850. data/vendor/bundle/ruby/3.1.0/gems/sqlite3-1.5.4-x86_64-linux/Gemfile +3 -0
  1851. data/vendor/bundle/ruby/3.1.0/gems/{sqlite3-1.4.4 → sqlite3-1.5.4-x86_64-linux}/LICENSE +0 -0
  1852. data/vendor/bundle/ruby/3.1.0/gems/sqlite3-1.5.4-x86_64-linux/LICENSE-DEPENDENCIES +20 -0
  1853. data/vendor/bundle/ruby/3.1.0/gems/sqlite3-1.5.4-x86_64-linux/README.md +235 -0
  1854. data/vendor/bundle/ruby/3.1.0/gems/sqlite3-1.5.4-x86_64-linux/dependencies.yml +14 -0
  1855. data/vendor/bundle/ruby/3.1.0/gems/sqlite3-1.5.4-x86_64-linux/ext/sqlite3/aggregator.c +274 -0
  1856. data/vendor/bundle/ruby/3.1.0/gems/{sqlite3-1.4.4 → sqlite3-1.5.4-x86_64-linux}/ext/sqlite3/aggregator.h +0 -0
  1857. data/vendor/bundle/ruby/3.1.0/gems/{sqlite3-1.4.4 → sqlite3-1.5.4-x86_64-linux}/ext/sqlite3/backup.c +0 -0
  1858. data/vendor/bundle/ruby/3.1.0/gems/{sqlite3-1.4.4 → sqlite3-1.5.4-x86_64-linux}/ext/sqlite3/backup.h +0 -0
  1859. data/vendor/bundle/ruby/3.1.0/gems/sqlite3-1.5.4-x86_64-linux/ext/sqlite3/database.c +853 -0
  1860. data/vendor/bundle/ruby/3.1.0/gems/{sqlite3-1.4.4 → sqlite3-1.5.4-x86_64-linux}/ext/sqlite3/database.h +0 -0
  1861. data/vendor/bundle/ruby/3.1.0/gems/{sqlite3-1.4.4 → sqlite3-1.5.4-x86_64-linux}/ext/sqlite3/exception.c +0 -0
  1862. data/vendor/bundle/ruby/3.1.0/gems/{sqlite3-1.4.4 → sqlite3-1.5.4-x86_64-linux}/ext/sqlite3/exception.h +0 -0
  1863. data/vendor/bundle/ruby/3.1.0/gems/sqlite3-1.5.4-x86_64-linux/ext/sqlite3/extconf.rb +262 -0
  1864. data/vendor/bundle/ruby/3.1.0/gems/sqlite3-1.5.4-x86_64-linux/ext/sqlite3/sqlite3.c +163 -0
  1865. data/vendor/bundle/ruby/3.1.0/gems/sqlite3-1.5.4-x86_64-linux/ext/sqlite3/sqlite3_ruby.h +48 -0
  1866. data/vendor/bundle/ruby/3.1.0/gems/{sqlite3-1.4.4 → sqlite3-1.5.4-x86_64-linux}/ext/sqlite3/statement.c +0 -0
  1867. data/vendor/bundle/ruby/3.1.0/gems/{sqlite3-1.4.4 → sqlite3-1.5.4-x86_64-linux}/ext/sqlite3/statement.h +0 -0
  1868. data/vendor/bundle/ruby/3.1.0/gems/sqlite3-1.5.4-x86_64-linux/faq/faq.md +431 -0
  1869. data/vendor/bundle/ruby/3.1.0/gems/{sqlite3-1.4.4 → sqlite3-1.5.4-x86_64-linux}/faq/faq.rb +0 -0
  1870. data/vendor/bundle/ruby/3.1.0/gems/{sqlite3-1.4.4 → sqlite3-1.5.4-x86_64-linux}/faq/faq.yml +0 -0
  1871. data/vendor/bundle/ruby/3.1.0/gems/sqlite3-1.5.4-x86_64-linux/lib/sqlite3/2.6/sqlite3_native.so +0 -0
  1872. data/vendor/bundle/ruby/3.1.0/gems/sqlite3-1.5.4-x86_64-linux/lib/sqlite3/2.7/sqlite3_native.so +0 -0
  1873. data/vendor/bundle/ruby/3.1.0/gems/sqlite3-1.5.4-x86_64-linux/lib/sqlite3/3.0/sqlite3_native.so +0 -0
  1874. data/vendor/bundle/ruby/3.1.0/gems/sqlite3-1.5.4-x86_64-linux/lib/sqlite3/3.1/sqlite3_native.so +0 -0
  1875. data/vendor/bundle/ruby/3.1.0/gems/{sqlite3-1.4.4 → sqlite3-1.5.4-x86_64-linux}/lib/sqlite3/constants.rb +0 -0
  1876. data/vendor/bundle/ruby/3.1.0/gems/{sqlite3-1.4.4 → sqlite3-1.5.4-x86_64-linux}/lib/sqlite3/database.rb +0 -0
  1877. data/vendor/bundle/ruby/3.1.0/gems/{sqlite3-1.4.4 → sqlite3-1.5.4-x86_64-linux}/lib/sqlite3/errors.rb +0 -0
  1878. data/vendor/bundle/ruby/3.1.0/gems/{sqlite3-1.4.4 → sqlite3-1.5.4-x86_64-linux}/lib/sqlite3/pragmas.rb +0 -0
  1879. data/vendor/bundle/ruby/3.1.0/gems/{sqlite3-1.4.4 → sqlite3-1.5.4-x86_64-linux}/lib/sqlite3/resultset.rb +0 -0
  1880. data/vendor/bundle/ruby/3.1.0/gems/{sqlite3-1.4.4 → sqlite3-1.5.4-x86_64-linux}/lib/sqlite3/statement.rb +0 -0
  1881. data/vendor/bundle/ruby/3.1.0/gems/{sqlite3-1.4.4 → sqlite3-1.5.4-x86_64-linux}/lib/sqlite3/translator.rb +0 -0
  1882. data/vendor/bundle/ruby/3.1.0/gems/{sqlite3-1.4.4 → sqlite3-1.5.4-x86_64-linux}/lib/sqlite3/value.rb +0 -0
  1883. data/vendor/bundle/ruby/3.1.0/gems/sqlite3-1.5.4-x86_64-linux/lib/sqlite3/version.rb +23 -0
  1884. data/vendor/bundle/ruby/3.1.0/gems/{sqlite3-1.4.4 → sqlite3-1.5.4-x86_64-linux}/lib/sqlite3.rb +0 -0
  1885. data/vendor/bundle/ruby/3.1.0/gems/sqlite3-1.5.4-x86_64-linux/test/helper.rb +27 -0
  1886. data/vendor/bundle/ruby/3.1.0/gems/{sqlite3-1.4.4 → sqlite3-1.5.4-x86_64-linux}/test/test_backup.rb +0 -0
  1887. data/vendor/bundle/ruby/3.1.0/gems/{sqlite3-1.4.4 → sqlite3-1.5.4-x86_64-linux}/test/test_collation.rb +0 -0
  1888. data/vendor/bundle/ruby/3.1.0/gems/sqlite3-1.5.4-x86_64-linux/test/test_database.rb +545 -0
  1889. data/vendor/bundle/ruby/3.1.0/gems/{sqlite3-1.4.4 → sqlite3-1.5.4-x86_64-linux}/test/test_database_flags.rb +0 -0
  1890. data/vendor/bundle/ruby/3.1.0/gems/{sqlite3-1.4.4 → sqlite3-1.5.4-x86_64-linux}/test/test_database_readonly.rb +0 -0
  1891. data/vendor/bundle/ruby/3.1.0/gems/{sqlite3-1.4.4 → sqlite3-1.5.4-x86_64-linux}/test/test_database_readwrite.rb +0 -0
  1892. data/vendor/bundle/ruby/3.1.0/gems/{sqlite3-1.4.4 → sqlite3-1.5.4-x86_64-linux}/test/test_deprecated.rb +0 -0
  1893. data/vendor/bundle/ruby/3.1.0/gems/{sqlite3-1.4.4 → sqlite3-1.5.4-x86_64-linux}/test/test_encoding.rb +0 -0
  1894. data/vendor/bundle/ruby/3.1.0/gems/{sqlite3-1.4.4 → sqlite3-1.5.4-x86_64-linux}/test/test_integration.rb +0 -0
  1895. data/vendor/bundle/ruby/3.1.0/gems/{sqlite3-1.4.4 → sqlite3-1.5.4-x86_64-linux}/test/test_integration_aggregate.rb +0 -0
  1896. data/vendor/bundle/ruby/3.1.0/gems/{sqlite3-1.4.4 → sqlite3-1.5.4-x86_64-linux}/test/test_integration_open_close.rb +0 -0
  1897. data/vendor/bundle/ruby/3.1.0/gems/{sqlite3-1.4.4 → sqlite3-1.5.4-x86_64-linux}/test/test_integration_pending.rb +0 -0
  1898. data/vendor/bundle/ruby/3.1.0/gems/{sqlite3-1.4.4 → sqlite3-1.5.4-x86_64-linux}/test/test_integration_resultset.rb +0 -0
  1899. data/vendor/bundle/ruby/3.1.0/gems/{sqlite3-1.4.4 → sqlite3-1.5.4-x86_64-linux}/test/test_integration_statement.rb +0 -0
  1900. data/vendor/bundle/ruby/3.1.0/gems/{sqlite3-1.4.4 → sqlite3-1.5.4-x86_64-linux}/test/test_result_set.rb +0 -0
  1901. data/vendor/bundle/ruby/3.1.0/gems/sqlite3-1.5.4-x86_64-linux/test/test_sqlite3.rb +30 -0
  1902. data/vendor/bundle/ruby/3.1.0/gems/{sqlite3-1.4.4 → sqlite3-1.5.4-x86_64-linux}/test/test_statement.rb +0 -0
  1903. data/vendor/bundle/ruby/3.1.0/gems/{sqlite3-1.4.4 → sqlite3-1.5.4-x86_64-linux}/test/test_statement_execute.rb +0 -0
  1904. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/BSDL +0 -0
  1905. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/COPYING +0 -0
  1906. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/PSFL +0 -0
  1907. data/vendor/bundle/ruby/3.1.0/gems/test-unit-3.5.5/README.md +108 -0
  1908. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/Rakefile +0 -0
  1909. data/vendor/bundle/ruby/3.1.0/gems/test-unit-3.5.5/doc/text/getting-started.md +246 -0
  1910. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/doc/text/how-to.md +0 -0
  1911. data/vendor/bundle/ruby/3.1.0/gems/test-unit-3.5.5/doc/text/news.md +1702 -0
  1912. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/lib/test/unit/assertion-failed-error.rb +0 -0
  1913. data/vendor/bundle/ruby/3.1.0/gems/test-unit-3.5.5/lib/test/unit/assertions.rb +2541 -0
  1914. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/lib/test/unit/attribute-matcher.rb +0 -0
  1915. data/vendor/bundle/ruby/3.1.0/gems/test-unit-3.5.5/lib/test/unit/attribute.rb +228 -0
  1916. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/lib/test/unit/auto-runner-loader.rb +0 -0
  1917. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/lib/test/unit/autorunner.rb +0 -0
  1918. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/lib/test/unit/code-snippet-fetcher.rb +0 -0
  1919. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/lib/test/unit/collector/descendant.rb +0 -0
  1920. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/lib/test/unit/collector/dir.rb +0 -0
  1921. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/lib/test/unit/collector/load.rb +0 -0
  1922. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/lib/test/unit/collector/objectspace.rb +0 -0
  1923. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/lib/test/unit/collector/xml.rb +0 -0
  1924. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/lib/test/unit/collector.rb +0 -0
  1925. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/lib/test/unit/color-scheme.rb +0 -0
  1926. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/lib/test/unit/color.rb +0 -0
  1927. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/lib/test/unit/data-sets.rb +0 -0
  1928. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/lib/test/unit/data.rb +0 -0
  1929. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/lib/test/unit/diff.rb +0 -0
  1930. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/lib/test/unit/error.rb +0 -0
  1931. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/lib/test/unit/exception-handler.rb +0 -0
  1932. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/lib/test/unit/failure.rb +0 -0
  1933. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/lib/test/unit/fault-location-detector.rb +0 -0
  1934. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/lib/test/unit/fixture.rb +0 -0
  1935. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/lib/test/unit/notification.rb +0 -0
  1936. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/lib/test/unit/omission.rb +0 -0
  1937. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/lib/test/unit/pending.rb +0 -0
  1938. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/lib/test/unit/priority.rb +0 -0
  1939. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/lib/test/unit/runner/console.rb +0 -0
  1940. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/lib/test/unit/runner/emacs.rb +0 -0
  1941. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/lib/test/unit/runner/xml.rb +0 -0
  1942. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/lib/test/unit/test-suite-creator.rb +0 -0
  1943. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/lib/test/unit/testcase.rb +0 -0
  1944. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/lib/test/unit/testresult.rb +0 -0
  1945. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/lib/test/unit/testsuite.rb +0 -0
  1946. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/lib/test/unit/ui/console/outputlevel.rb +0 -0
  1947. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/lib/test/unit/ui/console/testrunner.rb +0 -0
  1948. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/lib/test/unit/ui/emacs/testrunner.rb +0 -0
  1949. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/lib/test/unit/ui/testrunner.rb +0 -0
  1950. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/lib/test/unit/ui/testrunnermediator.rb +0 -0
  1951. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/lib/test/unit/ui/testrunnerutilities.rb +0 -0
  1952. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/lib/test/unit/ui/xml/testrunner.rb +0 -0
  1953. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/lib/test/unit/util/backtracefilter.rb +0 -0
  1954. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/lib/test/unit/util/memory-usage.rb +0 -0
  1955. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/lib/test/unit/util/method-owner-finder.rb +0 -0
  1956. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/lib/test/unit/util/observable.rb +0 -0
  1957. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/lib/test/unit/util/output.rb +0 -0
  1958. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/lib/test/unit/util/procwrapper.rb +0 -0
  1959. data/vendor/bundle/ruby/3.1.0/gems/test-unit-3.5.5/lib/test/unit/version.rb +5 -0
  1960. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/lib/test/unit/warning.rb +0 -0
  1961. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/lib/test/unit.rb +0 -0
  1962. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/lib/test-unit.rb +0 -0
  1963. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/sample/adder.rb +0 -0
  1964. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/sample/subtracter.rb +0 -0
  1965. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/sample/test_adder.rb +0 -0
  1966. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/sample/test_subtracter.rb +0 -0
  1967. data/vendor/bundle/ruby/3.1.0/gems/{test-unit-3.5.3 → test-unit-3.5.5}/sample/test_user.rb +0 -0
  1968. data/vendor/bundle/ruby/3.1.0/specifications/addressable-2.8.1.gemspec +2 -2
  1969. data/vendor/bundle/ruby/3.1.0/specifications/bundler-2.3.7.gemspec +25 -0
  1970. data/vendor/bundle/ruby/3.1.0/specifications/capybara-3.36.0.gemspec +92 -0
  1971. data/vendor/bundle/ruby/3.1.0/specifications/childprocess-4.1.0.gemspec +2 -2
  1972. data/vendor/bundle/ruby/3.1.0/specifications/coveralls-0.8.23.gemspec +2 -2
  1973. data/vendor/bundle/ruby/3.1.0/specifications/debug-1.6.3.gemspec +39 -0
  1974. data/vendor/bundle/ruby/3.1.0/specifications/diff-lcs-1.5.0.gemspec +2 -2
  1975. data/vendor/bundle/ruby/3.1.0/specifications/docile-1.4.0.gemspec +2 -2
  1976. data/vendor/bundle/ruby/3.1.0/specifications/emot-0.0.4.gemspec +2 -2
  1977. data/vendor/bundle/ruby/3.1.0/specifications/faraday-2.5.2.gemspec +0 -0
  1978. data/vendor/bundle/ruby/3.1.0/specifications/faraday-net_http-3.0.0.gemspec +2 -2
  1979. data/vendor/bundle/ruby/3.1.0/specifications/fastimage-2.2.6.gemspec +2 -2
  1980. data/vendor/bundle/ruby/3.1.0/specifications/hikidoc-0.1.0.gemspec +2 -2
  1981. data/vendor/bundle/ruby/3.1.0/specifications/irb-1.4.2.gemspec +34 -0
  1982. data/vendor/bundle/ruby/3.1.0/specifications/jasmine-2.99.0.gemspec +2 -2
  1983. data/vendor/bundle/ruby/3.1.0/specifications/jasmine-core-2.99.2.gemspec +2 -2
  1984. data/vendor/bundle/ruby/3.1.0/specifications/json-2.6.2.gemspec +0 -0
  1985. data/vendor/bundle/ruby/3.1.0/specifications/launchy-2.5.0.gemspec +2 -2
  1986. data/vendor/bundle/ruby/3.1.0/specifications/mail-2.7.1.gemspec +2 -2
  1987. data/vendor/bundle/ruby/3.1.0/specifications/matrix-0.4.2.gemspec +2 -2
  1988. data/vendor/bundle/ruby/3.1.0/specifications/mime-types-3.4.1.gemspec +2 -2
  1989. data/vendor/bundle/ruby/3.1.0/specifications/mime-types-data-3.2022.0105.gemspec +2 -2
  1990. data/vendor/bundle/ruby/3.1.0/specifications/mini_mime-1.1.2.gemspec +2 -2
  1991. data/vendor/bundle/ruby/3.1.0/specifications/net-protocol-0.1.3.gemspec +2 -2
  1992. data/vendor/bundle/ruby/3.1.0/specifications/net-smtp-0.3.3.gemspec +32 -0
  1993. data/vendor/bundle/ruby/3.1.0/specifications/nokogiri-1.13.9-x86_64-linux.gemspec +69 -0
  1994. data/vendor/bundle/ruby/3.1.0/specifications/octokit-4.25.1.gemspec +36 -0
  1995. data/vendor/bundle/ruby/3.1.0/specifications/phantomjs-2.1.1.0.gemspec +2 -2
  1996. data/vendor/bundle/ruby/3.1.0/specifications/pit-0.0.7.gemspec +2 -2
  1997. data/vendor/bundle/ruby/3.1.0/specifications/power_assert-2.0.1.gemspec +2 -2
  1998. data/vendor/bundle/ruby/3.1.0/specifications/public_suffix-5.0.0.gemspec +2 -2
  1999. data/vendor/bundle/ruby/3.1.0/specifications/rack-3.0.1.gemspec +40 -0
  2000. data/vendor/bundle/ruby/3.1.0/specifications/rack-test-2.0.2.gemspec +2 -2
  2001. data/vendor/bundle/ruby/3.1.0/specifications/racksh-1.0.0.gemspec +2 -2
  2002. data/vendor/bundle/ruby/3.1.0/specifications/rackup-0.2.3.gemspec +43 -0
  2003. data/vendor/bundle/ruby/3.1.0/specifications/rake-13.0.6.gemspec +2 -2
  2004. data/vendor/bundle/ruby/3.1.0/specifications/redcarpet-3.5.1.gemspec +2 -2
  2005. data/vendor/bundle/ruby/3.1.0/specifications/regexp_parser-2.5.0.gemspec +2 -2
  2006. data/vendor/bundle/ruby/3.1.0/specifications/rexml-3.2.5.gemspec +2 -2
  2007. data/vendor/bundle/ruby/3.1.0/specifications/rspec-3.12.0.gemspec +39 -0
  2008. data/vendor/bundle/ruby/3.1.0/specifications/rspec-core-3.12.0.gemspec +53 -0
  2009. data/vendor/bundle/ruby/3.1.0/specifications/rspec-expectations-3.12.0.gemspec +44 -0
  2010. data/vendor/bundle/ruby/3.1.0/specifications/rspec-mocks-3.12.0.gemspec +44 -0
  2011. data/vendor/bundle/ruby/3.1.0/specifications/rspec-support-3.12.0.gemspec +36 -0
  2012. data/vendor/bundle/ruby/3.1.0/specifications/rubyzip-2.3.2.gemspec +2 -2
  2013. data/vendor/bundle/ruby/3.1.0/specifications/sawyer-0.9.2.gemspec +2 -2
  2014. data/vendor/bundle/ruby/3.1.0/specifications/selenium-webdriver-4.1.0.gemspec +58 -0
  2015. data/vendor/bundle/ruby/3.1.0/specifications/sequel-5.62.0.gemspec +46 -0
  2016. data/vendor/bundle/ruby/3.1.0/specifications/simplecov-0.16.1.gemspec +2 -2
  2017. data/vendor/bundle/ruby/3.1.0/specifications/simplecov-html-0.10.2.gemspec +2 -2
  2018. data/vendor/bundle/ruby/3.1.0/specifications/sqlite3-1.5.4-x86_64-linux.gemspec +41 -0
  2019. data/vendor/bundle/ruby/3.1.0/specifications/sync-0.5.0.gemspec +2 -2
  2020. data/vendor/bundle/ruby/3.1.0/specifications/term-ansicolor-1.7.1.gemspec +2 -2
  2021. data/vendor/bundle/ruby/3.1.0/specifications/test-unit-3.5.5.gemspec +41 -0
  2022. data/vendor/bundle/ruby/3.1.0/specifications/thor-1.2.1.gemspec +2 -2
  2023. data/vendor/bundle/ruby/3.1.0/specifications/timeout-0.3.0.gemspec +2 -2
  2024. data/vendor/bundle/ruby/3.1.0/specifications/tins-1.31.1.gemspec +2 -2
  2025. data/vendor/bundle/ruby/3.1.0/specifications/webrick-1.7.0.gemspec +2 -2
  2026. data/vendor/bundle/ruby/3.1.0/specifications/xpath-3.2.0.gemspec +2 -2
  2027. metadata +1973 -1728
  2028. data/vendor/bundle/ruby/3.1.0/cache/capybara-3.37.1.gem +0 -0
  2029. data/vendor/bundle/ruby/3.1.0/cache/debug-1.6.2.gem +0 -0
  2030. data/vendor/bundle/ruby/3.1.0/cache/net-smtp-0.3.1.gem +0 -0
  2031. data/vendor/bundle/ruby/3.1.0/cache/nokogiri-1.13.8-x86_64-linux.gem +0 -0
  2032. data/vendor/bundle/ruby/3.1.0/cache/octokit-5.3.0.gem +0 -0
  2033. data/vendor/bundle/ruby/3.1.0/cache/rack-2.2.4.gem +0 -0
  2034. data/vendor/bundle/ruby/3.1.0/cache/reline-0.3.1.gem +0 -0
  2035. data/vendor/bundle/ruby/3.1.0/cache/rspec-3.11.0.gem +0 -0
  2036. data/vendor/bundle/ruby/3.1.0/cache/rspec-core-3.11.0.gem +0 -0
  2037. data/vendor/bundle/ruby/3.1.0/cache/rspec-expectations-3.11.0.gem +0 -0
  2038. data/vendor/bundle/ruby/3.1.0/cache/rspec-mocks-3.11.1.gem +0 -0
  2039. data/vendor/bundle/ruby/3.1.0/cache/rspec-support-3.11.0.gem +0 -0
  2040. data/vendor/bundle/ruby/3.1.0/cache/selenium-webdriver-4.4.0.gem +0 -0
  2041. data/vendor/bundle/ruby/3.1.0/cache/sequel-5.59.0.gem +0 -0
  2042. data/vendor/bundle/ruby/3.1.0/cache/sqlite3-1.4.4.gem +0 -0
  2043. data/vendor/bundle/ruby/3.1.0/cache/test-unit-3.5.3.gem +0 -0
  2044. data/vendor/bundle/ruby/3.1.0/cache/websocket-1.2.9.gem +0 -0
  2045. data/vendor/bundle/ruby/3.1.0/extensions/x86_64-linux/3.1.0/debug-1.6.2/debug/debug.so +0 -0
  2046. data/vendor/bundle/ruby/3.1.0/extensions/x86_64-linux/3.1.0/debug-1.6.2/gem_make.out +0 -16
  2047. data/vendor/bundle/ruby/3.1.0/extensions/x86_64-linux/3.1.0/sqlite3-1.4.4/gem.build_complete +0 -0
  2048. data/vendor/bundle/ruby/3.1.0/extensions/x86_64-linux/3.1.0/sqlite3-1.4.4/gem_make.out +0 -90
  2049. data/vendor/bundle/ruby/3.1.0/extensions/x86_64-linux/3.1.0/sqlite3-1.4.4/mkmf.log +0 -620
  2050. data/vendor/bundle/ruby/3.1.0/extensions/x86_64-linux/3.1.0/sqlite3-1.4.4/sqlite3/sqlite3_native.so +0 -0
  2051. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/History.md +0 -1957
  2052. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/README.md +0 -1108
  2053. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/lib/capybara/driver/node.rb +0 -143
  2054. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/lib/capybara/dsl.rb +0 -59
  2055. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/lib/capybara/helpers.rb +0 -123
  2056. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/lib/capybara/minitest/spec.rb +0 -267
  2057. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/lib/capybara/node/element.rb +0 -613
  2058. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/lib/capybara/node/finders.rb +0 -333
  2059. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/lib/capybara/queries/selector_query.rb +0 -758
  2060. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/lib/capybara/rack_test/browser.rb +0 -193
  2061. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/lib/capybara/rack_test/driver.rb +0 -110
  2062. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/lib/capybara/rack_test/node.rb +0 -328
  2063. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/lib/capybara/registration_container.rb +0 -41
  2064. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/lib/capybara/rspec/matchers/have_selector.rb +0 -77
  2065. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/lib/capybara/rspec/matchers.rb +0 -202
  2066. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/lib/capybara/selector/definition.rb +0 -280
  2067. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/lib/capybara/selector/selector.rb +0 -159
  2068. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/lib/capybara/selenium/driver.rb +0 -554
  2069. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/lib/capybara/selenium/node.rb +0 -628
  2070. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/lib/capybara/server/animation_disabler.rb +0 -81
  2071. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/lib/capybara/session/config.rb +0 -126
  2072. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/lib/capybara/session.rb +0 -948
  2073. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/lib/capybara/spec/session/all_spec.rb +0 -274
  2074. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/lib/capybara/spec/session/assert_text_spec.rb +0 -258
  2075. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/lib/capybara/spec/session/find_spec.rb +0 -537
  2076. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/lib/capybara/spec/session/has_current_path_spec.rb +0 -151
  2077. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/lib/capybara/spec/session/has_field_spec.rb +0 -389
  2078. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/lib/capybara/spec/session/has_link_spec.rb +0 -69
  2079. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/lib/capybara/spec/session/has_select_spec.rb +0 -310
  2080. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/lib/capybara/spec/session/has_selector_spec.rb +0 -217
  2081. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/lib/capybara/spec/session/has_text_spec.rb +0 -379
  2082. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/lib/capybara/spec/session/node_spec.rb +0 -1354
  2083. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/lib/capybara/spec/session/visit_spec.rb +0 -224
  2084. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/lib/capybara/spec/session/window/window_spec.rb +0 -203
  2085. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/lib/capybara/spec/test_app.rb +0 -286
  2086. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/lib/capybara/spec/views/with_shadow.erb +0 -31
  2087. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/lib/capybara/version.rb +0 -5
  2088. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/lib/capybara/window.rb +0 -142
  2089. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/lib/capybara.rb +0 -518
  2090. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/spec/dsl_spec.rb +0 -289
  2091. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/spec/fixtures/selenium_driver_rspec_failure.rb +0 -13
  2092. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/spec/fixtures/selenium_driver_rspec_success.rb +0 -13
  2093. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/spec/rack_test_spec.rb +0 -289
  2094. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/spec/result_spec.rb +0 -193
  2095. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/spec/rspec/features_spec.rb +0 -101
  2096. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/spec/rspec/scenarios_spec.rb +0 -23
  2097. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/spec/sauce_spec_chrome.rb +0 -43
  2098. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/spec/selector_spec.rb +0 -528
  2099. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/spec/selenium_spec_chrome.rb +0 -206
  2100. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/spec/selenium_spec_firefox.rb +0 -215
  2101. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/spec/selenium_spec_safari.rb +0 -160
  2102. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/spec/server_spec.rb +0 -303
  2103. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/spec/shared_selenium_session.rb +0 -568
  2104. data/vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/spec/spec_helper.rb +0 -100
  2105. data/vendor/bundle/ruby/3.1.0/gems/debug-1.6.2/CONTRIBUTING.md +0 -561
  2106. data/vendor/bundle/ruby/3.1.0/gems/debug-1.6.2/README.md +0 -913
  2107. data/vendor/bundle/ruby/3.1.0/gems/debug-1.6.2/exe/rdbg +0 -38
  2108. data/vendor/bundle/ruby/3.1.0/gems/debug-1.6.2/ext/debug/Makefile +0 -267
  2109. data/vendor/bundle/ruby/3.1.0/gems/debug-1.6.2/ext/debug/debug.o +0 -0
  2110. data/vendor/bundle/ruby/3.1.0/gems/debug-1.6.2/ext/debug/debug.so +0 -0
  2111. data/vendor/bundle/ruby/3.1.0/gems/debug-1.6.2/ext/debug/debug_version.h +0 -1
  2112. data/vendor/bundle/ruby/3.1.0/gems/debug-1.6.2/ext/debug/iseq_collector.o +0 -0
  2113. data/vendor/bundle/ruby/3.1.0/gems/debug-1.6.2/lib/debug/client.rb +0 -245
  2114. data/vendor/bundle/ruby/3.1.0/gems/debug-1.6.2/lib/debug/debug.so +0 -0
  2115. data/vendor/bundle/ruby/3.1.0/gems/debug-1.6.2/lib/debug/server_cdp.rb +0 -1144
  2116. data/vendor/bundle/ruby/3.1.0/gems/debug-1.6.2/lib/debug/server_dap.rb +0 -975
  2117. data/vendor/bundle/ruby/3.1.0/gems/debug-1.6.2/lib/debug/session.rb +0 -2422
  2118. data/vendor/bundle/ruby/3.1.0/gems/debug-1.6.2/lib/debug/thread_client.rb +0 -1299
  2119. data/vendor/bundle/ruby/3.1.0/gems/debug-1.6.2/lib/debug/version.rb +0 -5
  2120. data/vendor/bundle/ruby/3.1.0/gems/debug-1.6.2/misc/README.md.erb +0 -604
  2121. data/vendor/bundle/ruby/3.1.0/gems/net-smtp-0.3.1/lib/net/smtp.rb +0 -1195
  2122. data/vendor/bundle/ruby/3.1.0/gems/net-smtp-0.3.1/net-smtp.gemspec +0 -35
  2123. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.8-x86_64-linux/dependencies.yml +0 -23
  2124. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.8-x86_64-linux/ext/nokogiri/extconf.rb +0 -1010
  2125. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.8-x86_64-linux/ext/nokogiri/include/libexslt/exsltconfig.h +0 -70
  2126. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.8-x86_64-linux/ext/nokogiri/include/libexslt/exsltexports.h +0 -140
  2127. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.8-x86_64-linux/ext/nokogiri/include/libxml2/libxml/DOCBparser.h +0 -96
  2128. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.8-x86_64-linux/ext/nokogiri/include/libxml2/libxml/SAX.h +0 -173
  2129. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.8-x86_64-linux/ext/nokogiri/include/libxml2/libxml/SAX2.h +0 -178
  2130. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.8-x86_64-linux/ext/nokogiri/include/libxml2/libxml/dict.h +0 -79
  2131. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.8-x86_64-linux/ext/nokogiri/include/libxml2/libxml/encoding.h +0 -245
  2132. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.8-x86_64-linux/ext/nokogiri/include/libxml2/libxml/entities.h +0 -151
  2133. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.8-x86_64-linux/ext/nokogiri/include/libxml2/libxml/globals.h +0 -508
  2134. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.8-x86_64-linux/ext/nokogiri/include/libxml2/libxml/nanoftp.h +0 -163
  2135. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.8-x86_64-linux/ext/nokogiri/include/libxml2/libxml/parser.h +0 -1243
  2136. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.8-x86_64-linux/ext/nokogiri/include/libxml2/libxml/parserInternals.h +0 -644
  2137. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.8-x86_64-linux/ext/nokogiri/include/libxml2/libxml/relaxng.h +0 -217
  2138. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.8-x86_64-linux/ext/nokogiri/include/libxml2/libxml/schematron.h +0 -142
  2139. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.8-x86_64-linux/ext/nokogiri/include/libxml2/libxml/threads.h +0 -89
  2140. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.8-x86_64-linux/ext/nokogiri/include/libxml2/libxml/tree.h +0 -1311
  2141. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.8-x86_64-linux/ext/nokogiri/include/libxml2/libxml/valid.h +0 -458
  2142. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.8-x86_64-linux/ext/nokogiri/include/libxml2/libxml/xmlerror.h +0 -946
  2143. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.8-x86_64-linux/ext/nokogiri/include/libxml2/libxml/xmlmemory.h +0 -224
  2144. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.8-x86_64-linux/ext/nokogiri/include/libxml2/libxml/xmlschemastypes.h +0 -151
  2145. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.8-x86_64-linux/ext/nokogiri/include/libxml2/libxml/xmlversion.h +0 -485
  2146. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.8-x86_64-linux/ext/nokogiri/include/libxml2/libxml/xpath.h +0 -564
  2147. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.8-x86_64-linux/ext/nokogiri/include/libxml2/libxml/xpointer.h +0 -114
  2148. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.8-x86_64-linux/ext/nokogiri/include/libxslt/xsltconfig.h +0 -180
  2149. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.8-x86_64-linux/ext/nokogiri/include/libxslt/xsltexports.h +0 -142
  2150. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.8-x86_64-linux/ext/nokogiri/include/libxslt/xsltlocale.h +0 -76
  2151. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.8-x86_64-linux/ext/nokogiri/include/libxslt/xsltutils.h +0 -313
  2152. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.8-x86_64-linux/ext/nokogiri/nokogiri.h +0 -231
  2153. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.8-x86_64-linux/ext/nokogiri/xml_document.c +0 -680
  2154. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.8-x86_64-linux/ext/nokogiri/xml_namespace.c +0 -120
  2155. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.8-x86_64-linux/ext/nokogiri/xml_node.c +0 -2165
  2156. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.8-x86_64-linux/ext/nokogiri/xml_xpath_context.c +0 -406
  2157. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.8-x86_64-linux/lib/nokogiri/2.6/nokogiri.so +0 -0
  2158. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.8-x86_64-linux/lib/nokogiri/2.7/nokogiri.so +0 -0
  2159. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.8-x86_64-linux/lib/nokogiri/3.0/nokogiri.so +0 -0
  2160. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.8-x86_64-linux/lib/nokogiri/3.1/nokogiri.so +0 -0
  2161. data/vendor/bundle/ruby/3.1.0/gems/nokogiri-1.13.8-x86_64-linux/lib/nokogiri/version/constant.rb +0 -6
  2162. data/vendor/bundle/ruby/3.1.0/gems/octokit-5.3.0/README.md +0 -821
  2163. data/vendor/bundle/ruby/3.1.0/gems/octokit-5.3.0/lib/octokit/client/actions_workflow_jobs.rb +0 -61
  2164. data/vendor/bundle/ruby/3.1.0/gems/octokit-5.3.0/lib/octokit/client/actions_workflow_runs.rb +0 -121
  2165. data/vendor/bundle/ruby/3.1.0/gems/octokit-5.3.0/lib/octokit/client/actions_workflows.rb +0 -66
  2166. data/vendor/bundle/ruby/3.1.0/gems/octokit-5.3.0/lib/octokit/client/apps.rb +0 -222
  2167. data/vendor/bundle/ruby/3.1.0/gems/octokit-5.3.0/lib/octokit/client/community_profile.rb +0 -21
  2168. data/vendor/bundle/ruby/3.1.0/gems/octokit-5.3.0/lib/octokit/client/events.rb +0 -151
  2169. data/vendor/bundle/ruby/3.1.0/gems/octokit-5.3.0/lib/octokit/client/issues.rb +0 -367
  2170. data/vendor/bundle/ruby/3.1.0/gems/octokit-5.3.0/lib/octokit/client/licenses.rb +0 -42
  2171. data/vendor/bundle/ruby/3.1.0/gems/octokit-5.3.0/lib/octokit/client/oauth_applications.rb +0 -116
  2172. data/vendor/bundle/ruby/3.1.0/gems/octokit-5.3.0/lib/octokit/client/organizations.rb +0 -807
  2173. data/vendor/bundle/ruby/3.1.0/gems/octokit-5.3.0/lib/octokit/client/pages.rb +0 -61
  2174. data/vendor/bundle/ruby/3.1.0/gems/octokit-5.3.0/lib/octokit/client/projects.rb +0 -294
  2175. data/vendor/bundle/ruby/3.1.0/gems/octokit-5.3.0/lib/octokit/client/pub_sub_hubbub.rb +0 -111
  2176. data/vendor/bundle/ruby/3.1.0/gems/octokit-5.3.0/lib/octokit/client/pull_requests.rb +0 -313
  2177. data/vendor/bundle/ruby/3.1.0/gems/octokit-5.3.0/lib/octokit/client/reactions.rb +0 -153
  2178. data/vendor/bundle/ruby/3.1.0/gems/octokit-5.3.0/lib/octokit/client/repositories.rb +0 -779
  2179. data/vendor/bundle/ruby/3.1.0/gems/octokit-5.3.0/lib/octokit/client/reviews.rb +0 -227
  2180. data/vendor/bundle/ruby/3.1.0/gems/octokit-5.3.0/lib/octokit/client/search.rb +0 -104
  2181. data/vendor/bundle/ruby/3.1.0/gems/octokit-5.3.0/lib/octokit/client/source_import.rb +0 -156
  2182. data/vendor/bundle/ruby/3.1.0/gems/octokit-5.3.0/lib/octokit/client/traffic.rb +0 -64
  2183. data/vendor/bundle/ruby/3.1.0/gems/octokit-5.3.0/lib/octokit/client/users.rb +0 -435
  2184. data/vendor/bundle/ruby/3.1.0/gems/octokit-5.3.0/lib/octokit/client.rb +0 -268
  2185. data/vendor/bundle/ruby/3.1.0/gems/octokit-5.3.0/lib/octokit/configurable.rb +0 -155
  2186. data/vendor/bundle/ruby/3.1.0/gems/octokit-5.3.0/lib/octokit/connection.rb +0 -210
  2187. data/vendor/bundle/ruby/3.1.0/gems/octokit-5.3.0/lib/octokit/default.rb +0 -187
  2188. data/vendor/bundle/ruby/3.1.0/gems/octokit-5.3.0/lib/octokit/error.rb +0 -363
  2189. data/vendor/bundle/ruby/3.1.0/gems/octokit-5.3.0/lib/octokit/middleware/follow_redirects.rb +0 -135
  2190. data/vendor/bundle/ruby/3.1.0/gems/octokit-5.3.0/lib/octokit/rate_limit.rb +0 -33
  2191. data/vendor/bundle/ruby/3.1.0/gems/octokit-5.3.0/lib/octokit/repository.rb +0 -95
  2192. data/vendor/bundle/ruby/3.1.0/gems/octokit-5.3.0/lib/octokit/version.rb +0 -19
  2193. data/vendor/bundle/ruby/3.1.0/gems/octokit-5.3.0/octokit.gemspec +0 -25
  2194. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/CHANGELOG.md +0 -708
  2195. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/CONTRIBUTING.md +0 -136
  2196. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/MIT-LICENSE +0 -20
  2197. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/README.rdoc +0 -306
  2198. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/Rakefile +0 -130
  2199. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/SPEC.rdoc +0 -288
  2200. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/bin/rackup +0 -5
  2201. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/contrib/rack.png +0 -0
  2202. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/contrib/rack.svg +0 -150
  2203. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/contrib/rack_logo.svg +0 -164
  2204. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/contrib/rdoc.css +0 -412
  2205. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/example/lobster.ru +0 -6
  2206. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/example/protectedlobster.rb +0 -16
  2207. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/example/protectedlobster.ru +0 -10
  2208. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/auth/abstract/handler.rb +0 -39
  2209. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/auth/abstract/request.rb +0 -47
  2210. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/auth/digest/md5.rb +0 -131
  2211. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/auth/digest/nonce.rb +0 -54
  2212. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/auth/digest/params.rb +0 -54
  2213. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/auth/digest/request.rb +0 -43
  2214. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/body_proxy.rb +0 -45
  2215. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/builder.rb +0 -257
  2216. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/cascade.rb +0 -68
  2217. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/chunked.rb +0 -117
  2218. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/common_logger.rb +0 -83
  2219. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/conditional_get.rb +0 -83
  2220. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/content_length.rb +0 -38
  2221. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/content_type.rb +0 -30
  2222. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/core_ext/regexp.rb +0 -14
  2223. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/deflater.rb +0 -144
  2224. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/directory.rb +0 -199
  2225. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/etag.rb +0 -77
  2226. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/events.rb +0 -153
  2227. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/file.rb +0 -7
  2228. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/files.rb +0 -218
  2229. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/handler/cgi.rb +0 -59
  2230. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/handler/fastcgi.rb +0 -100
  2231. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/handler/lsws.rb +0 -61
  2232. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/handler/scgi.rb +0 -71
  2233. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/handler/thin.rb +0 -36
  2234. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/handler/webrick.rb +0 -129
  2235. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/handler.rb +0 -104
  2236. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/head.rb +0 -25
  2237. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/lint.rb +0 -806
  2238. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/lobster.rb +0 -70
  2239. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/lock.rb +0 -32
  2240. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/logger.rb +0 -20
  2241. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/media_type.rb +0 -43
  2242. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/method_override.rb +0 -52
  2243. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/mime.rb +0 -685
  2244. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/mock.rb +0 -273
  2245. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/multipart/generator.rb +0 -97
  2246. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/multipart/parser.rb +0 -365
  2247. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/multipart/uploaded_file.rb +0 -41
  2248. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/multipart.rb +0 -64
  2249. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/null_logger.rb +0 -39
  2250. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/query_parser.rb +0 -221
  2251. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/recursive.rb +0 -64
  2252. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/reloader.rb +0 -114
  2253. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/request.rb +0 -659
  2254. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/response.rb +0 -318
  2255. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/rewindable_input.rb +0 -94
  2256. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/runtime.rb +0 -34
  2257. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/sendfile.rb +0 -162
  2258. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/server.rb +0 -466
  2259. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/session/abstract/id.rb +0 -523
  2260. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/session/cookie.rb +0 -203
  2261. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/session/memcache.rb +0 -10
  2262. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/session/pool.rb +0 -85
  2263. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/show_exceptions.rb +0 -390
  2264. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/show_status.rb +0 -113
  2265. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/static.rb +0 -187
  2266. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/tempfile_reaper.rb +0 -22
  2267. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/urlmap.rb +0 -97
  2268. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/utils.rb +0 -616
  2269. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack/version.rb +0 -29
  2270. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/lib/rack.rb +0 -141
  2271. data/vendor/bundle/ruby/3.1.0/gems/rack-2.2.4/rack.gemspec +0 -46
  2272. data/vendor/bundle/ruby/3.1.0/gems/reline-0.3.1/COPYING +0 -56
  2273. data/vendor/bundle/ruby/3.1.0/gems/reline-0.3.1/README.md +0 -63
  2274. data/vendor/bundle/ruby/3.1.0/gems/reline-0.3.1/lib/reline/ansi.rb +0 -350
  2275. data/vendor/bundle/ruby/3.1.0/gems/reline-0.3.1/lib/reline/config.rb +0 -395
  2276. data/vendor/bundle/ruby/3.1.0/gems/reline-0.3.1/lib/reline/general_io.rb +0 -103
  2277. data/vendor/bundle/ruby/3.1.0/gems/reline-0.3.1/lib/reline/history.rb +0 -76
  2278. data/vendor/bundle/ruby/3.1.0/gems/reline-0.3.1/lib/reline/key_actor/base.rb +0 -19
  2279. data/vendor/bundle/ruby/3.1.0/gems/reline-0.3.1/lib/reline/key_actor/emacs.rb +0 -517
  2280. data/vendor/bundle/ruby/3.1.0/gems/reline-0.3.1/lib/reline/key_actor/vi_command.rb +0 -518
  2281. data/vendor/bundle/ruby/3.1.0/gems/reline-0.3.1/lib/reline/key_actor/vi_insert.rb +0 -517
  2282. data/vendor/bundle/ruby/3.1.0/gems/reline-0.3.1/lib/reline/key_actor.rb +0 -7
  2283. data/vendor/bundle/ruby/3.1.0/gems/reline-0.3.1/lib/reline/key_stroke.rb +0 -105
  2284. data/vendor/bundle/ruby/3.1.0/gems/reline-0.3.1/lib/reline/kill_ring.rb +0 -125
  2285. data/vendor/bundle/ruby/3.1.0/gems/reline-0.3.1/lib/reline/line_editor.rb +0 -3345
  2286. data/vendor/bundle/ruby/3.1.0/gems/reline-0.3.1/lib/reline/sibori.rb +0 -170
  2287. data/vendor/bundle/ruby/3.1.0/gems/reline-0.3.1/lib/reline/terminfo.rb +0 -171
  2288. data/vendor/bundle/ruby/3.1.0/gems/reline-0.3.1/lib/reline/unicode/east_asian_width.rb +0 -1164
  2289. data/vendor/bundle/ruby/3.1.0/gems/reline-0.3.1/lib/reline/unicode.rb +0 -665
  2290. data/vendor/bundle/ruby/3.1.0/gems/reline-0.3.1/lib/reline/version.rb +0 -3
  2291. data/vendor/bundle/ruby/3.1.0/gems/reline-0.3.1/lib/reline/windows.rb +0 -497
  2292. data/vendor/bundle/ruby/3.1.0/gems/reline-0.3.1/lib/reline.rb +0 -586
  2293. data/vendor/bundle/ruby/3.1.0/gems/reline-0.3.1/license_of_rb-readline +0 -25
  2294. data/vendor/bundle/ruby/3.1.0/gems/rspec-3.11.0/lib/rspec/version.rb +0 -5
  2295. data/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/Changelog.md +0 -2355
  2296. data/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/configuration.rb +0 -2383
  2297. data/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/formatters/exception_presenter.rb +0 -521
  2298. data/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/formatters/html_printer.rb +0 -414
  2299. data/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/option_parser.rb +0 -325
  2300. data/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/version.rb +0 -9
  2301. data/vendor/bundle/ruby/3.1.0/gems/rspec-expectations-3.11.0/Changelog.md +0 -1267
  2302. data/vendor/bundle/ruby/3.1.0/gems/rspec-expectations-3.11.0/lib/rspec/expectations/version.rb +0 -8
  2303. data/vendor/bundle/ruby/3.1.0/gems/rspec-expectations-3.11.0/lib/rspec/matchers/built_in/contain_exactly.rb +0 -302
  2304. data/vendor/bundle/ruby/3.1.0/gems/rspec-expectations-3.11.0/lib/rspec/matchers/built_in/count_expectation.rb +0 -169
  2305. data/vendor/bundle/ruby/3.1.0/gems/rspec-expectations-3.11.0/lib/rspec/matchers/built_in/exist.rb +0 -90
  2306. data/vendor/bundle/ruby/3.1.0/gems/rspec-expectations-3.11.0/lib/rspec/matchers/built_in/raise_error.rb +0 -271
  2307. data/vendor/bundle/ruby/3.1.0/gems/rspec-expectations-3.11.0/lib/rspec/matchers/built_in/throw_symbol.rb +0 -138
  2308. data/vendor/bundle/ruby/3.1.0/gems/rspec-expectations-3.11.0/lib/rspec/matchers/dsl.rb +0 -544
  2309. data/vendor/bundle/ruby/3.1.0/gems/rspec-expectations-3.11.0/lib/rspec/matchers.rb +0 -1041
  2310. data/vendor/bundle/ruby/3.1.0/gems/rspec-mocks-3.11.1/Changelog.md +0 -1193
  2311. data/vendor/bundle/ruby/3.1.0/gems/rspec-mocks-3.11.1/lib/rspec/mocks/error_generator.rb +0 -369
  2312. data/vendor/bundle/ruby/3.1.0/gems/rspec-mocks-3.11.1/lib/rspec/mocks/message_expectation.rb +0 -822
  2313. data/vendor/bundle/ruby/3.1.0/gems/rspec-mocks-3.11.1/lib/rspec/mocks/method_reference.rb +0 -202
  2314. data/vendor/bundle/ruby/3.1.0/gems/rspec-mocks-3.11.1/lib/rspec/mocks/verifying_message_expectation.rb +0 -54
  2315. data/vendor/bundle/ruby/3.1.0/gems/rspec-mocks-3.11.1/lib/rspec/mocks/version.rb +0 -9
  2316. data/vendor/bundle/ruby/3.1.0/gems/rspec-support-3.11.0/Changelog.md +0 -350
  2317. data/vendor/bundle/ruby/3.1.0/gems/rspec-support-3.11.0/lib/rspec/support/caller_filter.rb +0 -83
  2318. data/vendor/bundle/ruby/3.1.0/gems/rspec-support-3.11.0/lib/rspec/support/comparable_version.rb +0 -46
  2319. data/vendor/bundle/ruby/3.1.0/gems/rspec-support-3.11.0/lib/rspec/support/differ.rb +0 -215
  2320. data/vendor/bundle/ruby/3.1.0/gems/rspec-support-3.11.0/lib/rspec/support/encoded_string.rb +0 -161
  2321. data/vendor/bundle/ruby/3.1.0/gems/rspec-support-3.11.0/lib/rspec/support/method_signature_verifier.rb +0 -438
  2322. data/vendor/bundle/ruby/3.1.0/gems/rspec-support-3.11.0/lib/rspec/support/mutex.rb +0 -73
  2323. data/vendor/bundle/ruby/3.1.0/gems/rspec-support-3.11.0/lib/rspec/support/ruby_features.rb +0 -191
  2324. data/vendor/bundle/ruby/3.1.0/gems/rspec-support-3.11.0/lib/rspec/support/spec/in_sub_process.rb +0 -67
  2325. data/vendor/bundle/ruby/3.1.0/gems/rspec-support-3.11.0/lib/rspec/support/spec/stderr_splitter.rb +0 -75
  2326. data/vendor/bundle/ruby/3.1.0/gems/rspec-support-3.11.0/lib/rspec/support/version.rb +0 -7
  2327. data/vendor/bundle/ruby/3.1.0/gems/rspec-support-3.11.0/lib/rspec/support/with_keywords_when_needed.rb +0 -33
  2328. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/CHANGES +0 -2089
  2329. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/LICENSE +0 -202
  2330. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/NOTICE +0 -2
  2331. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/server.rb +0 -283
  2332. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/bidi/session.rb +0 -38
  2333. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/bidi.rb +0 -55
  2334. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/chrome/features.rb +0 -111
  2335. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/chrome/options.rb +0 -275
  2336. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/chrome.rb +0 -41
  2337. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/common/action_builder.rb +0 -300
  2338. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/common/driver.rb +0 -364
  2339. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/common/driver_extensions/has_bidi.rb +0 -38
  2340. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/common/driver_extensions/has_casting.rb +0 -87
  2341. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/common/driver_extensions/has_context.rb +0 -44
  2342. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/common/driver_extensions/has_log_events.rb +0 -144
  2343. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/common/driver_extensions/has_network_interception.rb +0 -71
  2344. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/common/driver_extensions/has_pinned_scripts.rb +0 -77
  2345. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/common/element.rb +0 -395
  2346. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/common/error.rb +0 -219
  2347. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/common/interactions/input_device.rb +0 -60
  2348. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/common/interactions/interaction.rb +0 -43
  2349. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/common/interactions/interactions.rb +0 -63
  2350. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/common/interactions/key_actions.rb +0 -149
  2351. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/common/interactions/key_input.rb +0 -50
  2352. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/common/interactions/none_input.rb +0 -38
  2353. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/common/interactions/pause.rb +0 -49
  2354. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/common/interactions/pointer_actions.rb +0 -352
  2355. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/common/interactions/pointer_cancel.rb +0 -45
  2356. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/common/interactions/pointer_event_properties.rb +0 -63
  2357. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/common/interactions/pointer_input.rb +0 -70
  2358. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/common/interactions/pointer_move.rb +0 -60
  2359. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/common/interactions/pointer_press.rb +0 -85
  2360. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/common/interactions/scroll.rb +0 -57
  2361. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/common/interactions/scroll_origin.rb +0 -48
  2362. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/common/interactions/typing_interaction.rb +0 -54
  2363. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/common/interactions/wheel_actions.rb +0 -113
  2364. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/common/interactions/wheel_input.rb +0 -42
  2365. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/common/keys.rb +0 -147
  2366. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/common/manager.rb +0 -150
  2367. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/common/options.rb +0 -177
  2368. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/common/platform.rb +0 -227
  2369. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/common/search_context.rb +0 -106
  2370. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/common/service_manager.rb +0 -150
  2371. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/common/shadow_root.rb +0 -87
  2372. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/common/socket_poller.rb +0 -126
  2373. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/common/takes_screenshot.rb +0 -66
  2374. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/common/virtual_authenticator/credential.rb +0 -83
  2375. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/common/virtual_authenticator/virtual_authenticator.rb +0 -73
  2376. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/common/virtual_authenticator/virtual_authenticator_options.rb +0 -62
  2377. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/common/websocket_connection.rb +0 -156
  2378. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/common/window.rb +0 -159
  2379. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/common/zipper.rb +0 -91
  2380. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/common.rb +0 -97
  2381. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/devtools/network_interceptor.rb +0 -176
  2382. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/devtools/request.rb +0 -67
  2383. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/devtools/response.rb +0 -66
  2384. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/devtools.rb +0 -87
  2385. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/edge/features.rb +0 -45
  2386. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/firefox/driver.rb +0 -63
  2387. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/firefox/features.rb +0 -63
  2388. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/firefox/options.rb +0 -185
  2389. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/firefox/profile.rb +0 -227
  2390. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/firefox/util.rb +0 -46
  2391. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/firefox.rb +0 -55
  2392. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/ie.rb +0 -28
  2393. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/remote/bridge.rb +0 -705
  2394. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/remote/commands.rb +0 -172
  2395. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/remote/driver.rb +0 -60
  2396. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/remote/http/default.rb +0 -173
  2397. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/remote/response.rb +0 -105
  2398. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/safari.rb +0 -59
  2399. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/support/cdp_client_generator.rb +0 -108
  2400. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/support/color.rb +0 -146
  2401. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/support/guards/guard_condition.rb +0 -52
  2402. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/support/guards.rb +0 -95
  2403. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver/version.rb +0 -24
  2404. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/lib/selenium/webdriver.rb +0 -102
  2405. data/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.4.0/selenium-webdriver.gemspec +0 -66
  2406. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/CHANGELOG +0 -1069
  2407. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/README.rdoc +0 -933
  2408. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/bin/sequel +0 -267
  2409. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/doc/advanced_associations.rdoc +0 -882
  2410. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/doc/association_basics.rdoc +0 -1823
  2411. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/doc/cheat_sheet.rdoc +0 -255
  2412. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/doc/model_hooks.rdoc +0 -254
  2413. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/doc/object_model.rdoc +0 -563
  2414. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/doc/opening_databases.rdoc +0 -425
  2415. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/doc/postgresql.rdoc +0 -611
  2416. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/doc/querying.rdoc +0 -1065
  2417. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/doc/schema_modification.rdoc +0 -679
  2418. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/doc/security.rdoc +0 -443
  2419. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/doc/sql.rdoc +0 -648
  2420. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/doc/testing.rdoc +0 -186
  2421. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/doc/transactions.rdoc +0 -250
  2422. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/doc/virtual_rows.rdoc +0 -265
  2423. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/lib/sequel/adapters/postgres.rb +0 -822
  2424. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/lib/sequel/adapters/shared/access.rb +0 -292
  2425. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/lib/sequel/adapters/shared/mssql.rb +0 -1163
  2426. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/lib/sequel/adapters/shared/mysql.rb +0 -1092
  2427. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/lib/sequel/adapters/shared/oracle.rb +0 -721
  2428. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/lib/sequel/adapters/shared/postgres.rb +0 -2298
  2429. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/lib/sequel/adapters/shared/sqlanywhere.rb +0 -457
  2430. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/lib/sequel/adapters/shared/sqlite.rb +0 -1035
  2431. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/lib/sequel/connection_pool.rb +0 -143
  2432. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/lib/sequel/database/connecting.rb +0 -331
  2433. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/lib/sequel/database/misc.rb +0 -576
  2434. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/lib/sequel/database/query.rb +0 -365
  2435. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/lib/sequel/dataset/actions.rb +0 -1293
  2436. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/lib/sequel/dataset/features.rb +0 -270
  2437. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/lib/sequel/dataset/misc.rb +0 -371
  2438. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/lib/sequel/dataset/query.rb +0 -1485
  2439. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/lib/sequel/dataset/sql.rb +0 -1811
  2440. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/lib/sequel/extensions/_model_pg_row.rb +0 -43
  2441. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/lib/sequel/extensions/_pretty_table.rb +0 -85
  2442. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/lib/sequel/extensions/async_thread_pool.rb +0 -438
  2443. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/lib/sequel/extensions/auto_literal_strings.rb +0 -74
  2444. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/lib/sequel/extensions/constraint_validations.rb +0 -510
  2445. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/lib/sequel/extensions/date_arithmetic.rb +0 -226
  2446. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/lib/sequel/extensions/is_distinct_from.rb +0 -139
  2447. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/lib/sequel/extensions/looser_typecasting.rb +0 -54
  2448. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/lib/sequel/extensions/migration.rb +0 -797
  2449. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/lib/sequel/extensions/named_timezones.rb +0 -168
  2450. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/lib/sequel/extensions/pg_array.rb +0 -527
  2451. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/lib/sequel/extensions/pg_extended_date_support.rb +0 -250
  2452. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/lib/sequel/extensions/pg_hstore.rb +0 -348
  2453. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/lib/sequel/extensions/pg_inet.rb +0 -137
  2454. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/lib/sequel/extensions/pg_interval.rb +0 -225
  2455. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/lib/sequel/extensions/pg_json.rb +0 -644
  2456. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/lib/sequel/extensions/pg_json_ops.rb +0 -804
  2457. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/lib/sequel/extensions/pg_multirange.rb +0 -372
  2458. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/lib/sequel/extensions/pg_range.rb +0 -565
  2459. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/lib/sequel/extensions/pg_row.rb +0 -582
  2460. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/lib/sequel/extensions/symbol_aref.rb +0 -53
  2461. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/lib/sequel/model/associations.rb +0 -4014
  2462. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/lib/sequel/model/base.rb +0 -2270
  2463. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/lib/sequel/plugins/auto_validations.rb +0 -264
  2464. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/lib/sequel/plugins/class_table_inheritance.rb +0 -439
  2465. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/lib/sequel/plugins/composition.rb +0 -205
  2466. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/lib/sequel/plugins/concurrent_eager_loading.rb +0 -174
  2467. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/lib/sequel/plugins/dirty.rb +0 -276
  2468. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/lib/sequel/plugins/finder.rb +0 -246
  2469. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/lib/sequel/plugins/nested_attributes.rb +0 -335
  2470. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/lib/sequel/plugins/pg_auto_constraint_validations.rb +0 -350
  2471. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/lib/sequel/plugins/sql_comments.rb +0 -189
  2472. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/lib/sequel/plugins/validation_helpers.rb +0 -324
  2473. data/vendor/bundle/ruby/3.1.0/gems/sequel-5.59.0/lib/sequel/version.rb +0 -25
  2474. data/vendor/bundle/ruby/3.1.0/gems/sqlite3-1.4.4/API_CHANGES.rdoc +0 -50
  2475. data/vendor/bundle/ruby/3.1.0/gems/sqlite3-1.4.4/CHANGELOG.rdoc +0 -333
  2476. data/vendor/bundle/ruby/3.1.0/gems/sqlite3-1.4.4/Gemfile +0 -20
  2477. data/vendor/bundle/ruby/3.1.0/gems/sqlite3-1.4.4/Manifest.txt +0 -59
  2478. data/vendor/bundle/ruby/3.1.0/gems/sqlite3-1.4.4/README.rdoc +0 -118
  2479. data/vendor/bundle/ruby/3.1.0/gems/sqlite3-1.4.4/Rakefile +0 -8
  2480. data/vendor/bundle/ruby/3.1.0/gems/sqlite3-1.4.4/appveyor.yml +0 -36
  2481. data/vendor/bundle/ruby/3.1.0/gems/sqlite3-1.4.4/ext/sqlite3/Makefile +0 -267
  2482. data/vendor/bundle/ruby/3.1.0/gems/sqlite3-1.4.4/ext/sqlite3/aggregator.c +0 -273
  2483. data/vendor/bundle/ruby/3.1.0/gems/sqlite3-1.4.4/ext/sqlite3/aggregator.o +0 -0
  2484. data/vendor/bundle/ruby/3.1.0/gems/sqlite3-1.4.4/ext/sqlite3/backup.o +0 -0
  2485. data/vendor/bundle/ruby/3.1.0/gems/sqlite3-1.4.4/ext/sqlite3/database.c +0 -854
  2486. data/vendor/bundle/ruby/3.1.0/gems/sqlite3-1.4.4/ext/sqlite3/database.o +0 -0
  2487. data/vendor/bundle/ruby/3.1.0/gems/sqlite3-1.4.4/ext/sqlite3/exception.o +0 -0
  2488. data/vendor/bundle/ruby/3.1.0/gems/sqlite3-1.4.4/ext/sqlite3/extconf.rb +0 -100
  2489. data/vendor/bundle/ruby/3.1.0/gems/sqlite3-1.4.4/ext/sqlite3/sqlite3.c +0 -161
  2490. data/vendor/bundle/ruby/3.1.0/gems/sqlite3-1.4.4/ext/sqlite3/sqlite3.o +0 -0
  2491. data/vendor/bundle/ruby/3.1.0/gems/sqlite3-1.4.4/ext/sqlite3/sqlite3_native.so +0 -0
  2492. data/vendor/bundle/ruby/3.1.0/gems/sqlite3-1.4.4/ext/sqlite3/sqlite3_ruby.h +0 -45
  2493. data/vendor/bundle/ruby/3.1.0/gems/sqlite3-1.4.4/ext/sqlite3/statement.o +0 -0
  2494. data/vendor/bundle/ruby/3.1.0/gems/sqlite3-1.4.4/lib/sqlite3/sqlite3_native.so +0 -0
  2495. data/vendor/bundle/ruby/3.1.0/gems/sqlite3-1.4.4/lib/sqlite3/version.rb +0 -25
  2496. data/vendor/bundle/ruby/3.1.0/gems/sqlite3-1.4.4/rakelib/faq.rake +0 -9
  2497. data/vendor/bundle/ruby/3.1.0/gems/sqlite3-1.4.4/rakelib/gem.rake +0 -40
  2498. data/vendor/bundle/ruby/3.1.0/gems/sqlite3-1.4.4/rakelib/native.rake +0 -59
  2499. data/vendor/bundle/ruby/3.1.0/gems/sqlite3-1.4.4/rakelib/vendor_sqlite3.rake +0 -108
  2500. data/vendor/bundle/ruby/3.1.0/gems/sqlite3-1.4.4/setup.rb +0 -1333
  2501. data/vendor/bundle/ruby/3.1.0/gems/sqlite3-1.4.4/test/helper.rb +0 -25
  2502. data/vendor/bundle/ruby/3.1.0/gems/sqlite3-1.4.4/test/test_database.rb +0 -531
  2503. data/vendor/bundle/ruby/3.1.0/gems/sqlite3-1.4.4/test/test_sqlite3.rb +0 -21
  2504. data/vendor/bundle/ruby/3.1.0/gems/test-unit-3.5.3/README.md +0 -98
  2505. data/vendor/bundle/ruby/3.1.0/gems/test-unit-3.5.3/doc/text/getting-started.md +0 -246
  2506. data/vendor/bundle/ruby/3.1.0/gems/test-unit-3.5.3/doc/text/news.md +0 -1675
  2507. data/vendor/bundle/ruby/3.1.0/gems/test-unit-3.5.3/lib/test/unit/assertions.rb +0 -2449
  2508. data/vendor/bundle/ruby/3.1.0/gems/test-unit-3.5.3/lib/test/unit/attribute.rb +0 -227
  2509. data/vendor/bundle/ruby/3.1.0/gems/test-unit-3.5.3/lib/test/unit/version.rb +0 -5
  2510. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/CHANGELOG.md +0 -114
  2511. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/Gemfile +0 -15
  2512. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/README.md +0 -131
  2513. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/Rakefile +0 -28
  2514. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/lib/websocket/error.rb +0 -129
  2515. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/lib/websocket/exception_handler.rb +0 -32
  2516. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/lib/websocket/frame/base.rb +0 -62
  2517. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/lib/websocket/frame/data.rb +0 -49
  2518. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/lib/websocket/frame/handler/base.rb +0 -41
  2519. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/lib/websocket/frame/handler/handler03.rb +0 -224
  2520. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/lib/websocket/frame/handler/handler04.rb +0 -18
  2521. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/lib/websocket/frame/handler/handler05.rb +0 -15
  2522. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/lib/websocket/frame/handler/handler07.rb +0 -78
  2523. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/lib/websocket/frame/handler/handler75.rb +0 -78
  2524. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/lib/websocket/frame/handler.rb +0 -15
  2525. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/lib/websocket/frame/incoming/client.rb +0 -17
  2526. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/lib/websocket/frame/incoming/server.rb +0 -17
  2527. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/lib/websocket/frame/incoming.rb +0 -52
  2528. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/lib/websocket/frame/outgoing/client.rb +0 -17
  2529. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/lib/websocket/frame/outgoing/server.rb +0 -17
  2530. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/lib/websocket/frame/outgoing.rb +0 -35
  2531. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/lib/websocket/frame.rb +0 -11
  2532. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/lib/websocket/handshake/base.rb +0 -128
  2533. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/lib/websocket/handshake/client.rb +0 -130
  2534. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/lib/websocket/handshake/handler/base.rb +0 -49
  2535. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/lib/websocket/handshake/handler/client.rb +0 -32
  2536. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/lib/websocket/handshake/handler/client01.rb +0 -20
  2537. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/lib/websocket/handshake/handler/client04.rb +0 -63
  2538. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/lib/websocket/handshake/handler/client11.rb +0 -22
  2539. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/lib/websocket/handshake/handler/client75.rb +0 -39
  2540. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/lib/websocket/handshake/handler/client76.rb +0 -105
  2541. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/lib/websocket/handshake/handler/server.rb +0 -10
  2542. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/lib/websocket/handshake/handler/server04.rb +0 -56
  2543. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/lib/websocket/handshake/handler/server75.rb +0 -40
  2544. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/lib/websocket/handshake/handler/server76.rb +0 -75
  2545. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/lib/websocket/handshake/handler.rb +0 -21
  2546. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/lib/websocket/handshake/server.rb +0 -179
  2547. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/lib/websocket/handshake.rb +0 -10
  2548. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/lib/websocket/nice_inspect.rb +0 -12
  2549. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/lib/websocket/version.rb +0 -5
  2550. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/lib/websocket.rb +0 -46
  2551. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/spec/frame/incoming_03_spec.rb +0 -120
  2552. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/spec/frame/incoming_04_spec.rb +0 -120
  2553. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/spec/frame/incoming_05_spec.rb +0 -136
  2554. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/spec/frame/incoming_07_spec.rb +0 -153
  2555. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/spec/frame/incoming_75_spec.rb +0 -62
  2556. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/spec/frame/incoming_common_spec.rb +0 -32
  2557. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/spec/frame/masking_spec.rb +0 -18
  2558. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/spec/frame/outgoing_03_spec.rb +0 -81
  2559. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/spec/frame/outgoing_04_spec.rb +0 -81
  2560. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/spec/frame/outgoing_05_spec.rb +0 -81
  2561. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/spec/frame/outgoing_07_spec.rb +0 -92
  2562. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/spec/frame/outgoing_75_spec.rb +0 -45
  2563. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/spec/frame/outgoing_common_spec.rb +0 -22
  2564. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/spec/handshake/client_04_spec.rb +0 -63
  2565. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/spec/handshake/client_11_spec.rb +0 -22
  2566. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/spec/handshake/client_75_spec.rb +0 -38
  2567. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/spec/handshake/client_76_spec.rb +0 -47
  2568. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/spec/handshake/server_04_spec.rb +0 -51
  2569. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/spec/handshake/server_75_spec.rb +0 -35
  2570. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/spec/handshake/server_76_spec.rb +0 -70
  2571. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/spec/spec_helper.rb +0 -14
  2572. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/spec/support/all_client_drafts.rb +0 -110
  2573. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/spec/support/all_server_drafts.rb +0 -121
  2574. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/spec/support/frames_base.rb +0 -15
  2575. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/spec/support/handshake_requests.rb +0 -91
  2576. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/spec/support/incoming_frames.rb +0 -77
  2577. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/spec/support/outgoing_frames.rb +0 -35
  2578. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/spec/support/overwrites.rb +0 -9
  2579. data/vendor/bundle/ruby/3.1.0/gems/websocket-1.2.9/websocket.gemspec +0 -23
  2580. data/vendor/bundle/ruby/3.1.0/specifications/capybara-3.37.1.gemspec +0 -92
  2581. data/vendor/bundle/ruby/3.1.0/specifications/debug-1.6.2.gemspec +0 -39
  2582. data/vendor/bundle/ruby/3.1.0/specifications/net-smtp-0.3.1.gemspec +0 -36
  2583. data/vendor/bundle/ruby/3.1.0/specifications/nokogiri-1.13.8-x86_64-linux.gemspec +0 -69
  2584. data/vendor/bundle/ruby/3.1.0/specifications/octokit-5.3.0.gemspec +0 -36
  2585. data/vendor/bundle/ruby/3.1.0/specifications/rack-2.2.4.gemspec +0 -41
  2586. data/vendor/bundle/ruby/3.1.0/specifications/reline-0.3.1.gemspec +0 -31
  2587. data/vendor/bundle/ruby/3.1.0/specifications/rspec-3.11.0.gemspec +0 -39
  2588. data/vendor/bundle/ruby/3.1.0/specifications/rspec-core-3.11.0.gemspec +0 -53
  2589. data/vendor/bundle/ruby/3.1.0/specifications/rspec-expectations-3.11.0.gemspec +0 -44
  2590. data/vendor/bundle/ruby/3.1.0/specifications/rspec-mocks-3.11.1.gemspec +0 -44
  2591. data/vendor/bundle/ruby/3.1.0/specifications/rspec-support-3.11.0.gemspec +0 -36
  2592. data/vendor/bundle/ruby/3.1.0/specifications/selenium-webdriver-4.4.0.gemspec +0 -62
  2593. data/vendor/bundle/ruby/3.1.0/specifications/sequel-5.59.0.gemspec +0 -46
  2594. data/vendor/bundle/ruby/3.1.0/specifications/sqlite3-1.4.4.gemspec +0 -51
  2595. data/vendor/bundle/ruby/3.1.0/specifications/test-unit-3.5.3.gemspec +0 -41
  2596. data/vendor/bundle/ruby/3.1.0/specifications/websocket-1.2.9.gemspec +0 -21
@@ -0,0 +1,4019 @@
1
+ # frozen-string-literal: true
2
+
3
+ module Sequel
4
+ class Model
5
+ # Associations are used in order to specify relationships between model classes
6
+ # that reflect relations between tables in the database using foreign keys.
7
+ module Associations
8
+ # Map of association type symbols to association reflection classes.
9
+ ASSOCIATION_TYPES = {}
10
+
11
+ # Set an empty association reflection hash in the model
12
+ def self.apply(model)
13
+ model.instance_exec do
14
+ @association_reflections = {}
15
+ @autoreloading_associations = {}
16
+ @cache_associations = true
17
+ @default_eager_limit_strategy = true
18
+ @default_association_options = {}
19
+ @default_association_type_options = {}
20
+ @dataset_module_class = DatasetModule
21
+ end
22
+ end
23
+
24
+ # The dataset module to use for classes using the associations plugin.
25
+ class DatasetModule < Model::DatasetModule
26
+ def_dataset_caching_method(self, :eager)
27
+ end
28
+
29
+ # AssociationReflection is a Hash subclass that keeps information on Sequel::Model associations. It
30
+ # provides methods to reduce internal code duplication. It should not
31
+ # be instantiated by the user.
32
+ class AssociationReflection < Hash
33
+ include Sequel::Inflections
34
+
35
+ # Name symbol for the _add internal association method
36
+ def _add_method
37
+ self[:_add_method]
38
+ end
39
+
40
+ # Name symbol for the _remove_all internal association method
41
+ def _remove_all_method
42
+ self[:_remove_all_method]
43
+ end
44
+
45
+ # Name symbol for the _remove internal association method
46
+ def _remove_method
47
+ self[:_remove_method]
48
+ end
49
+
50
+ # Name symbol for the _setter association method
51
+ def _setter_method
52
+ self[:_setter_method]
53
+ end
54
+
55
+ # Name symbol for the add association method
56
+ def add_method
57
+ self[:add_method]
58
+ end
59
+
60
+ # Name symbol for association method, the same as the name of the association.
61
+ def association_method
62
+ self[:name]
63
+ end
64
+
65
+ # The class associated to the current model class via this association
66
+ def associated_class
67
+ cached_fetch(:class) do
68
+ begin
69
+ constantize(self[:class_name])
70
+ rescue NameError => e
71
+ raise NameError, "#{e.message} (this happened when attempting to find the associated class for #{inspect})", e.backtrace
72
+ end
73
+ end
74
+ end
75
+
76
+ # The dataset associated via this association, with the non-instance specific
77
+ # changes already applied. This will be a joined dataset if the association
78
+ # requires joining tables.
79
+ def associated_dataset
80
+ cached_fetch(:_dataset){apply_dataset_changes(_associated_dataset)}
81
+ end
82
+
83
+ # Apply all non-instance specific changes to the given dataset and return it.
84
+ def apply_dataset_changes(ds)
85
+ ds = ds.with_extend(AssociationDatasetMethods).clone(:association_reflection => self)
86
+ if exts = self[:reverse_extend]
87
+ ds = ds.with_extend(*exts)
88
+ end
89
+ ds = ds.select(*select) if select
90
+ if c = self[:conditions]
91
+ ds = (c.is_a?(Array) && !Sequel.condition_specifier?(c)) ? ds.where(*c) : ds.where(c)
92
+ end
93
+ ds = ds.order(*self[:order]) if self[:order]
94
+ ds = ds.limit(*self[:limit]) if self[:limit]
95
+ ds = ds.limit(1).skip_limit_check if limit_to_single_row?
96
+ ds = ds.eager(self[:eager]) if self[:eager]
97
+ ds = ds.distinct if self[:distinct]
98
+ ds
99
+ end
100
+
101
+ # Apply all non-instance specific changes and the eager_block option to the given
102
+ # dataset and return it.
103
+ def apply_eager_dataset_changes(ds)
104
+ ds = apply_dataset_changes(ds)
105
+ if block = self[:eager_block]
106
+ ds = block.call(ds)
107
+ end
108
+ ds
109
+ end
110
+
111
+ # Apply the eager graph limit strategy to the dataset to graph into the current dataset, or return
112
+ # the dataset unmodified if no SQL limit strategy is needed.
113
+ def apply_eager_graph_limit_strategy(strategy, ds)
114
+ case strategy
115
+ when :distinct_on
116
+ apply_distinct_on_eager_limit_strategy(ds.order_prepend(*self[:order]))
117
+ when :window_function
118
+ apply_window_function_eager_limit_strategy(ds.order_prepend(*self[:order])).select(*ds.columns)
119
+ else
120
+ ds
121
+ end
122
+ end
123
+
124
+ # Apply an eager limit strategy to the dataset, or return the dataset
125
+ # unmodified if it doesn't need an eager limit strategy.
126
+ def apply_eager_limit_strategy(ds, strategy=eager_limit_strategy, limit_and_offset=limit_and_offset())
127
+ case strategy
128
+ when :distinct_on
129
+ apply_distinct_on_eager_limit_strategy(ds)
130
+ when :window_function
131
+ apply_window_function_eager_limit_strategy(ds, limit_and_offset)
132
+ else
133
+ ds
134
+ end
135
+ end
136
+
137
+ # Use DISTINCT ON and ORDER BY clauses to limit the results to the first record with matching keys.
138
+ def apply_distinct_on_eager_limit_strategy(ds)
139
+ keys = predicate_key
140
+ ds.distinct(*keys).order_prepend(*keys)
141
+ end
142
+
143
+ # Use a window function to limit the results of the eager loading dataset.
144
+ def apply_window_function_eager_limit_strategy(ds, limit_and_offset=limit_and_offset())
145
+ rn = ds.row_number_column
146
+ limit, offset = limit_and_offset
147
+ ds = ds.unordered.select_append{|o| o.row_number.function.over(:partition=>predicate_key, :order=>ds.opts[:order]).as(rn)}.from_self
148
+ ds = ds.order(rn) if ds.db.database_type == :mysql
149
+ ds = if !returns_array?
150
+ ds.where(rn => offset ? offset+1 : 1)
151
+ elsif offset
152
+ offset += 1
153
+ if limit
154
+ ds.where(rn => (offset...(offset+limit)))
155
+ else
156
+ ds.where{SQL::Identifier.new(rn) >= offset}
157
+ end
158
+ else
159
+ ds.where{SQL::Identifier.new(rn) <= limit}
160
+ end
161
+ end
162
+
163
+ # If the ruby eager limit strategy is being used, slice the array using the slice
164
+ # range to return the object(s) at the correct offset/limit.
165
+ def apply_ruby_eager_limit_strategy(rows, limit_and_offset = limit_and_offset())
166
+ name = self[:name]
167
+ return unless range = slice_range(limit_and_offset)
168
+ if returns_array?
169
+ rows.each{|o| o.associations[name] = o.associations[name][range] || []}
170
+ else
171
+ offset = range.begin
172
+ rows.each{|o| o.associations[name] = o.associations[name][offset]}
173
+ end
174
+ end
175
+
176
+ # Whether the associations cache should use an array when storing the
177
+ # associated records during eager loading.
178
+ def assign_singular?
179
+ !returns_array?
180
+ end
181
+
182
+ # Whether this association can have associated objects, given the current
183
+ # object. Should be false if obj cannot have associated objects because
184
+ # the necessary key columns are NULL.
185
+ def can_have_associated_objects?(obj)
186
+ true
187
+ end
188
+
189
+ # Whether you are able to clone from the given association type to the current
190
+ # association type, true by default only if the types match.
191
+ def cloneable?(ref)
192
+ ref[:type] == self[:type]
193
+ end
194
+
195
+ # Name symbol for the dataset association method
196
+ def dataset_method
197
+ self[:dataset_method]
198
+ end
199
+
200
+ # Whether the dataset needs a primary key to function, true by default.
201
+ def dataset_need_primary_key?
202
+ true
203
+ end
204
+
205
+ # Return the symbol used for the row number column if the window function
206
+ # eager limit strategy is being used, or nil otherwise.
207
+ def delete_row_number_column(ds=associated_dataset)
208
+ if eager_limit_strategy == :window_function
209
+ ds.row_number_column
210
+ end
211
+ end
212
+
213
+ # Return an dataset that will load the appropriate associated objects for
214
+ # the given object using this association.
215
+ def association_dataset_for(object)
216
+ condition = if can_have_associated_objects?(object)
217
+ predicate_keys.zip(predicate_key_values(object))
218
+ else
219
+ false
220
+ end
221
+
222
+ associated_dataset.where(condition)
223
+ end
224
+
225
+ ASSOCIATION_DATASET_PROC = proc{|r| r.association_dataset_for(self)}
226
+ # Proc used to create the association dataset method.
227
+ def association_dataset_proc
228
+ ASSOCIATION_DATASET_PROC
229
+ end
230
+
231
+ # The eager_graph limit strategy to use for this dataset
232
+ def eager_graph_limit_strategy(strategy)
233
+ if self[:limit] || !returns_array?
234
+ strategy = strategy[self[:name]] if strategy.is_a?(Hash)
235
+ case strategy
236
+ when true
237
+ true_eager_graph_limit_strategy
238
+ when Symbol
239
+ strategy
240
+ else
241
+ if returns_array? || offset
242
+ :ruby
243
+ end
244
+ end
245
+ end
246
+ end
247
+
248
+ # The eager limit strategy to use for this dataset.
249
+ def eager_limit_strategy
250
+ cached_fetch(:_eager_limit_strategy) do
251
+ if self[:limit] || !returns_array?
252
+ case s = cached_fetch(:eager_limit_strategy){default_eager_limit_strategy}
253
+ when true
254
+ true_eager_limit_strategy
255
+ else
256
+ s
257
+ end
258
+ end
259
+ end
260
+ end
261
+
262
+ # Eager load the associated objects using the hash of eager options,
263
+ # yielding each row to the block.
264
+ def eager_load_results(eo, &block)
265
+ rows = eo[:rows]
266
+ unless eo[:initialize_rows] == false
267
+ Sequel.synchronize_with(eo[:mutex]){initialize_association_cache(rows)}
268
+ end
269
+ if eo[:id_map]
270
+ ids = eo[:id_map].keys
271
+ return ids if ids.empty?
272
+ end
273
+ strategy = eager_limit_strategy
274
+ cascade = eo[:associations]
275
+ eager_limit = nil
276
+
277
+ if eo[:no_results]
278
+ no_results = true
279
+ elsif eo[:eager_block] || eo[:loader] == false || !use_placeholder_loader?
280
+ ds = eager_loading_dataset(eo)
281
+
282
+ strategy = ds.opts[:eager_limit_strategy] || strategy
283
+
284
+ eager_limit =
285
+ if el = ds.opts[:eager_limit]
286
+ raise Error, "The :eager_limit dataset option is not supported for associations returning a single record" unless returns_array?
287
+ strategy ||= true_eager_graph_limit_strategy
288
+ if el.is_a?(Array)
289
+ el
290
+ else
291
+ [el, nil]
292
+ end
293
+ else
294
+ limit_and_offset
295
+ end
296
+
297
+ strategy = true_eager_graph_limit_strategy if strategy == :union
298
+ # Correlated subqueries are not supported for regular eager loading
299
+ strategy = :ruby if strategy == :correlated_subquery
300
+ strategy = nil if strategy == :ruby && assign_singular?
301
+ objects = apply_eager_limit_strategy(ds, strategy, eager_limit).all
302
+
303
+ if strategy == :window_function
304
+ delete_rn = ds.row_number_column
305
+ objects.each{|obj| obj.values.delete(delete_rn)}
306
+ end
307
+ elsif strategy == :union
308
+ objects = []
309
+ ds = associated_dataset
310
+ loader = union_eager_loader
311
+ joiner = " UNION ALL "
312
+ ids.each_slice(subqueries_per_union).each do |slice|
313
+ objects.concat(ds.with_sql(slice.map{|k| loader.sql(*k)}.join(joiner)).to_a)
314
+ end
315
+ ds = ds.eager(cascade) if cascade
316
+ ds.send(:post_load, objects)
317
+ else
318
+ loader = placeholder_eager_loader
319
+ loader = loader.with_dataset{|dataset| dataset.eager(cascade)} if cascade
320
+ objects = loader.all(ids)
321
+ end
322
+
323
+ Sequel.synchronize_with(eo[:mutex]){objects.each(&block)} unless no_results
324
+
325
+ if strategy == :ruby
326
+ apply_ruby_eager_limit_strategy(rows, eager_limit || limit_and_offset)
327
+ end
328
+ end
329
+
330
+ # The key to use for the key hash when eager loading
331
+ def eager_loader_key
332
+ self[:eager_loader_key]
333
+ end
334
+
335
+ # By default associations do not need to select a key in an associated table
336
+ # to eagerly load.
337
+ def eager_loading_use_associated_key?
338
+ false
339
+ end
340
+
341
+ # Whether to eagerly graph a lazy dataset, true by default. If this
342
+ # is false, the association won't respect the :eager_graph option
343
+ # when loading the association for a single record.
344
+ def eager_graph_lazy_dataset?
345
+ true
346
+ end
347
+
348
+ # Whether additional conditions should be added when using the filter
349
+ # by associations support.
350
+ def filter_by_associations_add_conditions?
351
+ self[:conditions] || self[:eager_block] || self[:limit]
352
+ end
353
+
354
+ # The expression to use for the additional conditions to be added for
355
+ # the filter by association support, when the association itself is
356
+ # filtered. Works by using a subquery to test that the objects passed
357
+ # also meet the association filter criteria.
358
+ def filter_by_associations_conditions_expression(obj)
359
+ ds = filter_by_associations_conditions_dataset.where(filter_by_associations_conditions_subquery_conditions(obj))
360
+ {filter_by_associations_conditions_key=>ds}
361
+ end
362
+
363
+ # Finalize the association by first attempting to populate the thread-safe cache,
364
+ # and then transfering the thread-safe cache value to the association itself,
365
+ # so that a mutex is not needed to get the value.
366
+ def finalize
367
+ return unless cache = self[:cache]
368
+
369
+ finalizer = proc do |meth, key|
370
+ next if has_key?(key)
371
+
372
+ # Allow calling private methods to make sure caching is done appropriately
373
+ send(meth)
374
+ self[key] = cache.delete(key) if cache.has_key?(key)
375
+ end
376
+
377
+ finalize_settings.each(&finalizer)
378
+
379
+ unless self[:instance_specific]
380
+ finalizer.call(:associated_eager_dataset, :associated_eager_dataset)
381
+ finalizer.call(:filter_by_associations_conditions_dataset, :filter_by_associations_conditions_dataset)
382
+ end
383
+
384
+ nil
385
+ end
386
+
387
+ # Map of methods to cache keys used for finalizing associations.
388
+ FINALIZE_SETTINGS = {
389
+ :associated_class=>:class,
390
+ :associated_dataset=>:_dataset,
391
+ :eager_limit_strategy=>:_eager_limit_strategy,
392
+ :placeholder_loader=>:placeholder_loader,
393
+ :predicate_key=>:predicate_key,
394
+ :predicate_keys=>:predicate_keys,
395
+ :reciprocal=>:reciprocal,
396
+ }.freeze
397
+ def finalize_settings
398
+ FINALIZE_SETTINGS
399
+ end
400
+
401
+ # Whether to handle silent modification failure when adding/removing
402
+ # associated records, false by default.
403
+ def handle_silent_modification_failure?
404
+ false
405
+ end
406
+
407
+ # Initialize the associations cache for the current association for the given objects.
408
+ def initialize_association_cache(objects)
409
+ name = self[:name]
410
+ if assign_singular?
411
+ objects.each{|object| object.associations[name] = nil}
412
+ else
413
+ objects.each{|object| object.associations[name] = []}
414
+ end
415
+ end
416
+
417
+ # Show which type of reflection this is, and a guess at what code was used to create the
418
+ # association.
419
+ def inspect
420
+ o = self[:orig_opts].dup
421
+ o.delete(:class)
422
+ o.delete(:class_name)
423
+ o.delete(:block) unless o[:block]
424
+ o[:class] = self[:orig_class] if self[:orig_class]
425
+
426
+ "#<#{self.class} #{self[:model]}.#{self[:type]} #{self[:name].inspect}#{", #{o.inspect[1...-1]}" unless o.empty?}>"
427
+ end
428
+
429
+ # The limit and offset for this association (returned as a two element array).
430
+ def limit_and_offset
431
+ if (v = self[:limit]).is_a?(Array)
432
+ v
433
+ else
434
+ [v, nil]
435
+ end
436
+ end
437
+
438
+ # Whether the associated object needs a primary key to be added/removed,
439
+ # false by default.
440
+ def need_associated_primary_key?
441
+ false
442
+ end
443
+
444
+ # A placeholder literalizer that can be used to lazily load the association. If
445
+ # one can't be used, returns nil.
446
+ def placeholder_loader
447
+ if use_placeholder_loader?
448
+ cached_fetch(:placeholder_loader) do
449
+ Sequel::Dataset::PlaceholderLiteralizer.loader(associated_dataset) do |pl, ds|
450
+ ds = ds.where(Sequel.&(*predicate_keys.map{|k| SQL::BooleanExpression.new(:'=', k, pl.arg)}))
451
+ if self[:block]
452
+ ds = self[:block].call(ds)
453
+ end
454
+ ds
455
+ end
456
+ end
457
+ end
458
+ end
459
+
460
+ # The keys to use for loading of the regular dataset, as an array.
461
+ def predicate_keys
462
+ cached_fetch(:predicate_keys){Array(predicate_key)}
463
+ end
464
+
465
+ # The values that predicate_keys should match for objects to be associated.
466
+ def predicate_key_values(object)
467
+ predicate_key_methods.map{|k| object.get_column_value(k)}
468
+ end
469
+
470
+ # Qualify +col+ with the given table name.
471
+ def qualify(table, col)
472
+ transform(col) do |k|
473
+ case k
474
+ when Symbol, SQL::Identifier
475
+ SQL::QualifiedIdentifier.new(table, k)
476
+ else
477
+ Sequel::Qualifier.new(table).transform(k)
478
+ end
479
+ end
480
+ end
481
+
482
+ # Qualify col with the associated model's table name.
483
+ def qualify_assoc(col)
484
+ qualify(associated_class.table_name, col)
485
+ end
486
+
487
+ # Qualify col with the current model's table name.
488
+ def qualify_cur(col)
489
+ qualify(self[:model].table_name, col)
490
+ end
491
+
492
+ # Returns the reciprocal association variable, if one exists. The reciprocal
493
+ # association is the association in the associated class that is the opposite
494
+ # of the current association. For example, Album.many_to_one :artist and
495
+ # Artist.one_to_many :albums are reciprocal associations. This information is
496
+ # to populate reciprocal associations. For example, when you do this_artist.add_album(album)
497
+ # it sets album.artist to this_artist.
498
+ def reciprocal
499
+ cached_fetch(:reciprocal) do
500
+ possible_recips = []
501
+
502
+ associated_class.all_association_reflections.each do |assoc_reflect|
503
+ if reciprocal_association?(assoc_reflect)
504
+ possible_recips << assoc_reflect
505
+ end
506
+ end
507
+
508
+ if possible_recips.length == 1
509
+ cached_set(:reciprocal_type, possible_recips.first[:type]) if ambiguous_reciprocal_type?
510
+ possible_recips.first[:name]
511
+ end
512
+ end
513
+ end
514
+
515
+ # Whether the reciprocal of this association returns an array of objects instead of a single object,
516
+ # true by default.
517
+ def reciprocal_array?
518
+ true
519
+ end
520
+
521
+ # Name symbol for the remove_all_ association method
522
+ def remove_all_method
523
+ self[:remove_all_method]
524
+ end
525
+
526
+ # Whether associated objects need to be removed from the association before
527
+ # being destroyed in order to preserve referential integrity.
528
+ def remove_before_destroy?
529
+ true
530
+ end
531
+
532
+ # Name symbol for the remove_ association method
533
+ def remove_method
534
+ self[:remove_method]
535
+ end
536
+
537
+ # Whether to check that an object to be disassociated is already associated to this object, false by default.
538
+ def remove_should_check_existing?
539
+ false
540
+ end
541
+
542
+ # Whether this association returns an array of objects instead of a single object,
543
+ # true by default.
544
+ def returns_array?
545
+ true
546
+ end
547
+
548
+ # The columns to select when loading the association.
549
+ def select
550
+ self[:select]
551
+ end
552
+
553
+ # Whether to set the reciprocal association to self when loading associated
554
+ # records, false by default.
555
+ def set_reciprocal_to_self?
556
+ false
557
+ end
558
+
559
+ # Name symbol for the setter association method
560
+ def setter_method
561
+ self[:setter_method]
562
+ end
563
+
564
+ # The range used for slicing when using the :ruby eager limit strategy.
565
+ def slice_range(limit_and_offset = limit_and_offset())
566
+ limit, offset = limit_and_offset
567
+ if limit || offset
568
+ (offset||0)..(limit ? (offset||0)+limit-1 : -1)
569
+ end
570
+ end
571
+
572
+ private
573
+
574
+ # If the key exists in the reflection hash, return it.
575
+ # If the key doesn't exist and association reflections are uncached, then yield to get the value.
576
+ # If the key doesn't exist and association reflection are cached, check the cache and return
577
+ # the value if present, or yield to get the value, cache the value, and return it.
578
+ def cached_fetch(key)
579
+ fetch(key) do
580
+ return yield unless h = self[:cache]
581
+ Sequel.synchronize{return h[key] if h.has_key?(key)}
582
+ value = yield
583
+ Sequel.synchronize{h[key] = value}
584
+ end
585
+ end
586
+
587
+ # Cache the value at the given key if caching.
588
+ def cached_set(key, value)
589
+ return unless h = self[:cache]
590
+ Sequel.synchronize{h[key] = value}
591
+ end
592
+
593
+ # The base dataset used for the association, before any order/conditions
594
+ # options have been applied.
595
+ def _associated_dataset
596
+ associated_class.dataset
597
+ end
598
+
599
+ # Whether for the reciprocal type for the given association cannot be
600
+ # known in advantage, false by default.
601
+ def ambiguous_reciprocal_type?
602
+ false
603
+ end
604
+
605
+ # Apply a limit strategy to the given dataset so that filter by
606
+ # associations works with a limited dataset.
607
+ def apply_filter_by_associations_limit_strategy(ds)
608
+ case filter_by_associations_limit_strategy
609
+ when :distinct_on
610
+ apply_filter_by_associations_distinct_on_limit_strategy(ds)
611
+ when :window_function
612
+ apply_filter_by_associations_window_function_limit_strategy(ds)
613
+ else
614
+ ds
615
+ end
616
+ end
617
+
618
+ # Apply a distinct on eager limit strategy using IN with a subquery
619
+ # that uses DISTINCT ON to ensure only the first matching record for
620
+ # each key is included.
621
+ def apply_filter_by_associations_distinct_on_limit_strategy(ds)
622
+ k = filter_by_associations_limit_key
623
+ ds.where(k=>apply_distinct_on_eager_limit_strategy(associated_eager_dataset.select(*k)))
624
+ end
625
+
626
+ # Apply a distinct on eager limit strategy using IN with a subquery
627
+ # that uses a filter on the row_number window function to ensure
628
+ # that only rows inside the limit are returned.
629
+ def apply_filter_by_associations_window_function_limit_strategy(ds)
630
+ ds.where(filter_by_associations_limit_key=>apply_window_function_eager_limit_strategy(associated_eager_dataset.select(*filter_by_associations_limit_alias_key)).select(*filter_by_associations_limit_aliases))
631
+ end
632
+
633
+ # The associated_dataset with the eager_block callback already applied.
634
+ def associated_eager_dataset
635
+ cached_fetch(:associated_eager_dataset) do
636
+ ds = associated_dataset.unlimited
637
+ if block = self[:eager_block]
638
+ ds = block.call(ds)
639
+ end
640
+ ds
641
+ end
642
+ end
643
+
644
+ # The dataset to use for eager loading associated objects for multiple current objects,
645
+ # given the hash passed to the eager loader.
646
+ def eager_loading_dataset(eo=OPTS)
647
+ ds = eo[:dataset] || associated_eager_dataset
648
+ ds = eager_loading_set_predicate_condition(ds, eo)
649
+ if associations = eo[:associations]
650
+ ds = ds.eager(associations)
651
+ end
652
+ if block = eo[:eager_block]
653
+ orig_ds = ds
654
+ ds = block.call(ds)
655
+ end
656
+ if eager_loading_use_associated_key?
657
+ ds = if ds.opts[:eager_graph] && !orig_ds.opts[:eager_graph]
658
+ block.call(orig_ds.select_append(*associated_key_array))
659
+ else
660
+ ds.select_append(*associated_key_array)
661
+ end
662
+ end
663
+ if self[:eager_graph]
664
+ raise(Error, "cannot eagerly load a #{self[:type]} association that uses :eager_graph") if eager_loading_use_associated_key?
665
+ ds = ds.eager_graph(self[:eager_graph])
666
+ end
667
+ ds
668
+ end
669
+
670
+ # The default eager limit strategy to use for this association
671
+ def default_eager_limit_strategy
672
+ self[:model].default_eager_limit_strategy || :ruby
673
+ end
674
+
675
+ # Set the predicate condition for the eager loading dataset based on the id map
676
+ # in the eager loading options.
677
+ def eager_loading_set_predicate_condition(ds, eo)
678
+ if id_map = eo[:id_map]
679
+ ds = ds.where(eager_loading_predicate_condition(id_map.keys))
680
+ end
681
+ ds
682
+ end
683
+
684
+ # The predicate condition to use for the eager_loader.
685
+ def eager_loading_predicate_condition(keys)
686
+ {predicate_key=>keys}
687
+ end
688
+
689
+ # Add conditions to the dataset to not include NULL values for
690
+ # the associated keys, and select those keys.
691
+ def filter_by_associations_add_conditions_dataset_filter(ds)
692
+ k = filter_by_associations_conditions_associated_keys
693
+ ds.select(*k).where(Sequel.negate(k.zip([])))
694
+ end
695
+
696
+ # The conditions to add to the filter by associations conditions
697
+ # subquery to restrict it to to the object(s) that was used as the
698
+ # filter value.
699
+ def filter_by_associations_conditions_subquery_conditions(obj)
700
+ key = qualify(associated_class.table_name, associated_class.primary_key)
701
+ case obj
702
+ when Array
703
+ {key=>obj.map(&:pk)}
704
+ when Sequel::Dataset
705
+ {key=>obj.select(*Array(qualify(associated_class.table_name, associated_class.primary_key)))}
706
+ else
707
+ Array(key).zip(Array(obj.pk))
708
+ end
709
+ end
710
+
711
+ # The base dataset to use for the filter by associations conditions
712
+ # subquery, regardless of the objects that are passed in as filter
713
+ # values.
714
+ def filter_by_associations_conditions_dataset
715
+ cached_fetch(:filter_by_associations_conditions_dataset) do
716
+ ds = associated_eager_dataset.unordered
717
+ ds = filter_by_associations_add_conditions_dataset_filter(ds)
718
+ ds = apply_filter_by_associations_limit_strategy(ds)
719
+ ds
720
+ end
721
+ end
722
+
723
+ # The strategy to use to filter by a limited association
724
+ def filter_by_associations_limit_strategy
725
+ v = fetch(:filter_limit_strategy, self[:eager_limit_strategy])
726
+ if v || self[:limit] || !returns_array?
727
+ case v ||= self[:model].default_eager_limit_strategy
728
+ when true, :union, :ruby
729
+ # Can't use a union or ruby-based strategy for filtering by associations, switch to default eager graph limit
730
+ # strategy.
731
+ true_eager_graph_limit_strategy
732
+ when Symbol
733
+ v
734
+ end
735
+ end
736
+ end
737
+
738
+ # Whether to limit the associated dataset to a single row.
739
+ def limit_to_single_row?
740
+ !returns_array?
741
+ end
742
+
743
+ # Any offset to use for this association (or nil if there is no offset).
744
+ def offset
745
+ limit_and_offset.last
746
+ end
747
+
748
+ # A placeholder literalizer used to speed up eager loading.
749
+ def placeholder_eager_loader
750
+ cached_fetch(:placeholder_eager_loader) do
751
+ Sequel::Dataset::PlaceholderLiteralizer.loader(associated_dataset) do |pl, ds|
752
+ apply_eager_limit_strategy(eager_loading_dataset.where(predicate_key=>pl.arg), eager_limit_strategy)
753
+ end
754
+ end
755
+ end
756
+
757
+ # The reciprocal type as an array, should be overridden in reflection subclasses that
758
+ # have ambiguous reciprocal types.
759
+ def possible_reciprocal_types
760
+ [reciprocal_type]
761
+ end
762
+
763
+ # Whether the given association reflection is possible reciprocal
764
+ # association for the current association reflection.
765
+ def reciprocal_association?(assoc_reflect)
766
+ possible_reciprocal_types.include?(assoc_reflect[:type]) &&
767
+ (begin; assoc_reflect.associated_class; rescue NameError; end) == self[:model] &&
768
+ assoc_reflect[:conditions].nil? &&
769
+ assoc_reflect[:block].nil?
770
+ end
771
+
772
+ # The number of subqueries to use in each union query, used to eagerly load
773
+ # limited associations. Defaults to 40, the optimal number depends on the
774
+ # latency between the database and the application.
775
+ def subqueries_per_union
776
+ self[:subqueries_per_union] || 40
777
+ end
778
+
779
+ # If +s+ is an array, map +s+ over the block. Otherwise, just call the
780
+ # block with +s+.
781
+ def transform(s, &block)
782
+ s.is_a?(Array) ? s.map(&block) : (yield s)
783
+ end
784
+
785
+ # What eager limit strategy should be used when true is given as the value,
786
+ # defaults to UNION as that is the fastest strategy if the appropriate keys are indexed.
787
+ def true_eager_limit_strategy
788
+ if self[:eager_graph] || (offset && !associated_dataset.supports_offsets_in_correlated_subqueries?)
789
+ # An SQL-based approach won't work if you are also eager graphing,
790
+ # so use a ruby based approach in that case.
791
+ :ruby
792
+ else
793
+ :union
794
+ end
795
+ end
796
+
797
+ # The eager_graph limit strategy used when true is given as the value, choosing the
798
+ # best strategy based on what the database supports.
799
+ def true_eager_graph_limit_strategy
800
+ if associated_class.dataset.supports_window_functions?
801
+ :window_function
802
+ else
803
+ :ruby
804
+ end
805
+ end
806
+
807
+ # A placeholder literalizer used to speed up the creation of union queries when eager
808
+ # loading a limited association.
809
+ def union_eager_loader
810
+ cached_fetch(:union_eager_loader) do
811
+ Sequel::Dataset::PlaceholderLiteralizer.loader(associated_dataset) do |pl, ds|
812
+ ds = self[:eager_block].call(ds) if self[:eager_block]
813
+ keys = predicate_keys
814
+ ds = ds.where(keys.map{pl.arg}.zip(keys))
815
+ if eager_loading_use_associated_key?
816
+ ds = ds.select_append(*associated_key_array)
817
+ end
818
+ ds.from_self
819
+ end
820
+ end
821
+ end
822
+
823
+ # Whether the placeholder loader can be used to load the association.
824
+ def use_placeholder_loader?
825
+ self[:use_placeholder_loader] && _associated_dataset.supports_placeholder_literalizer?
826
+ end
827
+ end
828
+
829
+ class ManyToOneAssociationReflection < AssociationReflection
830
+ ASSOCIATION_TYPES[:many_to_one] = self
831
+
832
+ # many_to_one associations can only have associated objects if none of
833
+ # the :keys options have a nil value.
834
+ def can_have_associated_objects?(obj)
835
+ !self[:keys].any?{|k| obj.get_column_value(k).nil?}
836
+ end
837
+
838
+ # Whether the dataset needs a primary key to function, false for many_to_one associations.
839
+ def dataset_need_primary_key?
840
+ false
841
+ end
842
+
843
+ # Default foreign key name symbol for foreign key in current model's table that points to
844
+ # the given association's table's primary key.
845
+ def default_key
846
+ :"#{self[:name]}_id"
847
+ end
848
+
849
+ # Whether to eagerly graph a lazy dataset, true for many_to_one associations
850
+ # only if the key is nil.
851
+ def eager_graph_lazy_dataset?
852
+ self[:key].nil?
853
+ end
854
+
855
+ # many_to_one associations don't need an eager_graph limit strategy
856
+ def eager_graph_limit_strategy(_)
857
+ nil
858
+ end
859
+
860
+ # many_to_one associations don't need an eager limit strategy
861
+ def eager_limit_strategy
862
+ nil
863
+ end
864
+
865
+ # many_to_one associations don't need a filter by associations limit strategy
866
+ def filter_by_associations_limit_strategy
867
+ nil
868
+ end
869
+
870
+ FINALIZE_SETTINGS = superclass::FINALIZE_SETTINGS.merge(
871
+ :primary_key=>:primary_key,
872
+ :primary_keys=>:primary_keys,
873
+ :primary_key_method=>:primary_key_method,
874
+ :primary_key_methods=>:primary_key_methods,
875
+ :qualified_primary_key=>:qualified_primary_key,
876
+ :reciprocal_type=>:reciprocal_type
877
+ ).freeze
878
+ def finalize_settings
879
+ FINALIZE_SETTINGS
880
+ end
881
+
882
+ # The expression to use on the left hand side of the IN lookup when eager loading
883
+ def predicate_key
884
+ cached_fetch(:predicate_key){qualified_primary_key}
885
+ end
886
+
887
+ # The column(s) in the associated table that the key in the current table references (either a symbol or an array).
888
+ def primary_key
889
+ cached_fetch(:primary_key){associated_class.primary_key || raise(Error, "no primary key specified for #{associated_class.inspect}")}
890
+ end
891
+
892
+ # The columns in the associated table that the key in the current table references (always an array).
893
+ def primary_keys
894
+ cached_fetch(:primary_keys){Array(primary_key)}
895
+ end
896
+ alias associated_object_keys primary_keys
897
+
898
+ # The method symbol or array of method symbols to call on the associated object
899
+ # to get the value to use for the foreign keys.
900
+ def primary_key_method
901
+ cached_fetch(:primary_key_method){primary_key}
902
+ end
903
+
904
+ # The array of method symbols to call on the associated object
905
+ # to get the value to use for the foreign keys.
906
+ def primary_key_methods
907
+ cached_fetch(:primary_key_methods){Array(primary_key_method)}
908
+ end
909
+
910
+ # #primary_key qualified by the associated table
911
+ def qualified_primary_key
912
+ cached_fetch(:qualified_primary_key){self[:qualify] == false ? primary_key : qualify_assoc(primary_key)}
913
+ end
914
+
915
+ # True only if the reciprocal is a one_to_many association.
916
+ def reciprocal_array?
917
+ !set_reciprocal_to_self?
918
+ end
919
+
920
+ # Whether this association returns an array of objects instead of a single object,
921
+ # false for a many_to_one association.
922
+ def returns_array?
923
+ false
924
+ end
925
+
926
+ # True only if the reciprocal is a one_to_one association.
927
+ def set_reciprocal_to_self?
928
+ reciprocal
929
+ reciprocal_type == :one_to_one
930
+ end
931
+
932
+ private
933
+
934
+ # Reciprocals of many_to_one associations could be either one_to_many or one_to_one,
935
+ # and which is not known in advance.
936
+ def ambiguous_reciprocal_type?
937
+ true
938
+ end
939
+
940
+ def filter_by_associations_conditions_associated_keys
941
+ qualify(associated_class.table_name, primary_keys)
942
+ end
943
+
944
+ def filter_by_associations_conditions_key
945
+ qualify(self[:model].table_name, self[:key_column])
946
+ end
947
+
948
+ # many_to_one associations do not need to be limited to a single row if they
949
+ # explicitly do not have a key.
950
+ def limit_to_single_row?
951
+ super && self[:key]
952
+ end
953
+
954
+ def predicate_key_methods
955
+ self[:keys]
956
+ end
957
+
958
+ # The reciprocal type of a many_to_one association is either
959
+ # a one_to_many or a one_to_one association.
960
+ def possible_reciprocal_types
961
+ [:one_to_many, :one_to_one]
962
+ end
963
+
964
+ # Whether the given association reflection is possible reciprocal
965
+ def reciprocal_association?(assoc_reflect)
966
+ super && self[:keys] == assoc_reflect[:keys] && primary_key == assoc_reflect.primary_key
967
+ end
968
+
969
+ # The reciprocal type of a many_to_one association is either
970
+ # a one_to_many or a one_to_one association, look in the associated class
971
+ # to try to figure out which.
972
+ def reciprocal_type
973
+ cached_fetch(:reciprocal_type) do
974
+ possible_recips = []
975
+
976
+ associated_class.all_association_reflections.each do |assoc_reflect|
977
+ if reciprocal_association?(assoc_reflect)
978
+ possible_recips << assoc_reflect
979
+ end
980
+ end
981
+
982
+ if possible_recips.length == 1
983
+ possible_recips.first[:type]
984
+ else
985
+ possible_reciprocal_types
986
+ end
987
+ end
988
+ end
989
+ end
990
+
991
+ class OneToManyAssociationReflection < AssociationReflection
992
+ ASSOCIATION_TYPES[:one_to_many] = self
993
+
994
+ # Support a correlated subquery limit strategy when using eager_graph.
995
+ def apply_eager_graph_limit_strategy(strategy, ds)
996
+ case strategy
997
+ when :correlated_subquery
998
+ apply_correlated_subquery_limit_strategy(ds)
999
+ else
1000
+ super
1001
+ end
1002
+ end
1003
+
1004
+ # The keys in the associated model's table related to this association
1005
+ def associated_object_keys
1006
+ self[:keys]
1007
+ end
1008
+
1009
+ # one_to_many associations can only have associated objects if none of
1010
+ # the :keys options have a nil value.
1011
+ def can_have_associated_objects?(obj)
1012
+ !self[:primary_keys].any?{|k| obj.get_column_value(k).nil?}
1013
+ end
1014
+
1015
+ # one_to_many and one_to_one associations can be clones
1016
+ def cloneable?(ref)
1017
+ ref[:type] == :one_to_many || ref[:type] == :one_to_one
1018
+ end
1019
+
1020
+ # Default foreign key name symbol for key in associated table that points to
1021
+ # current table's primary key.
1022
+ def default_key
1023
+ :"#{underscore(demodulize(self[:model].name))}_id"
1024
+ end
1025
+
1026
+ FINALIZE_SETTINGS = superclass::FINALIZE_SETTINGS.merge(
1027
+ :qualified_primary_key=>:qualified_primary_key
1028
+ ).freeze
1029
+ def finalize_settings
1030
+ FINALIZE_SETTINGS
1031
+ end
1032
+
1033
+ # Handle silent failure of add/remove methods if raise_on_save_failure is false.
1034
+ def handle_silent_modification_failure?
1035
+ self[:raise_on_save_failure] == false
1036
+ end
1037
+
1038
+ # The hash key to use for the eager loading predicate (left side of IN (1, 2, 3))
1039
+ def predicate_key
1040
+ cached_fetch(:predicate_key){qualify_assoc(self[:key])}
1041
+ end
1042
+ alias qualified_key predicate_key
1043
+
1044
+ # The column in the current table that the key in the associated table references.
1045
+ def primary_key
1046
+ self[:primary_key]
1047
+ end
1048
+
1049
+ # #primary_key qualified by the current table
1050
+ def qualified_primary_key
1051
+ cached_fetch(:qualified_primary_key){qualify_cur(primary_key)}
1052
+ end
1053
+
1054
+ # Whether the reciprocal of this association returns an array of objects instead of a single object,
1055
+ # false for a one_to_many association.
1056
+ def reciprocal_array?
1057
+ false
1058
+ end
1059
+
1060
+ # Destroying one_to_many associated objects automatically deletes the foreign key.
1061
+ def remove_before_destroy?
1062
+ false
1063
+ end
1064
+
1065
+ # The one_to_many association needs to check that an object to be removed already is associated.
1066
+ def remove_should_check_existing?
1067
+ true
1068
+ end
1069
+
1070
+ # One to many associations set the reciprocal to self when loading associated records.
1071
+ def set_reciprocal_to_self?
1072
+ true
1073
+ end
1074
+
1075
+ private
1076
+
1077
+ # Use a correlated subquery to limit the dataset. Note that this will not
1078
+ # work correctly if the associated dataset uses qualified identifers in the WHERE clause,
1079
+ # as they would reference the containing query instead of the subquery.
1080
+ def apply_correlated_subquery_limit_strategy(ds)
1081
+ table = ds.first_source_table
1082
+ table_alias = ds.first_source_alias
1083
+ primary_key = associated_class.primary_key
1084
+ key = self[:key]
1085
+ cs_alias = :t1
1086
+ cs = associated_dataset.
1087
+ from(Sequel.as(table, :t1)).
1088
+ select(*qualify(cs_alias, primary_key)).
1089
+ where(Array(qualify(cs_alias, key)).zip(Array(qualify(table_alias, key)))).
1090
+ limit(*limit_and_offset)
1091
+ ds.where(qualify(table_alias, primary_key)=>cs)
1092
+ end
1093
+
1094
+ # Support correlated subquery strategy when filtering by limited associations.
1095
+ def apply_filter_by_associations_limit_strategy(ds)
1096
+ case filter_by_associations_limit_strategy
1097
+ when :correlated_subquery
1098
+ apply_correlated_subquery_limit_strategy(ds)
1099
+ else
1100
+ super
1101
+ end
1102
+ end
1103
+
1104
+ def filter_by_associations_conditions_associated_keys
1105
+ qualify(associated_class.table_name, self[:keys])
1106
+ end
1107
+
1108
+ def filter_by_associations_conditions_key
1109
+ qualify(self[:model].table_name, self[:primary_key_column])
1110
+ end
1111
+
1112
+ def filter_by_associations_limit_alias_key
1113
+ Array(filter_by_associations_limit_key)
1114
+ end
1115
+
1116
+ def filter_by_associations_limit_aliases
1117
+ filter_by_associations_limit_alias_key.map(&:column)
1118
+ end
1119
+
1120
+ def filter_by_associations_limit_key
1121
+ qualify(associated_class.table_name, associated_class.primary_key)
1122
+ end
1123
+
1124
+ def predicate_key_methods
1125
+ self[:primary_keys]
1126
+ end
1127
+
1128
+ def reciprocal_association?(assoc_reflect)
1129
+ super && self[:keys] == assoc_reflect[:keys] && primary_key == assoc_reflect.primary_key
1130
+ end
1131
+
1132
+ # The reciprocal type of a one_to_many association is a many_to_one association.
1133
+ def reciprocal_type
1134
+ :many_to_one
1135
+ end
1136
+
1137
+ # Support automatic use of correlated subqueries if :ruby option is best available option,
1138
+ # the database supports them, and either the associated class has a non-composite primary key
1139
+ # or the database supports multiple columns in IN.
1140
+ def true_eager_graph_limit_strategy
1141
+ r = super
1142
+ ds = associated_dataset
1143
+ if r == :ruby && ds.supports_limits_in_correlated_subqueries? && (Array(associated_class.primary_key).length == 1 || ds.supports_multiple_column_in?) && (!offset || ds.supports_offsets_in_correlated_subqueries?)
1144
+ :correlated_subquery
1145
+ else
1146
+ r
1147
+ end
1148
+ end
1149
+ end
1150
+
1151
+ # Methods that turn an association that returns multiple objects into an association that
1152
+ # returns a single object.
1153
+ module SingularAssociationReflection
1154
+ # Singular associations do not assign singular if they are using the ruby eager limit strategy
1155
+ # and have a slice range, since they need to store the array of associated objects in order to
1156
+ # pick the correct one with an offset.
1157
+ def assign_singular?
1158
+ super && (eager_limit_strategy != :ruby || !slice_range)
1159
+ end
1160
+
1161
+ # Add conditions when filtering by singular associations with orders, since the
1162
+ # underlying relationship is probably not one-to-one.
1163
+ def filter_by_associations_add_conditions?
1164
+ super || self[:order] || self[:eager_limit_strategy] || self[:filter_limit_strategy]
1165
+ end
1166
+
1167
+ # Make sure singular associations always have 1 as the limit
1168
+ def limit_and_offset
1169
+ r = super
1170
+ if r.first == 1
1171
+ r
1172
+ else
1173
+ [1, r[1]]
1174
+ end
1175
+ end
1176
+
1177
+ # Singular associations always return a single object, not an array.
1178
+ def returns_array?
1179
+ false
1180
+ end
1181
+
1182
+ private
1183
+
1184
+ # Only use a eager limit strategy by default if there is an offset or an order.
1185
+ def default_eager_limit_strategy
1186
+ super if self[:order] || offset
1187
+ end
1188
+
1189
+ # Use a strategy for filtering by associations if there is an order or an offset,
1190
+ # or a specific limiting strategy has been specified.
1191
+ def filter_by_associations_limit_strategy
1192
+ super if self[:order] || offset || self[:eager_limit_strategy] || self[:filter_limit_strategy]
1193
+ end
1194
+
1195
+ # Use the DISTINCT ON eager limit strategy for true if the database supports it.
1196
+ def true_eager_graph_limit_strategy
1197
+ if associated_class.dataset.supports_ordered_distinct_on? && !offset
1198
+ :distinct_on
1199
+ else
1200
+ super
1201
+ end
1202
+ end
1203
+ end
1204
+
1205
+ class OneToOneAssociationReflection < OneToManyAssociationReflection
1206
+ ASSOCIATION_TYPES[:one_to_one] = self
1207
+ include SingularAssociationReflection
1208
+ end
1209
+
1210
+ class ManyToManyAssociationReflection < AssociationReflection
1211
+ ASSOCIATION_TYPES[:many_to_many] = self
1212
+
1213
+ # The alias to use for the associated key when eagerly loading
1214
+ def associated_key_alias
1215
+ self[:left_key_alias]
1216
+ end
1217
+
1218
+ # Array of associated keys used when eagerly loading.
1219
+ def associated_key_array
1220
+ cached_fetch(:associated_key_array) do
1221
+ if self[:uses_left_composite_keys]
1222
+ associated_key_alias.zip(predicate_keys).map{|a, k| SQL::AliasedExpression.new(k, a)}
1223
+ else
1224
+ [SQL::AliasedExpression.new(predicate_key, associated_key_alias)]
1225
+ end
1226
+ end
1227
+ end
1228
+
1229
+ # The column to use for the associated key when eagerly loading
1230
+ def associated_key_column
1231
+ self[:left_key]
1232
+ end
1233
+
1234
+ # Alias of right_primary_keys
1235
+ def associated_object_keys
1236
+ right_primary_keys
1237
+ end
1238
+
1239
+ # many_to_many associations can only have associated objects if none of
1240
+ # the :left_primary_keys options have a nil value.
1241
+ def can_have_associated_objects?(obj)
1242
+ !self[:left_primary_keys].any?{|k| obj.get_column_value(k).nil?}
1243
+ end
1244
+
1245
+ # one_through_one and many_to_many associations can be clones
1246
+ def cloneable?(ref)
1247
+ ref[:type] == :many_to_many || ref[:type] == :one_through_one
1248
+ end
1249
+
1250
+ # The default associated key alias(es) to use when eager loading
1251
+ # associations via eager.
1252
+ def default_associated_key_alias
1253
+ self[:uses_left_composite_keys] ? (0...self[:left_keys].length).map{|i| :"x_foreign_key_#{i}_x"} : :x_foreign_key_x
1254
+ end
1255
+
1256
+ # The default eager loader used if the user doesn't override it. Extracted
1257
+ # to a method so the code can be shared with the many_through_many plugin.
1258
+ def default_eager_loader(eo)
1259
+ h = eo[:id_map]
1260
+ assign_singular = assign_singular?
1261
+ delete_rn = delete_row_number_column
1262
+ uses_lcks = self[:uses_left_composite_keys]
1263
+ left_key_alias = self[:left_key_alias]
1264
+ name = self[:name]
1265
+
1266
+ self[:model].eager_load_results(self, eo) do |assoc_record|
1267
+ assoc_record.values.delete(delete_rn) if delete_rn
1268
+ hash_key = if uses_lcks
1269
+ left_key_alias.map{|k| assoc_record.values.delete(k)}
1270
+ else
1271
+ assoc_record.values.delete(left_key_alias)
1272
+ end
1273
+
1274
+ objects = h[hash_key]
1275
+
1276
+ if assign_singular
1277
+ objects.each do |object|
1278
+ object.associations[name] ||= assoc_record
1279
+ end
1280
+ else
1281
+ objects.each do |object|
1282
+ object.associations[name].push(assoc_record)
1283
+ end
1284
+ end
1285
+ end
1286
+ end
1287
+
1288
+ # Default name symbol for the join table.
1289
+ def default_join_table
1290
+ [self[:class_name], self[:model].name].map{|i| underscore(pluralize(demodulize(i)))}.sort.join('_').to_sym
1291
+ end
1292
+
1293
+ # Default foreign key name symbol for key in join table that points to
1294
+ # current table's primary key (or :left_primary_key column).
1295
+ def default_left_key
1296
+ :"#{underscore(demodulize(self[:model].name))}_id"
1297
+ end
1298
+
1299
+ # Default foreign key name symbol for foreign key in join table that points to
1300
+ # the association's table's primary key (or :right_primary_key column).
1301
+ def default_right_key
1302
+ :"#{singularize(self[:name])}_id"
1303
+ end
1304
+
1305
+ FINALIZE_SETTINGS = superclass::FINALIZE_SETTINGS.merge(
1306
+ :associated_key_array=>:associated_key_array,
1307
+ :qualified_right_key=>:qualified_right_key,
1308
+ :join_table_source=>:join_table_source,
1309
+ :join_table_alias=>:join_table_alias,
1310
+ :qualified_right_primary_key=>:qualified_right_primary_key,
1311
+ :right_primary_key=>:right_primary_key,
1312
+ :right_primary_keys=>:right_primary_keys,
1313
+ :right_primary_key_method=>:right_primary_key_method,
1314
+ :right_primary_key_methods=>:right_primary_key_methods,
1315
+ :select=>:select
1316
+ ).freeze
1317
+ def finalize_settings
1318
+ FINALIZE_SETTINGS
1319
+ end
1320
+
1321
+ # The hash key to use for the eager loading predicate (left side of IN (1, 2, 3)).
1322
+ # The left key qualified by the join table.
1323
+ def predicate_key
1324
+ cached_fetch(:predicate_key){qualify(join_table_alias, self[:left_key])}
1325
+ end
1326
+ alias qualified_left_key predicate_key
1327
+
1328
+ # The right key qualified by the join table.
1329
+ def qualified_right_key
1330
+ cached_fetch(:qualified_right_key){qualify(join_table_alias, self[:right_key])}
1331
+ end
1332
+
1333
+ # many_to_many associations need to select a key in an associated table to eagerly load
1334
+ def eager_loading_use_associated_key?
1335
+ !separate_query_per_table?
1336
+ end
1337
+
1338
+ # The source of the join table. This is the join table itself, unless it
1339
+ # is aliased, in which case it is the unaliased part.
1340
+ def join_table_source
1341
+ cached_fetch(:join_table_source){split_join_table_alias[0]}
1342
+ end
1343
+
1344
+ # The join table itself, unless it is aliased, in which case this
1345
+ # is the alias.
1346
+ def join_table_alias
1347
+ cached_fetch(:join_table_alias) do
1348
+ s, a = split_join_table_alias
1349
+ a || s
1350
+ end
1351
+ end
1352
+ alias associated_key_table join_table_alias
1353
+
1354
+ # Whether the associated object needs a primary key to be added/removed,
1355
+ # true for many_to_many associations.
1356
+ def need_associated_primary_key?
1357
+ true
1358
+ end
1359
+
1360
+ # #right_primary_key qualified by the associated table
1361
+ def qualified_right_primary_key
1362
+ cached_fetch(:qualified_right_primary_key){qualify_assoc(right_primary_key)}
1363
+ end
1364
+
1365
+ # The primary key column(s) to use in the associated table (can be symbol or array).
1366
+ def right_primary_key
1367
+ cached_fetch(:right_primary_key){associated_class.primary_key || raise(Error, "no primary key specified for #{associated_class.inspect}")}
1368
+ end
1369
+
1370
+ # The primary key columns to use in the associated table (always array).
1371
+ def right_primary_keys
1372
+ cached_fetch(:right_primary_keys){Array(right_primary_key)}
1373
+ end
1374
+
1375
+ # The method symbol or array of method symbols to call on the associated objects
1376
+ # to get the foreign key values for the join table.
1377
+ def right_primary_key_method
1378
+ cached_fetch(:right_primary_key_method){right_primary_key}
1379
+ end
1380
+
1381
+ # The array of method symbols to call on the associated objects
1382
+ # to get the foreign key values for the join table.
1383
+ def right_primary_key_methods
1384
+ cached_fetch(:right_primary_key_methods){Array(right_primary_key_method)}
1385
+ end
1386
+
1387
+ # The columns to select when loading the association, associated_class.table_name.* by default.
1388
+ def select
1389
+ cached_fetch(:select){default_select}
1390
+ end
1391
+
1392
+ # Whether a separate query should be used for the join table.
1393
+ def separate_query_per_table?
1394
+ self[:join_table_db]
1395
+ end
1396
+
1397
+ private
1398
+
1399
+ # Join to the the join table, unless using a separate query per table.
1400
+ def _associated_dataset
1401
+ if separate_query_per_table?
1402
+ super
1403
+ else
1404
+ super.inner_join(self[:join_table], self[:right_keys].zip(right_primary_keys), :qualify=>:deep)
1405
+ end
1406
+ end
1407
+
1408
+ # Use the right_keys from the eager loading options if
1409
+ # using a separate query per table.
1410
+ def eager_loading_set_predicate_condition(ds, eo)
1411
+ if separate_query_per_table?
1412
+ ds.where(right_primary_key=>eo[:right_keys])
1413
+ else
1414
+ super
1415
+ end
1416
+ end
1417
+
1418
+ # The default selection for associations that require joins. These do not use the default
1419
+ # model selection unless all entries in the select are explicitly qualified identifiers, as
1420
+ # other it can include unqualified columns which would be made ambiguous by joining.
1421
+ def default_select
1422
+ if (sel = associated_class.dataset.opts[:select]) && sel.all?{|c| selection_is_qualified?(c)}
1423
+ sel
1424
+ else
1425
+ Sequel::SQL::ColumnAll.new(associated_class.table_name)
1426
+ end
1427
+ end
1428
+
1429
+ def filter_by_associations_conditions_associated_keys
1430
+ qualify(join_table_alias, self[:left_keys])
1431
+ end
1432
+
1433
+ def filter_by_associations_conditions_key
1434
+ qualify(self[:model].table_name, self[:left_primary_key_column])
1435
+ end
1436
+
1437
+ def filter_by_associations_limit_alias_key
1438
+ aliaz = 'a'
1439
+ filter_by_associations_limit_key.map{|c| c.as(Sequel.identifier(aliaz = aliaz.next))}
1440
+ end
1441
+
1442
+ def filter_by_associations_limit_aliases
1443
+ filter_by_associations_limit_alias_key.map(&:alias)
1444
+ end
1445
+
1446
+ def filter_by_associations_limit_key
1447
+ qualify(join_table_alias, self[:left_keys]) + Array(qualify(associated_class.table_name, associated_class.primary_key))
1448
+ end
1449
+
1450
+ def predicate_key_methods
1451
+ self[:left_primary_keys]
1452
+ end
1453
+
1454
+ def reciprocal_association?(assoc_reflect)
1455
+ super && assoc_reflect[:left_keys] == self[:right_keys] &&
1456
+ assoc_reflect[:right_keys] == self[:left_keys] &&
1457
+ assoc_reflect[:join_table] == self[:join_table] &&
1458
+ right_primary_keys == assoc_reflect[:left_primary_key_columns] &&
1459
+ self[:left_primary_key_columns] == assoc_reflect.right_primary_keys
1460
+ end
1461
+
1462
+ def reciprocal_type
1463
+ :many_to_many
1464
+ end
1465
+
1466
+ # Whether the given expression represents a qualified identifier. Used to determine if it is
1467
+ # OK to use directly when joining.
1468
+ def selection_is_qualified?(c)
1469
+ case c
1470
+ when Symbol
1471
+ Sequel.split_symbol(c)[0]
1472
+ when Sequel::SQL::QualifiedIdentifier
1473
+ true
1474
+ when Sequel::SQL::AliasedExpression
1475
+ selection_is_qualified?(c.expression)
1476
+ else
1477
+ false
1478
+ end
1479
+ end
1480
+
1481
+ # Split the join table into source and alias parts.
1482
+ def split_join_table_alias
1483
+ associated_class.dataset.split_alias(self[:join_table])
1484
+ end
1485
+ end
1486
+
1487
+ class OneThroughOneAssociationReflection < ManyToManyAssociationReflection
1488
+ ASSOCIATION_TYPES[:one_through_one] = self
1489
+ include SingularAssociationReflection
1490
+
1491
+ # one_through_one associations should not singularize the association name when
1492
+ # creating the foreign key.
1493
+ def default_right_key
1494
+ :"#{self[:name]}_id"
1495
+ end
1496
+
1497
+ # one_through_one associations have no reciprocals
1498
+ def reciprocal
1499
+ nil
1500
+ end
1501
+ end
1502
+
1503
+ # This module contains methods added to all association datasets
1504
+ module AssociationDatasetMethods
1505
+ # The model object that created the association dataset
1506
+ def model_object
1507
+ @opts[:model_object]
1508
+ end
1509
+
1510
+ # The association reflection related to the association dataset
1511
+ def association_reflection
1512
+ @opts[:association_reflection]
1513
+ end
1514
+
1515
+ private
1516
+
1517
+ def non_sql_option?(key)
1518
+ super || key == :model_object || key == :association_reflection
1519
+ end
1520
+ end
1521
+
1522
+ # Each kind of association adds a number of instance methods to the model class which
1523
+ # are specialized according to the association type and optional parameters
1524
+ # given in the definition. Example:
1525
+ #
1526
+ # class Project < Sequel::Model
1527
+ # many_to_one :portfolio
1528
+ # # or: one_to_one :portfolio
1529
+ # one_to_many :milestones
1530
+ # # or: many_to_many :milestones
1531
+ # end
1532
+ #
1533
+ # The project class now has the following instance methods:
1534
+ # portfolio :: Returns the associated portfolio.
1535
+ # portfolio=(obj) :: Sets the associated portfolio to the object,
1536
+ # but the change is not persisted until you save the record (for many_to_one associations).
1537
+ # portfolio_dataset :: Returns a dataset that would return the associated
1538
+ # portfolio, only useful in fairly specific circumstances.
1539
+ # milestones :: Returns an array of associated milestones
1540
+ # add_milestone(obj) :: Associates the passed milestone with this object.
1541
+ # remove_milestone(obj) :: Removes the association with the passed milestone.
1542
+ # remove_all_milestones :: Removes associations with all associated milestones.
1543
+ # milestones_dataset :: Returns a dataset that would return the associated
1544
+ # milestones, allowing for further filtering/limiting/etc.
1545
+ #
1546
+ # If you want to override the behavior of the add_/remove_/remove_all_/ methods
1547
+ # or the association setter method, use the :adder, :remover, :clearer, and/or :setter
1548
+ # options. These options override the default behavior.
1549
+ #
1550
+ # By default the classes for the associations are inferred from the association
1551
+ # name, so for example the Project#portfolio will return an instance of
1552
+ # Portfolio, and Project#milestones will return an array of Milestone
1553
+ # instances. You can use the :class option to change which class is used.
1554
+ #
1555
+ # Association definitions are also reflected by the class, e.g.:
1556
+ #
1557
+ # Project.associations
1558
+ # => [:portfolio, :milestones]
1559
+ # Project.association_reflection(:portfolio)
1560
+ # => #<Sequel::Model::Associations::ManyToOneAssociationReflection Project.many_to_one :portfolio>
1561
+ #
1562
+ # Associations should not have the same names as any of the columns in the
1563
+ # model's current table they reference. If you are dealing with an existing schema that
1564
+ # has a column named status, you can't name the association status, you'd
1565
+ # have to name it foo_status or something else. If you give an association the same name
1566
+ # as a column, you will probably end up with an association that doesn't work, or a SystemStackError.
1567
+ #
1568
+ # For a more in depth general overview, as well as a reference guide,
1569
+ # see the {Association Basics guide}[rdoc-ref:doc/association_basics.rdoc].
1570
+ # For examples of advanced usage, see the {Advanced Associations guide}[rdoc-ref:doc/advanced_associations.rdoc].
1571
+ module ClassMethods
1572
+ # All association reflections defined for this model (default: {}).
1573
+ attr_reader :association_reflections
1574
+
1575
+ # Hash with column symbol keys and arrays of many_to_one
1576
+ # association symbols that should be cleared when the column
1577
+ # value changes.
1578
+ attr_reader :autoreloading_associations
1579
+
1580
+ # Whether association metadata should be cached in the association reflection. If not cached, it will be computed
1581
+ # on demand. In general you only want to set this to false when using code reloading. When using code reloading,
1582
+ # setting this will make sure that if an associated class is removed or modified, this class will not have a reference to
1583
+ # the previous class.
1584
+ attr_accessor :cache_associations
1585
+
1586
+ # The default options to use for all associations. This hash is merged into the association reflection hash for
1587
+ # all association reflections.
1588
+ attr_accessor :default_association_options
1589
+
1590
+ # The default options to use for all associations of a given type. This is a hash keyed by association type
1591
+ # symbol. If there is a value for the association type symbol key, the resulting hash will be merged into the
1592
+ # association reflection hash for all association reflections of that type.
1593
+ attr_accessor :default_association_type_options
1594
+
1595
+ # The default :eager_limit_strategy option to use for limited or offset associations (default: true, causing Sequel
1596
+ # to use what it considers the most appropriate strategy).
1597
+ attr_accessor :default_eager_limit_strategy
1598
+
1599
+ # Array of all association reflections for this model class
1600
+ def all_association_reflections
1601
+ association_reflections.values
1602
+ end
1603
+
1604
+ # Associates a related model with the current model. The following types are
1605
+ # supported:
1606
+ #
1607
+ # :many_to_one :: Foreign key in current model's table points to
1608
+ # associated model's primary key. Each associated model object can
1609
+ # be associated with more than one current model objects. Each current
1610
+ # model object can be associated with only one associated model object.
1611
+ # :one_to_many :: Foreign key in associated model's table points to this
1612
+ # model's primary key. Each current model object can be associated with
1613
+ # more than one associated model objects. Each associated model object
1614
+ # can be associated with only one current model object.
1615
+ # :one_through_one :: Similar to many_to_many in terms of foreign keys, but only one object
1616
+ # is associated to the current object through the association.
1617
+ # Provides only getter methods, no setter or modification methods.
1618
+ # :one_to_one :: Similar to one_to_many in terms of foreign keys, but
1619
+ # only one object is associated to the current object through the
1620
+ # association. The methods created are similar to many_to_one, except
1621
+ # that the one_to_one setter method saves the passed object.
1622
+ # :many_to_many :: A join table is used that has a foreign key that points
1623
+ # to this model's primary key and a foreign key that points to the
1624
+ # associated model's primary key. Each current model object can be
1625
+ # associated with many associated model objects, and each associated
1626
+ # model object can be associated with many current model objects.
1627
+ #
1628
+ # The following options can be supplied:
1629
+ # === Multiple Types
1630
+ # :adder :: Proc used to define the private _add_* method for doing the database work
1631
+ # to associate the given object to the current object (*_to_many assocations).
1632
+ # Set to nil to not define a add_* method for the association.
1633
+ # :after_add :: Symbol, Proc, or array of both/either specifying a callback to call
1634
+ # after a new item is added to the association.
1635
+ # :after_load :: Symbol, Proc, or array of both/either specifying a callback to call
1636
+ # after the associated record(s) have been retrieved from the database.
1637
+ # :after_remove :: Symbol, Proc, or array of both/either specifying a callback to call
1638
+ # after an item is removed from the association.
1639
+ # :after_set :: Symbol, Proc, or array of both/either specifying a callback to call
1640
+ # after an item is set using the association setter method.
1641
+ # :allow_eager :: If set to false, you cannot load the association eagerly
1642
+ # via eager or eager_graph
1643
+ # :allow_eager_graph :: If set to false, you cannot load the association eagerly via eager_graph.
1644
+ # :allow_filtering_by :: If set to false, you cannot use the association when filtering
1645
+ # :before_add :: Symbol, Proc, or array of both/either specifying a callback to call
1646
+ # before a new item is added to the association.
1647
+ # :before_remove :: Symbol, Proc, or array of both/either specifying a callback to call
1648
+ # before an item is removed from the association.
1649
+ # :before_set :: Symbol, Proc, or array of both/either specifying a callback to call
1650
+ # before an item is set using the association setter method.
1651
+ # :cartesian_product_number :: the number of joins completed by this association that could cause more
1652
+ # than one row for each row in the current table (default: 0 for
1653
+ # many_to_one, one_to_one, and one_through_one associations, 1
1654
+ # for one_to_many and many_to_many associations).
1655
+ # :class :: The associated class or its name as a string or symbol. If not
1656
+ # given, uses the association's name, which is camelized (and
1657
+ # singularized unless the type is :many_to_one, :one_to_one, or one_through_one). If this is specified
1658
+ # as a string or symbol, you must specify the full class name (e.g. "::SomeModule::MyModel").
1659
+ # :class_namespace :: If :class is given as a string or symbol, sets the default namespace in which to look for
1660
+ # the class. <tt>class: 'Foo', class_namespace: 'Bar'</tt> looks for <tt>::Bar::Foo</tt>.)
1661
+ # :clearer :: Proc used to define the private _remove_all_* method for doing the database work
1662
+ # to remove all objects associated to the current object (*_to_many assocations).
1663
+ # Set to nil to not define a remove_all_* method for the association.
1664
+ # :clone :: Merge the current options and block into the options and block used in defining
1665
+ # the given association. Can be used to DRY up a bunch of similar associations that
1666
+ # all share the same options such as :class and :key, while changing the order and block used.
1667
+ # :conditions :: The conditions to use to filter the association, can be any argument passed to where.
1668
+ # This option is not respected when using eager_graph or association_join, unless it
1669
+ # is hash or array of two element arrays. Consider also specifying the :graph_block
1670
+ # option if the value for this option is not a hash or array of two element arrays
1671
+ # and you plan to use this association in eager_graph or association_join.
1672
+ # :dataset :: A proc that is used to define the method to get the base dataset to use (before the other
1673
+ # options are applied). If the proc accepts an argument, it is passed the related
1674
+ # association reflection. It is a best practice to always have the dataset accept an argument
1675
+ # and use the argument to return the appropriate dataset.
1676
+ # :distinct :: Use the DISTINCT clause when selecting associating object, both when
1677
+ # lazy loading and eager loading via .eager (but not when using .eager_graph).
1678
+ # :eager :: The associations to eagerly load via +eager+ when loading the associated object(s).
1679
+ # :eager_block :: If given, use the block instead of the default block when
1680
+ # eagerly loading. To not use a block when eager loading (when one is used normally),
1681
+ # set to nil.
1682
+ # :eager_graph :: The associations to eagerly load via +eager_graph+ when loading the associated object(s).
1683
+ # many_to_many associations with this option cannot be eagerly loaded via +eager+.
1684
+ # :eager_grapher :: A proc to use to implement eager loading via +eager_graph+, overriding the default.
1685
+ # Takes an options hash with at least the entries :self (the receiver of the eager_graph call),
1686
+ # :table_alias (the alias to use for table to graph into the association), and :implicit_qualifier
1687
+ # (the alias that was used for the current table).
1688
+ # Should return a copy of the dataset with the association graphed into it.
1689
+ # :eager_limit_strategy :: Determines the strategy used for enforcing limits and offsets when eager loading
1690
+ # associations via the +eager+ method.
1691
+ # :eager_loader :: A proc to use to implement eager loading, overriding the default. Takes a single hash argument,
1692
+ # with at least the keys: :rows, which is an array of current model instances, :associations,
1693
+ # which is a hash of dependent associations, :self, which is the dataset doing the eager loading,
1694
+ # :eager_block, which is a dynamic callback that should be called with the dataset, and :id_map,
1695
+ # which is a mapping of key values to arrays of current model instances. In the proc, the
1696
+ # associated records should be queried from the database and the associations cache for each
1697
+ # record should be populated.
1698
+ # :eager_loader_key :: A symbol for the key column to use to populate the key_hash
1699
+ # for the eager loader. Can be set to nil to not populate the key_hash.
1700
+ # :extend :: A module or array of modules to extend the dataset with.
1701
+ # :filter_limit_strategy :: Determines the strategy used for enforcing limits and offsets when filtering by
1702
+ # limited associations. Possible options are :window_function, :distinct_on, or
1703
+ # :correlated_subquery depending on association type and database type.
1704
+ # :graph_alias_base :: The base name to use for the table alias when eager graphing. Defaults to the name
1705
+ # of the association. If the alias name has already been used in the query, Sequel will create
1706
+ # a unique alias by appending a numeric suffix (e.g. alias_0, alias_1, ...) until the alias is
1707
+ # unique.
1708
+ # :graph_block :: The block to pass to join_table when eagerly loading
1709
+ # the association via +eager_graph+.
1710
+ # :graph_conditions :: The additional conditions to use on the SQL join when eagerly loading
1711
+ # the association via +eager_graph+. Should be a hash or an array of two element arrays. If not
1712
+ # specified, the :conditions option is used if it is a hash or array of two element arrays.
1713
+ # :graph_join_type :: The type of SQL join to use when eagerly loading the association via
1714
+ # eager_graph. Defaults to :left_outer.
1715
+ # :graph_only_conditions :: The conditions to use on the SQL join when eagerly loading
1716
+ # the association via +eager_graph+, instead of the default conditions specified by the
1717
+ # foreign/primary keys. This option causes the :graph_conditions option to be ignored.
1718
+ # :graph_order :: the order to use when using eager_graph, instead of the default order. This should be used
1719
+ # in the case where :order contains an identifier qualified by the table's name, which may not match
1720
+ # the alias used when eager graphing. By setting this to the unqualified identifier, it will be
1721
+ # automatically qualified when using eager_graph.
1722
+ # :graph_select :: A column or array of columns to select from the associated table
1723
+ # when eagerly loading the association via +eager_graph+. Defaults to all
1724
+ # columns in the associated table.
1725
+ # :instance_specific :: Marks the association as instance specific. Should be used if the association block
1726
+ # uses instance specific state, or transient state (accessing current date/time, etc.).
1727
+ # :limit :: Limit the number of records to the provided value. Use
1728
+ # an array with two elements for the value to specify a
1729
+ # limit (first element) and an offset (second element).
1730
+ # :methods_module :: The module that methods the association creates will be placed into. Defaults
1731
+ # to the module containing the model's columns.
1732
+ # :no_association_method :: Do not add a method for the association. This can save memory if the association
1733
+ # method is never used.
1734
+ # :no_dataset_method :: Do not add a method for the association dataset. This can save memory if the dataset
1735
+ # method is never used.
1736
+ # :order :: the column(s) by which to order the association dataset. Can be a
1737
+ # singular column symbol or an array of column symbols.
1738
+ # :order_eager_graph :: Whether to add the association's order to the graphed dataset's order when graphing
1739
+ # via +eager_graph+. Defaults to true, so set to false to disable.
1740
+ # :read_only :: Do not add a setter method (for many_to_one or one_to_one associations),
1741
+ # or add_/remove_/remove_all_ methods (for one_to_many and many_to_many associations).
1742
+ # :reciprocal :: the symbol name of the reciprocal association,
1743
+ # if it exists. By default, Sequel will try to determine it by looking at the
1744
+ # associated model's assocations for a association that matches
1745
+ # the current association's key(s). Set to nil to not use a reciprocal.
1746
+ # :remover :: Proc used to define the private _remove_* method for doing the database work
1747
+ # to remove the association between the given object and the current object (*_to_many assocations).
1748
+ # Set to nil to not define a remove_* method for the association.
1749
+ # :select :: the columns to select. Defaults to the associated class's table_name.* in an association
1750
+ # that uses joins, which means it doesn't include the attributes from the
1751
+ # join table. If you want to include the join table attributes, you can
1752
+ # use this option, but beware that the join table attributes can clash with
1753
+ # attributes from the model table, so you should alias any attributes that have
1754
+ # the same name in both the join table and the associated table.
1755
+ # :setter :: Proc used to define the private _*= method for doing the work to setup the assocation
1756
+ # between the given object and the current object (*_to_one associations).
1757
+ # Set to nil to not define a setter method for the association.
1758
+ # :subqueries_per_union :: The number of subqueries to use in each UNION query, for eager
1759
+ # loading limited associations using the default :union strategy.
1760
+ # :validate :: Set to false to not validate when implicitly saving any associated object.
1761
+ # === :many_to_one
1762
+ # :key :: foreign key in current model's table that references
1763
+ # associated model's primary key, as a symbol. Defaults to :"#{name}_id". Can use an
1764
+ # array of symbols for a composite key association.
1765
+ # :key_column :: Similar to, and usually identical to, :key, but :key refers to the model method
1766
+ # to call, where :key_column refers to the underlying column. Should only be
1767
+ # used if the model method differs from the foreign key column, in conjunction
1768
+ # with defining a model alias method for the key column.
1769
+ # :primary_key :: column in the associated table that :key option references, as a symbol.
1770
+ # Defaults to the primary key of the associated table. Can use an
1771
+ # array of symbols for a composite key association.
1772
+ # :primary_key_method :: the method symbol or array of method symbols to call on the associated
1773
+ # object to get the foreign key values. Defaults to :primary_key option.
1774
+ # :qualify :: Whether to use qualified primary keys when loading the association. The default
1775
+ # is true, so you must set to false to not qualify. Qualification rarely causes
1776
+ # problems, but it's necessary to disable in some cases, such as when you are doing
1777
+ # a JOIN USING operation on the column on Oracle.
1778
+ # === :one_to_many and :one_to_one
1779
+ # :key :: foreign key in associated model's table that references
1780
+ # current model's primary key, as a symbol. Defaults to
1781
+ # :"#{self.name.underscore}_id". Can use an
1782
+ # array of symbols for a composite key association.
1783
+ # :key_method :: the method symbol or array of method symbols to call on the associated
1784
+ # object to get the foreign key values. Defaults to :key option.
1785
+ # :primary_key :: column in the current table that :key option references, as a symbol.
1786
+ # Defaults to primary key of the current table. Can use an
1787
+ # array of symbols for a composite key association.
1788
+ # :primary_key_column :: Similar to, and usually identical to, :primary_key, but :primary_key refers
1789
+ # to the model method call, where :primary_key_column refers to the underlying column.
1790
+ # Should only be used if the model method differs from the primary key column, in
1791
+ # conjunction with defining a model alias method for the primary key column.
1792
+ # :raise_on_save_failure :: Do not raise exceptions for hook or validation failures when saving associated
1793
+ # objects in the add/remove methods (return nil instead) [one_to_many only].
1794
+ # === :many_to_many and :one_through_one
1795
+ # :graph_join_table_block :: The block to pass to +join_table+ for
1796
+ # the join table when eagerly loading the association via +eager_graph+.
1797
+ # :graph_join_table_conditions :: The additional conditions to use on the SQL join for
1798
+ # the join table when eagerly loading the association via +eager_graph+.
1799
+ # Should be a hash or an array of two element arrays.
1800
+ # :graph_join_table_join_type :: The type of SQL join to use for the join table when eagerly
1801
+ # loading the association via +eager_graph+. Defaults to the
1802
+ # :graph_join_type option or :left_outer.
1803
+ # :graph_join_table_only_conditions :: The conditions to use on the SQL join for the join
1804
+ # table when eagerly loading the association via +eager_graph+,
1805
+ # instead of the default conditions specified by the
1806
+ # foreign/primary keys. This option causes the
1807
+ # :graph_join_table_conditions option to be ignored.
1808
+ # :join_table :: name of table that includes the foreign keys to both
1809
+ # the current model and the associated model, as a symbol. Defaults to the name
1810
+ # of current model and name of associated model, pluralized,
1811
+ # underscored, sorted, and joined with '_'.
1812
+ # :join_table_block :: proc that can be used to modify the dataset used in the add/remove/remove_all
1813
+ # methods. Should accept a dataset argument and return a modified dataset if present.
1814
+ # :join_table_db :: When retrieving records when using lazy loading or eager loading via +eager+, instead of
1815
+ # a join between to the join table and the associated table, use a separate query for the
1816
+ # join table using the given Database object.
1817
+ # :left_key :: foreign key in join table that points to current model's
1818
+ # primary key, as a symbol. Defaults to :"#{self.name.underscore}_id".
1819
+ # Can use an array of symbols for a composite key association.
1820
+ # :left_primary_key :: column in current table that :left_key points to, as a symbol.
1821
+ # Defaults to primary key of current table. Can use an
1822
+ # array of symbols for a composite key association.
1823
+ # :left_primary_key_column :: Similar to, and usually identical to, :left_primary_key, but :left_primary_key refers to
1824
+ # the model method to call, where :left_primary_key_column refers to the underlying column. Should only
1825
+ # be used if the model method differs from the left primary key column, in conjunction
1826
+ # with defining a model alias method for the left primary key column.
1827
+ # :right_key :: foreign key in join table that points to associated
1828
+ # model's primary key, as a symbol. Defaults to :"#{name.to_s.singularize}_id".
1829
+ # Can use an array of symbols for a composite key association.
1830
+ # :right_primary_key :: column in associated table that :right_key points to, as a symbol.
1831
+ # Defaults to primary key of the associated table. Can use an
1832
+ # array of symbols for a composite key association.
1833
+ # :right_primary_key_method :: the method symbol or array of method symbols to call on the associated
1834
+ # object to get the foreign key values for the join table.
1835
+ # Defaults to :right_primary_key option.
1836
+ # :uniq :: Adds a after_load callback that makes the array of objects unique.
1837
+ def associate(type, name, opts = OPTS, &block)
1838
+ raise(Error, 'invalid association type') unless assoc_class = Sequel.synchronize{ASSOCIATION_TYPES[type]}
1839
+ raise(Error, 'Model.associate name argument must be a symbol') unless name.is_a?(Symbol)
1840
+
1841
+ # dup early so we don't modify opts
1842
+ orig_opts = opts.dup
1843
+
1844
+ if opts[:clone]
1845
+ cloned_assoc = association_reflection(opts[:clone])
1846
+ remove_class_name = orig_opts[:class] && !orig_opts[:class_name]
1847
+ orig_opts = cloned_assoc[:orig_opts].merge(orig_opts)
1848
+ orig_opts.delete(:class_name) if remove_class_name
1849
+ end
1850
+
1851
+ opts = Hash[default_association_options]
1852
+ if type_options = default_association_type_options[type]
1853
+ opts.merge!(type_options)
1854
+ end
1855
+ opts.merge!(orig_opts)
1856
+ opts.merge!(:type => type, :name => name, :cache=>({} if cache_associations), :model => self)
1857
+
1858
+ opts[:block] = block if block
1859
+ opts[:instance_specific] = true if orig_opts[:dataset]
1860
+ if !opts.has_key?(:instance_specific) && (block || orig_opts[:block])
1861
+ # It's possible the association is instance specific, in that it depends on
1862
+ # values other than the foreign key value. This needs to be checked for
1863
+ # in certain places to disable optimizations.
1864
+ opts[:instance_specific] = _association_instance_specific_default(name)
1865
+ end
1866
+ if (orig_opts[:instance_specific] || orig_opts[:dataset]) && !opts.has_key?(:allow_eager) && !opts[:eager_loader]
1867
+ # For associations explicitly marked as instance specific, or that use the
1868
+ # :dataset option, where :allow_eager is not set, and no :eager_loader is
1869
+ # provided, disallow eager loading. In these cases, eager loading is
1870
+ # unlikely to work. This is not done for implicit setting of :instance_specific,
1871
+ # because implicit use is done by default for all associations with blocks,
1872
+ # and the vast majority of associations with blocks use the block for filtering
1873
+ # in a manner compatible with eager loading.
1874
+ opts[:allow_eager] = false
1875
+ end
1876
+ opts = assoc_class.new.merge!(opts)
1877
+
1878
+ if opts[:clone] && !opts.cloneable?(cloned_assoc)
1879
+ raise(Error, "cannot clone an association to an association of different type (association #{name} with type #{type} cloning #{opts[:clone]} with type #{cloned_assoc[:type]})")
1880
+ end
1881
+
1882
+ opts[:use_placeholder_loader] = !opts[:instance_specific] && !opts[:eager_graph]
1883
+ opts[:eager_block] = opts[:block] unless opts.include?(:eager_block)
1884
+ opts[:graph_join_type] ||= :left_outer
1885
+ opts[:order_eager_graph] = true unless opts.include?(:order_eager_graph)
1886
+ conds = opts[:conditions]
1887
+ opts[:graph_alias_base] ||= name
1888
+ opts[:graph_conditions] = conds if !opts.include?(:graph_conditions) and Sequel.condition_specifier?(conds)
1889
+ opts[:graph_conditions] = opts.fetch(:graph_conditions, []).to_a
1890
+ opts[:graph_select] = Array(opts[:graph_select]) if opts[:graph_select]
1891
+ [:before_add, :before_remove, :after_add, :after_remove, :after_load, :before_set, :after_set].each do |cb_type|
1892
+ opts[cb_type] = Array(opts[cb_type]) if opts[cb_type]
1893
+ end
1894
+
1895
+ if opts[:extend]
1896
+ opts[:extend] = Array(opts[:extend])
1897
+ opts[:reverse_extend] = opts[:extend].reverse
1898
+ end
1899
+
1900
+ late_binding_class_option(opts, opts.returns_array? ? singularize(name) : name)
1901
+
1902
+ # Remove :class entry if it exists and is nil, to work with cached_fetch
1903
+ opts.delete(:class) unless opts[:class]
1904
+
1905
+ def_association(opts)
1906
+
1907
+ orig_opts.delete(:clone)
1908
+ opts[:orig_class] = orig_opts[:class] || orig_opts[:class_name]
1909
+ orig_opts.merge!(:class_name=>opts[:class_name], :class=>opts[:class], :block=>opts[:block])
1910
+ opts[:orig_opts] = orig_opts
1911
+ # don't add to association_reflections until we are sure there are no errors
1912
+ association_reflections[name] = opts
1913
+ end
1914
+
1915
+ # The association reflection hash for the association of the given name.
1916
+ def association_reflection(name)
1917
+ association_reflections[name]
1918
+ end
1919
+
1920
+ # Array of association name symbols
1921
+ def associations
1922
+ association_reflections.keys
1923
+ end
1924
+
1925
+ # Eager load the association with the given eager loader options.
1926
+ def eager_load_results(opts, eo, &block)
1927
+ opts.eager_load_results(eo, &block)
1928
+ end
1929
+
1930
+ # Freeze association related metadata when freezing model class.
1931
+ def freeze
1932
+ @association_reflections.freeze.each_value(&:freeze)
1933
+ @autoreloading_associations.freeze.each_value(&:freeze)
1934
+ @default_association_options.freeze
1935
+ @default_association_type_options.freeze
1936
+ @default_association_type_options.each_value(&:freeze)
1937
+
1938
+ super
1939
+ end
1940
+
1941
+ # Finalize all associations such that values that are looked up
1942
+ # dynamically in associated classes are set statically.
1943
+ # As this modifies the associations, it must be done before
1944
+ # calling freeze.
1945
+ def finalize_associations
1946
+ @association_reflections.each_value(&:finalize)
1947
+ end
1948
+
1949
+ # Shortcut for adding a many_to_many association, see #associate
1950
+ def many_to_many(name, opts=OPTS, &block)
1951
+ associate(:many_to_many, name, opts, &block)
1952
+ end
1953
+
1954
+ # Shortcut for adding a many_to_one association, see #associate
1955
+ def many_to_one(name, opts=OPTS, &block)
1956
+ associate(:many_to_one, name, opts, &block)
1957
+ end
1958
+
1959
+ # Shortcut for adding a one_through_one association, see #associate
1960
+ def one_through_one(name, opts=OPTS, &block)
1961
+ associate(:one_through_one, name, opts, &block)
1962
+ end
1963
+
1964
+ # Shortcut for adding a one_to_many association, see #associate
1965
+ def one_to_many(name, opts=OPTS, &block)
1966
+ associate(:one_to_many, name, opts, &block)
1967
+ end
1968
+
1969
+ # Shortcut for adding a one_to_one association, see #associate
1970
+ def one_to_one(name, opts=OPTS, &block)
1971
+ associate(:one_to_one, name, opts, &block)
1972
+ end
1973
+
1974
+ Plugins.inherited_instance_variables(self, :@association_reflections=>:dup, :@autoreloading_associations=>:hash_dup, :@default_association_options=>:dup, :@default_association_type_options=>:hash_dup, :@cache_associations=>nil, :@default_eager_limit_strategy=>nil)
1975
+ Plugins.def_dataset_methods(self, [:eager, :eager_graph, :eager_graph_with_options, :association_join, :association_full_join, :association_inner_join, :association_left_join, :association_right_join])
1976
+
1977
+ private
1978
+
1979
+ # The default value for the instance_specific option, if the association
1980
+ # could be instance specific and the :instance_specific option is not specified.
1981
+ def _association_instance_specific_default(_)
1982
+ true
1983
+ end
1984
+
1985
+ # The module to use for the association's methods. Defaults to
1986
+ # the overridable_methods_module.
1987
+ def association_module(opts=OPTS)
1988
+ opts.fetch(:methods_module, overridable_methods_module)
1989
+ end
1990
+
1991
+ # Add a method to the module included in the class, so the method
1992
+ # can be easily overridden in the class itself while allowing for
1993
+ # super to be called.
1994
+ def association_module_def(name, opts=OPTS, &block)
1995
+ mod = association_module(opts)
1996
+ mod.send(:define_method, name, &block)
1997
+ mod.send(:alias_method, name, name)
1998
+ end
1999
+
2000
+ # Add a method to the module included in the class, so the method
2001
+ # can be easily overridden in the class itself while allowing for
2002
+ # super to be called. This method allows passing keywords through
2003
+ # the defined methods.
2004
+ def association_module_delegate_def(name, opts, &block)
2005
+ mod = association_module(opts)
2006
+ mod.send(:define_method, name, &block)
2007
+ # :nocov:
2008
+ mod.send(:ruby2_keywords, name) if mod.respond_to?(:ruby2_keywords, true)
2009
+ # :nocov:
2010
+ mod.send(:alias_method, name, name)
2011
+ end
2012
+
2013
+ # Add a private method to the module included in the class.
2014
+ def association_module_private_def(name, opts=OPTS, &block)
2015
+ association_module_def(name, opts, &block)
2016
+ association_module(opts).send(:private, name)
2017
+ end
2018
+
2019
+ # Delegate to the type-specific association method to setup the
2020
+ # association, and define the association instance methods.
2021
+ def def_association(opts)
2022
+ send(:"def_#{opts[:type]}", opts)
2023
+ def_association_instance_methods(opts)
2024
+ end
2025
+
2026
+ # Adds the association method to the association methods module.
2027
+ def def_association_method(opts)
2028
+ association_module_def(opts.association_method, opts) do |dynamic_opts=OPTS, &block|
2029
+ load_associated_objects(opts, dynamic_opts, &block)
2030
+ end
2031
+ end
2032
+
2033
+ # Define all of the association instance methods for this association.
2034
+ def def_association_instance_methods(opts)
2035
+ # Always set the method names in the association reflection, even if they
2036
+ # are not used, for backwards compatibility.
2037
+ opts[:dataset_method] = :"#{opts[:name]}_dataset"
2038
+ if opts.returns_array?
2039
+ sname = singularize(opts[:name])
2040
+ opts[:_add_method] = :"_add_#{sname}"
2041
+ opts[:add_method] = :"add_#{sname}"
2042
+ opts[:_remove_method] = :"_remove_#{sname}"
2043
+ opts[:remove_method] = :"remove_#{sname}"
2044
+ opts[:_remove_all_method] = :"_remove_all_#{opts[:name]}"
2045
+ opts[:remove_all_method] = :"remove_all_#{opts[:name]}"
2046
+ else
2047
+ opts[:_setter_method] = :"_#{opts[:name]}="
2048
+ opts[:setter_method] = :"#{opts[:name]}="
2049
+ end
2050
+
2051
+ association_module_def(opts.dataset_method, opts){_dataset(opts)} unless opts[:no_dataset_method]
2052
+ if opts[:block]
2053
+ opts[:block_method] = Plugins.def_sequel_method(association_module(opts), "#{opts[:name]}_block", 1, &opts[:block])
2054
+ end
2055
+ opts[:dataset_opt_arity] = opts[:dataset].arity == 0 ? 0 : 1
2056
+ opts[:dataset_opt_method] = Plugins.def_sequel_method(association_module(opts), "#{opts[:name]}_dataset_opt", opts[:dataset_opt_arity], &opts[:dataset])
2057
+ def_association_method(opts) unless opts[:no_association_method]
2058
+
2059
+ return if opts[:read_only]
2060
+
2061
+ if opts[:setter] && opts[:_setter]
2062
+ # This is backwards due to backwards compatibility
2063
+ association_module_private_def(opts[:_setter_method], opts, &opts[:setter])
2064
+ association_module_def(opts[:setter_method], opts, &opts[:_setter])
2065
+ end
2066
+
2067
+ if adder = opts[:adder]
2068
+ association_module_private_def(opts[:_add_method], opts, &adder)
2069
+ association_module_delegate_def(opts[:add_method], opts){|o,*args| add_associated_object(opts, o, *args)}
2070
+ end
2071
+
2072
+ if remover = opts[:remover]
2073
+ association_module_private_def(opts[:_remove_method], opts, &remover)
2074
+ association_module_delegate_def(opts[:remove_method], opts){|o,*args| remove_associated_object(opts, o, *args)}
2075
+ end
2076
+
2077
+ if clearer = opts[:clearer]
2078
+ association_module_private_def(opts[:_remove_all_method], opts, &clearer)
2079
+ association_module_delegate_def(opts[:remove_all_method], opts){|*args| remove_all_associated_objects(opts, *args)}
2080
+ end
2081
+ end
2082
+
2083
+ # Configures many_to_many and one_through_one association reflection and adds the related association methods
2084
+ def def_many_to_many(opts)
2085
+ one_through_one = opts[:type] == :one_through_one
2086
+ left = (opts[:left_key] ||= opts.default_left_key)
2087
+ lcks = opts[:left_keys] = Array(left)
2088
+ right = (opts[:right_key] ||= opts.default_right_key)
2089
+ rcks = opts[:right_keys] = Array(right)
2090
+ left_pk = (opts[:left_primary_key] ||= self.primary_key)
2091
+ opts[:eager_loader_key] = left_pk unless opts.has_key?(:eager_loader_key)
2092
+ lcpks = opts[:left_primary_keys] = Array(left_pk)
2093
+ lpkc = opts[:left_primary_key_column] ||= left_pk
2094
+ lpkcs = opts[:left_primary_key_columns] ||= Array(lpkc)
2095
+ raise(Error, "mismatched number of left keys: #{lcks.inspect} vs #{lcpks.inspect}") unless lcks.length == lcpks.length
2096
+ if opts[:right_primary_key]
2097
+ rcpks = Array(opts[:right_primary_key])
2098
+ raise(Error, "mismatched number of right keys: #{rcks.inspect} vs #{rcpks.inspect}") unless rcks.length == rcpks.length
2099
+ end
2100
+ opts[:uses_left_composite_keys] = lcks.length > 1
2101
+ uses_rcks = opts[:uses_right_composite_keys] = rcks.length > 1
2102
+ opts[:cartesian_product_number] ||= one_through_one ? 0 : 1
2103
+ join_table = (opts[:join_table] ||= opts.default_join_table)
2104
+ opts[:left_key_alias] ||= opts.default_associated_key_alias
2105
+ opts[:graph_join_table_join_type] ||= opts[:graph_join_type]
2106
+ if opts[:uniq]
2107
+ opts[:after_load] ||= []
2108
+ opts[:after_load].unshift(:array_uniq!)
2109
+ end
2110
+ if join_table_db = opts[:join_table_db]
2111
+ opts[:use_placeholder_loader] = false
2112
+ opts[:allow_eager_graph] = false
2113
+ opts[:allow_filtering_by] = false
2114
+ opts[:eager_limit_strategy] = nil
2115
+ join_table_ds = join_table_db.from(join_table)
2116
+ opts[:dataset] ||= proc do |r|
2117
+ vals = join_table_ds.where(lcks.zip(lcpks.map{|k| get_column_value(k)})).select_map(right)
2118
+ ds = r.associated_dataset.where(opts.right_primary_key => vals)
2119
+ if uses_rcks
2120
+ vals.delete_if{|v| v.any?(&:nil?)}
2121
+ else
2122
+ vals.delete(nil)
2123
+ end
2124
+ ds = ds.clone(:no_results=>true) if vals.empty?
2125
+ ds
2126
+ end
2127
+ opts[:eager_loader] ||= proc do |eo|
2128
+ h = eo[:id_map]
2129
+ assign_singular = opts.assign_singular?
2130
+ rpk = opts.right_primary_key
2131
+ name = opts[:name]
2132
+
2133
+ join_map = join_table_ds.where(left=>h.keys).select_hash_groups(right, left)
2134
+
2135
+ if uses_rcks
2136
+ join_map.delete_if{|v,| v.any?(&:nil?)}
2137
+ else
2138
+ join_map.delete(nil)
2139
+ end
2140
+
2141
+ eo = Hash[eo]
2142
+
2143
+ if join_map.empty?
2144
+ eo[:no_results] = true
2145
+ else
2146
+ join_map.each_value do |vs|
2147
+ vs.replace(vs.flat_map{|v| h[v]})
2148
+ vs.uniq!
2149
+ end
2150
+
2151
+ eo[:loader] = false
2152
+ eo[:right_keys] = join_map.keys
2153
+ end
2154
+
2155
+ opts[:model].eager_load_results(opts, eo) do |assoc_record|
2156
+ rpkv = if uses_rcks
2157
+ assoc_record.values.values_at(*rpk)
2158
+ else
2159
+ assoc_record.values[rpk]
2160
+ end
2161
+
2162
+ objects = join_map[rpkv]
2163
+
2164
+ if assign_singular
2165
+ objects.each do |object|
2166
+ object.associations[name] ||= assoc_record
2167
+ end
2168
+ else
2169
+ objects.each do |object|
2170
+ object.associations[name].push(assoc_record)
2171
+ end
2172
+ end
2173
+ end
2174
+ end
2175
+ else
2176
+ opts[:dataset] ||= opts.association_dataset_proc
2177
+ opts[:eager_loader] ||= opts.method(:default_eager_loader)
2178
+ end
2179
+
2180
+ join_type = opts[:graph_join_type]
2181
+ select = opts[:graph_select]
2182
+ use_only_conditions = opts.include?(:graph_only_conditions)
2183
+ only_conditions = opts[:graph_only_conditions]
2184
+ conditions = opts[:graph_conditions]
2185
+ graph_block = opts[:graph_block]
2186
+ graph_jt_conds = opts[:graph_join_table_conditions] = opts.fetch(:graph_join_table_conditions, []).to_a
2187
+ use_jt_only_conditions = opts.include?(:graph_join_table_only_conditions)
2188
+ jt_only_conditions = opts[:graph_join_table_only_conditions]
2189
+ jt_join_type = opts[:graph_join_table_join_type]
2190
+ jt_graph_block = opts[:graph_join_table_block]
2191
+ opts[:eager_grapher] ||= proc do |eo|
2192
+ ds = eo[:self]
2193
+ egls = eo[:limit_strategy]
2194
+ if egls && egls != :ruby
2195
+ associated_key_array = opts.associated_key_array
2196
+ orig_egds = egds = eager_graph_dataset(opts, eo)
2197
+ egds = egds.
2198
+ inner_join(join_table, rcks.zip(opts.right_primary_keys) + graph_jt_conds, :qualify=>:deep).
2199
+ select_all(egds.first_source).
2200
+ select_append(*associated_key_array)
2201
+ egds = opts.apply_eager_graph_limit_strategy(egls, egds)
2202
+ ds.graph(egds, associated_key_array.map(&:alias).zip(lpkcs) + conditions, :qualify=>:deep, :table_alias=>eo[:table_alias], :implicit_qualifier=>eo[:implicit_qualifier], :join_type=>eo[:join_type]||join_type, :from_self_alias=>eo[:from_self_alias], :join_only=>eo[:join_only], :select=>select||orig_egds.columns, &graph_block)
2203
+ else
2204
+ ds = ds.graph(join_table, use_jt_only_conditions ? jt_only_conditions : lcks.zip(lpkcs) + graph_jt_conds, :select=>false, :table_alias=>ds.unused_table_alias(join_table, [eo[:table_alias]]), :join_type=>eo[:join_type]||jt_join_type, :join_only=>eo[:join_only], :implicit_qualifier=>eo[:implicit_qualifier], :qualify=>:deep, :from_self_alias=>eo[:from_self_alias], &jt_graph_block)
2205
+ ds.graph(eager_graph_dataset(opts, eo), use_only_conditions ? only_conditions : opts.right_primary_keys.zip(rcks) + conditions, :select=>select, :table_alias=>eo[:table_alias], :qualify=>:deep, :join_type=>eo[:join_type]||join_type, :join_only=>eo[:join_only], &graph_block)
2206
+ end
2207
+ end
2208
+
2209
+ return if opts[:read_only]
2210
+
2211
+ if one_through_one
2212
+ unless opts.has_key?(:setter)
2213
+ opts[:setter] = proc do |o|
2214
+ h = {}
2215
+ lh = lcks.zip(lcpks.map{|k| get_column_value(k)})
2216
+ jtds = _join_table_dataset(opts).where(lh)
2217
+
2218
+ checked_transaction do
2219
+ current = jtds.first
2220
+
2221
+ if o
2222
+ new_values = []
2223
+ rcks.zip(opts.right_primary_key_methods).each{|k, pk| new_values << (h[k] = o.get_column_value(pk))}
2224
+ end
2225
+
2226
+ if current
2227
+ current_values = rcks.map{|k| current[k]}
2228
+ jtds = jtds.where(rcks.zip(current_values))
2229
+ if o
2230
+ if current_values != new_values
2231
+ jtds.update(h)
2232
+ end
2233
+ else
2234
+ jtds.delete
2235
+ end
2236
+ elsif o
2237
+ lh.each{|k,v| h[k] = v}
2238
+ jtds.insert(h)
2239
+ end
2240
+ end
2241
+ end
2242
+ end
2243
+ if opts.fetch(:setter, true)
2244
+ opts[:_setter] = proc{|o| set_one_through_one_associated_object(opts, o)}
2245
+ end
2246
+ else
2247
+ unless opts.has_key?(:adder)
2248
+ opts[:adder] = proc do |o|
2249
+ h = {}
2250
+ lcks.zip(lcpks).each{|k, pk| h[k] = get_column_value(pk)}
2251
+ rcks.zip(opts.right_primary_key_methods).each{|k, pk| h[k] = o.get_column_value(pk)}
2252
+ _join_table_dataset(opts).insert(h)
2253
+ end
2254
+ end
2255
+
2256
+ unless opts.has_key?(:remover)
2257
+ opts[:remover] = proc do |o|
2258
+ _join_table_dataset(opts).where(lcks.zip(lcpks.map{|k| get_column_value(k)}) + rcks.zip(opts.right_primary_key_methods.map{|k| o.get_column_value(k)})).delete
2259
+ end
2260
+ end
2261
+
2262
+ unless opts.has_key?(:clearer)
2263
+ opts[:clearer] = proc do
2264
+ _join_table_dataset(opts).where(lcks.zip(lcpks.map{|k| get_column_value(k)})).delete
2265
+ end
2266
+ end
2267
+ end
2268
+ end
2269
+
2270
+ # Configures many_to_one association reflection and adds the related association methods
2271
+ def def_many_to_one(opts)
2272
+ name = opts[:name]
2273
+ opts[:key] = opts.default_key unless opts.has_key?(:key)
2274
+ key = opts[:key]
2275
+ opts[:eager_loader_key] = key unless opts.has_key?(:eager_loader_key)
2276
+ cks = opts[:graph_keys] = opts[:keys] = Array(key)
2277
+ opts[:key_column] ||= key
2278
+ opts[:graph_keys] = opts[:key_columns] = Array(opts[:key_column])
2279
+ opts[:qualified_key] = opts.qualify_cur(key)
2280
+ if opts[:primary_key]
2281
+ cpks = Array(opts[:primary_key])
2282
+ raise(Error, "mismatched number of keys: #{cks.inspect} vs #{cpks.inspect}") unless cks.length == cpks.length
2283
+ end
2284
+ uses_cks = opts[:uses_composite_keys] = cks.length > 1
2285
+ opts[:cartesian_product_number] ||= 0
2286
+
2287
+ if !opts.has_key?(:many_to_one_pk_lookup) &&
2288
+ (opts[:dataset] || opts[:conditions] || opts[:block] || opts[:select] ||
2289
+ (opts.has_key?(:key) && opts[:key] == nil))
2290
+ opts[:many_to_one_pk_lookup] = false
2291
+ end
2292
+ auto_assocs = @autoreloading_associations
2293
+ cks.each do |k|
2294
+ (auto_assocs[k] ||= []) << name
2295
+ end
2296
+
2297
+ opts[:dataset] ||= opts.association_dataset_proc
2298
+ opts[:eager_loader] ||= proc do |eo|
2299
+ h = eo[:id_map]
2300
+ pk_meths = opts.primary_key_methods
2301
+
2302
+ eager_load_results(opts, eo) do |assoc_record|
2303
+ hash_key = uses_cks ? pk_meths.map{|k| assoc_record.get_column_value(k)} : assoc_record.get_column_value(opts.primary_key_method)
2304
+ h[hash_key].each{|object| object.associations[name] = assoc_record}
2305
+ end
2306
+ end
2307
+
2308
+ join_type = opts[:graph_join_type]
2309
+ select = opts[:graph_select]
2310
+ use_only_conditions = opts.include?(:graph_only_conditions)
2311
+ only_conditions = opts[:graph_only_conditions]
2312
+ conditions = opts[:graph_conditions]
2313
+ graph_block = opts[:graph_block]
2314
+ graph_cks = opts[:graph_keys]
2315
+ opts[:eager_grapher] ||= proc do |eo|
2316
+ ds = eo[:self]
2317
+ ds.graph(eager_graph_dataset(opts, eo), use_only_conditions ? only_conditions : opts.primary_keys.zip(graph_cks) + conditions, eo.merge(:select=>select, :join_type=>eo[:join_type]||join_type, :qualify=>:deep), &graph_block)
2318
+ end
2319
+
2320
+ return if opts[:read_only]
2321
+
2322
+ unless opts.has_key?(:setter)
2323
+ opts[:setter] = proc{|o| cks.zip(opts.primary_key_methods).each{|k, pk| set_column_value(:"#{k}=", (o.get_column_value(pk) if o))}}
2324
+ end
2325
+ if opts.fetch(:setter, true)
2326
+ opts[:_setter] = proc{|o| set_associated_object(opts, o)}
2327
+ end
2328
+ end
2329
+
2330
+ # Configures one_to_many and one_to_one association reflections and adds the related association methods
2331
+ def def_one_to_many(opts)
2332
+ one_to_one = opts[:type] == :one_to_one
2333
+ name = opts[:name]
2334
+ key = (opts[:key] ||= opts.default_key)
2335
+ km = opts[:key_method] ||= opts[:key]
2336
+ cks = opts[:keys] = Array(key)
2337
+ opts[:key_methods] = Array(opts[:key_method])
2338
+ primary_key = (opts[:primary_key] ||= self.primary_key)
2339
+ opts[:eager_loader_key] = primary_key unless opts.has_key?(:eager_loader_key)
2340
+ cpks = opts[:primary_keys] = Array(primary_key)
2341
+ pkc = opts[:primary_key_column] ||= primary_key
2342
+ pkcs = opts[:primary_key_columns] ||= Array(pkc)
2343
+ raise(Error, "mismatched number of keys: #{cks.inspect} vs #{cpks.inspect}") unless cks.length == cpks.length
2344
+ uses_cks = opts[:uses_composite_keys] = cks.length > 1
2345
+ opts[:dataset] ||= opts.association_dataset_proc
2346
+ opts[:eager_loader] ||= proc do |eo|
2347
+ h = eo[:id_map]
2348
+ reciprocal = opts.reciprocal
2349
+ assign_singular = opts.assign_singular?
2350
+ delete_rn = opts.delete_row_number_column
2351
+
2352
+ eager_load_results(opts, eo) do |assoc_record|
2353
+ assoc_record.values.delete(delete_rn) if delete_rn
2354
+ hash_key = uses_cks ? km.map{|k| assoc_record.get_column_value(k)} : assoc_record.get_column_value(km)
2355
+ objects = h[hash_key]
2356
+ if assign_singular
2357
+ objects.each do |object|
2358
+ unless object.associations[name]
2359
+ object.associations[name] = assoc_record
2360
+ assoc_record.associations[reciprocal] = object if reciprocal
2361
+ end
2362
+ end
2363
+ else
2364
+ objects.each do |object|
2365
+ object.associations[name].push(assoc_record)
2366
+ assoc_record.associations[reciprocal] = object if reciprocal
2367
+ end
2368
+ end
2369
+ end
2370
+ end
2371
+
2372
+ join_type = opts[:graph_join_type]
2373
+ select = opts[:graph_select]
2374
+ use_only_conditions = opts.include?(:graph_only_conditions)
2375
+ only_conditions = opts[:graph_only_conditions]
2376
+ conditions = opts[:graph_conditions]
2377
+ opts[:cartesian_product_number] ||= one_to_one ? 0 : 1
2378
+ graph_block = opts[:graph_block]
2379
+ opts[:eager_grapher] ||= proc do |eo|
2380
+ ds = eo[:self]
2381
+ ds = ds.graph(opts.apply_eager_graph_limit_strategy(eo[:limit_strategy], eager_graph_dataset(opts, eo)), use_only_conditions ? only_conditions : cks.zip(pkcs) + conditions, eo.merge(:select=>select, :join_type=>eo[:join_type]||join_type, :qualify=>:deep), &graph_block)
2382
+ # We only load reciprocals for one_to_many associations, as other reciprocals don't make sense
2383
+ ds.opts[:eager_graph][:reciprocals][eo[:table_alias]] = opts.reciprocal
2384
+ ds
2385
+ end
2386
+
2387
+ return if opts[:read_only]
2388
+
2389
+ save_opts = {:validate=>opts[:validate]}
2390
+ ck_nil_hash ={}
2391
+ cks.each{|k| ck_nil_hash[k] = nil}
2392
+
2393
+ if one_to_one
2394
+ unless opts.has_key?(:setter)
2395
+ opts[:setter] = proc do |o|
2396
+ up_ds = _apply_association_options(opts, opts.associated_dataset.where(cks.zip(cpks.map{|k| get_column_value(k)})))
2397
+
2398
+ if (froms = up_ds.opts[:from]) && (from = froms[0]) && (from.is_a?(Sequel::Dataset) || (from.is_a?(Sequel::SQL::AliasedExpression) && from.expression.is_a?(Sequel::Dataset)))
2399
+ if old = up_ds.first
2400
+ cks.each{|k| old.set_column_value(:"#{k}=", nil)}
2401
+ end
2402
+ save_old = true
2403
+ end
2404
+
2405
+ if o
2406
+ if !o.new? && !save_old
2407
+ up_ds = up_ds.exclude(o.pk_hash)
2408
+ end
2409
+ cks.zip(cpks).each{|k, pk| o.set_column_value(:"#{k}=", get_column_value(pk))}
2410
+ end
2411
+
2412
+ checked_transaction do
2413
+ if save_old
2414
+ old.save(save_opts) || raise(Sequel::Error, "invalid previously associated object, cannot save") if old
2415
+ else
2416
+ up_ds.skip_limit_check.update(ck_nil_hash)
2417
+ end
2418
+
2419
+ o.save(save_opts) || raise(Sequel::Error, "invalid associated object, cannot save") if o
2420
+ end
2421
+ end
2422
+ end
2423
+ if opts.fetch(:setter, true)
2424
+ opts[:_setter] = proc{|o| set_one_to_one_associated_object(opts, o)}
2425
+ end
2426
+ else
2427
+ save_opts[:raise_on_failure] = opts[:raise_on_save_failure] != false
2428
+
2429
+ unless opts.has_key?(:adder)
2430
+ opts[:adder] = proc do |o|
2431
+ cks.zip(cpks).each{|k, pk| o.set_column_value(:"#{k}=", get_column_value(pk))}
2432
+ o.save(save_opts)
2433
+ end
2434
+ end
2435
+
2436
+ unless opts.has_key?(:remover)
2437
+ opts[:remover] = proc do |o|
2438
+ cks.each{|k| o.set_column_value(:"#{k}=", nil)}
2439
+ o.save(save_opts)
2440
+ end
2441
+ end
2442
+
2443
+ unless opts.has_key?(:clearer)
2444
+ opts[:clearer] = proc do
2445
+ _apply_association_options(opts, opts.associated_dataset.where(cks.zip(cpks.map{|k| get_column_value(k)}))).update(ck_nil_hash)
2446
+ end
2447
+ end
2448
+ end
2449
+ end
2450
+
2451
+ # Alias of def_many_to_many, since they share pretty much the same code.
2452
+ def def_one_through_one(opts)
2453
+ def_many_to_many(opts)
2454
+ end
2455
+
2456
+ # Alias of def_one_to_many, since they share pretty much the same code.
2457
+ def def_one_to_one(opts)
2458
+ def_one_to_many(opts)
2459
+ end
2460
+
2461
+ # Return dataset to graph into given the association reflection, applying the :callback option if set.
2462
+ def eager_graph_dataset(opts, eager_options)
2463
+ ds = opts.associated_class.dataset
2464
+ if cb = eager_options[:callback]
2465
+ ds = cb.call(ds)
2466
+ end
2467
+ ds
2468
+ end
2469
+
2470
+ # If not caching associations, reload the database schema by default,
2471
+ # ignoring any cached values.
2472
+ def reload_db_schema?
2473
+ !@cache_associations
2474
+ end
2475
+ end
2476
+
2477
+ # Instance methods used to implement the associations support.
2478
+ module InstanceMethods
2479
+ # The currently cached associations. A hash with the keys being the
2480
+ # association name symbols and the values being the associated object
2481
+ # or nil (many_to_one), or the array of associated objects (*_to_many).
2482
+ def associations
2483
+ @associations ||= {}
2484
+ end
2485
+
2486
+ # Freeze the associations cache when freezing the object. Note that
2487
+ # retrieving associations after freezing will still work in most cases,
2488
+ # but the associations will not be cached in the association cache.
2489
+ def freeze
2490
+ associations
2491
+ super
2492
+ associations.freeze
2493
+ self
2494
+ end
2495
+
2496
+ private
2497
+
2498
+ # Apply the association options such as :order and :limit to the given dataset, returning a modified dataset.
2499
+ def _apply_association_options(opts, ds)
2500
+ unless ds.kind_of?(AssociationDatasetMethods)
2501
+ ds = opts.apply_dataset_changes(ds)
2502
+ end
2503
+ ds = ds.clone(:model_object => self)
2504
+ ds = ds.eager_graph(opts[:eager_graph]) if opts[:eager_graph] && opts.eager_graph_lazy_dataset?
2505
+ # block method is private
2506
+ ds = send(opts[:block_method], ds) if opts[:block_method]
2507
+ ds
2508
+ end
2509
+
2510
+ # Return a dataset for the association after applying any dynamic callback.
2511
+ def _associated_dataset(opts, dynamic_opts)
2512
+ ds = public_send(opts.dataset_method)
2513
+ if callback = dynamic_opts[:callback]
2514
+ ds = callback.call(ds)
2515
+ end
2516
+ ds
2517
+ end
2518
+
2519
+ # A placeholder literalizer that can be used to load the association, or nil to not use one.
2520
+ def _associated_object_loader(opts, dynamic_opts)
2521
+ if !dynamic_opts[:callback] && (loader = opts.placeholder_loader)
2522
+ loader
2523
+ end
2524
+ end
2525
+
2526
+ # Return an association dataset for the given association reflection
2527
+ def _dataset(opts)
2528
+ raise(Sequel::Error, "model object #{inspect} does not have a primary key") if opts.dataset_need_primary_key? && !pk
2529
+ ds = if opts[:dataset_opt_arity] == 1
2530
+ # dataset_opt_method is private
2531
+ send(opts[:dataset_opt_method], opts)
2532
+ else
2533
+ send(opts[:dataset_opt_method])
2534
+ end
2535
+ _apply_association_options(opts, ds)
2536
+ end
2537
+
2538
+ # Dataset for the join table of the given many to many association reflection
2539
+ def _join_table_dataset(opts)
2540
+ ds = (opts[:join_table_db] || model.db).from(opts.join_table_source)
2541
+ opts[:join_table_block] ? opts[:join_table_block].call(ds) : ds
2542
+ end
2543
+
2544
+ # Return the associated single object for the given association reflection and dynamic options
2545
+ # (or nil if no associated object).
2546
+ def _load_associated_object(opts, dynamic_opts)
2547
+ _load_associated_object_array(opts, dynamic_opts).first
2548
+ end
2549
+
2550
+ # Return the associated single object using a primary key lookup on the associated class.
2551
+ def _load_associated_object_via_primary_key(opts)
2552
+ opts.associated_class.send(:primary_key_lookup, ((fk = opts[:key]).is_a?(Array) ? fk.map{|c| get_column_value(c)} : get_column_value(fk)))
2553
+ end
2554
+
2555
+ # Load the associated objects for the given association reflection and dynamic options
2556
+ # as an array.
2557
+ def _load_associated_object_array(opts, dynamic_opts)
2558
+ if loader = _associated_object_loader(opts, dynamic_opts)
2559
+ loader.all(*opts.predicate_key_values(self))
2560
+ else
2561
+ ds = _associated_dataset(opts, dynamic_opts)
2562
+ if ds.opts[:no_results]
2563
+ []
2564
+ else
2565
+ ds.all
2566
+ end
2567
+ end
2568
+ end
2569
+
2570
+ # Return the associated objects from the dataset, without association callbacks, reciprocals, and caching.
2571
+ # Still apply the dynamic callback if present.
2572
+ def _load_associated_objects(opts, dynamic_opts=OPTS)
2573
+ if opts.can_have_associated_objects?(self)
2574
+ if opts.returns_array?
2575
+ _load_associated_object_array(opts, dynamic_opts)
2576
+ elsif load_with_primary_key_lookup?(opts, dynamic_opts)
2577
+ _load_associated_object_via_primary_key(opts)
2578
+ else
2579
+ _load_associated_object(opts, dynamic_opts)
2580
+ end
2581
+ elsif opts.returns_array?
2582
+ []
2583
+ end
2584
+ end
2585
+
2586
+ # Clear the associations cache when refreshing
2587
+ def _refresh_set_values(hash)
2588
+ @associations.clear if @associations
2589
+ super
2590
+ end
2591
+
2592
+ # Add the given associated object to the given association
2593
+ def add_associated_object(opts, o, *args)
2594
+ o = make_add_associated_object(opts, o)
2595
+ raise(Sequel::Error, "model object #{inspect} does not have a primary key") if opts.dataset_need_primary_key? && !pk
2596
+ ensure_associated_primary_key(opts, o, *args)
2597
+ return if run_association_callbacks(opts, :before_add, o) == false
2598
+ # Allow calling private _add method
2599
+ return if !send(opts[:_add_method], o, *args) && opts.handle_silent_modification_failure?
2600
+ if array = associations[opts[:name]] and !array.include?(o)
2601
+ array.push(o)
2602
+ end
2603
+ add_reciprocal_object(opts, o)
2604
+ run_association_callbacks(opts, :after_add, o)
2605
+ o
2606
+ end
2607
+ # :nocov:
2608
+ ruby2_keywords(:add_associated_object) if respond_to?(:ruby2_keywords, true)
2609
+ # :nocov:
2610
+
2611
+ # Add/Set the current object to/as the given object's reciprocal association.
2612
+ def add_reciprocal_object(opts, o)
2613
+ return if o.frozen?
2614
+ return unless reciprocal = opts.reciprocal
2615
+ if opts.reciprocal_array?
2616
+ if array = o.associations[reciprocal] and !array.include?(self)
2617
+ array.push(self)
2618
+ end
2619
+ else
2620
+ o.associations[reciprocal] = self
2621
+ end
2622
+ end
2623
+
2624
+ # Call uniq! on the given array. This is used by the :uniq option,
2625
+ # and is an actual method for memory reasons.
2626
+ def array_uniq!(a)
2627
+ a.uniq!
2628
+ end
2629
+
2630
+ # If a foreign key column value changes, clear the related
2631
+ # cached associations.
2632
+ def change_column_value(column, value)
2633
+ if assocs = model.autoreloading_associations[column]
2634
+ vals = @values
2635
+ if new?
2636
+ # Do deeper checking for new objects, so that associations are
2637
+ # not deleted when values do not change. This code is run at
2638
+ # a higher level for existing objects.
2639
+ if value == (c = vals[column]) && value.class == c.class
2640
+ # If the value is the same, there is no reason to delete
2641
+ # the related associations, so exit early in that case.
2642
+ return super
2643
+ end
2644
+
2645
+ only_delete_nil = c.nil?
2646
+ elsif vals[column].nil?
2647
+ only_delete_nil = true
2648
+ end
2649
+
2650
+ if only_delete_nil
2651
+ # If the current foreign key value is nil, but the association
2652
+ # is already present in the cache, it was probably added to the
2653
+ # cache for a reason, and we do not want to delete it in that case.
2654
+ # However, we still want to delete associations with nil values
2655
+ # to remove the cached false negative.
2656
+ assocs.each{|a| associations.delete(a) if associations[a].nil?}
2657
+ else
2658
+ assocs.each{|a| associations.delete(a)}
2659
+ end
2660
+ end
2661
+ super
2662
+ end
2663
+
2664
+ # Save the associated object if the associated object needs a primary key
2665
+ # and the associated object is new and does not have one. Raise an error if
2666
+ # the object still does not have a primary key
2667
+ def ensure_associated_primary_key(opts, o, *args)
2668
+ if opts.need_associated_primary_key?
2669
+ o.save(:validate=>opts[:validate]) if o.new?
2670
+ raise(Sequel::Error, "associated object #{o.inspect} does not have a primary key") unless o.pk
2671
+ end
2672
+ end
2673
+
2674
+ # Duplicate the associations hash when duplicating the object.
2675
+ def initialize_copy(other)
2676
+ super
2677
+ @associations = Hash[@associations] if @associations
2678
+ self
2679
+ end
2680
+
2681
+ # If a block is given, assign it as the :callback option in the hash, and return the hash.
2682
+ def load_association_objects_options(dynamic_opts, &block)
2683
+ if block
2684
+ dynamic_opts = Hash[dynamic_opts]
2685
+ dynamic_opts[:callback] = block
2686
+ end
2687
+
2688
+ dynamic_opts
2689
+ end
2690
+
2691
+ # Load the associated objects using the dataset, handling callbacks, reciprocals, and caching.
2692
+ def load_associated_objects(opts, dynamic_opts, &block)
2693
+ dynamic_opts = load_association_objects_options(dynamic_opts, &block)
2694
+ name = opts[:name]
2695
+ if associations.include?(name) && !dynamic_opts[:callback] && !dynamic_opts[:reload]
2696
+ associations[name]
2697
+ else
2698
+ objs = _load_associated_objects(opts, dynamic_opts)
2699
+ if opts.set_reciprocal_to_self?
2700
+ if opts.returns_array?
2701
+ objs.each{|o| add_reciprocal_object(opts, o)}
2702
+ elsif objs
2703
+ add_reciprocal_object(opts, objs)
2704
+ end
2705
+ end
2706
+
2707
+ # If the current object is frozen, you can't update the associations
2708
+ # cache. This can cause issues for after_load procs that expect
2709
+ # the objects to be already cached in the associations, but
2710
+ # unfortunately that case cannot be handled.
2711
+ associations[name] = objs unless frozen?
2712
+ run_association_callbacks(opts, :after_load, objs)
2713
+ frozen? ? objs : associations[name]
2714
+ end
2715
+ end
2716
+
2717
+ # Whether to use a simple primary key lookup on the associated class when loading.
2718
+ def load_with_primary_key_lookup?(opts, dynamic_opts)
2719
+ opts[:type] == :many_to_one &&
2720
+ !dynamic_opts[:callback] &&
2721
+ opts.send(:cached_fetch, :many_to_one_pk_lookup){opts.primary_key == opts.associated_class.primary_key}
2722
+ end
2723
+
2724
+ # Convert the input of the add_* association method into an associated object. For
2725
+ # hashes, this creates a new object using the hash. For integers, strings, and arrays,
2726
+ # assume the value specifies a primary key, and lookup an existing object with that primary key.
2727
+ # Otherwise, if the object is not already an instance of the class, raise an exception.
2728
+ def make_add_associated_object(opts, o)
2729
+ klass = opts.associated_class
2730
+
2731
+ case o
2732
+ when Hash
2733
+ klass.new(o)
2734
+ when Integer, String, Array
2735
+ klass.with_pk!(o)
2736
+ when klass
2737
+ o
2738
+ else
2739
+ raise(Sequel::Error, "associated object #{o.inspect} not of correct type #{klass}")
2740
+ end
2741
+ end
2742
+
2743
+ # Remove all associated objects from the given association
2744
+ def remove_all_associated_objects(opts, *args)
2745
+ raise(Sequel::Error, "model object #{inspect} does not have a primary key") if opts.dataset_need_primary_key? && !pk
2746
+ # Allow calling private _remove_all method
2747
+ send(opts[:_remove_all_method], *args)
2748
+ ret = associations[opts[:name]].each{|o| remove_reciprocal_object(opts, o)} if associations.include?(opts[:name])
2749
+ associations[opts[:name]] = []
2750
+ ret
2751
+ end
2752
+ # :nocov:
2753
+ ruby2_keywords(:remove_all_associated_objects) if respond_to?(:ruby2_keywords, true)
2754
+ # :nocov:
2755
+
2756
+ # Remove the given associated object from the given association
2757
+ def remove_associated_object(opts, o, *args)
2758
+ klass = opts.associated_class
2759
+ if o.is_a?(Integer) || o.is_a?(String) || o.is_a?(Array)
2760
+ o = remove_check_existing_object_from_pk(opts, o, *args)
2761
+ elsif !o.is_a?(klass)
2762
+ raise(Sequel::Error, "associated object #{o.inspect} not of correct type #{klass}")
2763
+ elsif opts.remove_should_check_existing? && public_send(opts.dataset_method).where(o.pk_hash).empty?
2764
+ raise(Sequel::Error, "associated object #{o.inspect} is not currently associated to #{inspect}")
2765
+ end
2766
+ raise(Sequel::Error, "model object #{inspect} does not have a primary key") if opts.dataset_need_primary_key? && !pk
2767
+ raise(Sequel::Error, "associated object #{o.inspect} does not have a primary key") if opts.need_associated_primary_key? && !o.pk
2768
+ return if run_association_callbacks(opts, :before_remove, o) == false
2769
+ # Allow calling private _remove method
2770
+ return if !send(opts[:_remove_method], o, *args) && opts.handle_silent_modification_failure?
2771
+ associations[opts[:name]].delete_if{|x| o === x} if associations.include?(opts[:name])
2772
+ remove_reciprocal_object(opts, o)
2773
+ run_association_callbacks(opts, :after_remove, o)
2774
+ o
2775
+ end
2776
+ # :nocov:
2777
+ ruby2_keywords(:remove_associated_object) if respond_to?(:ruby2_keywords, true)
2778
+ # :nocov:
2779
+
2780
+ # Check that the object from the associated table specified by the primary key
2781
+ # is currently associated to the receiver. If it is associated, return the object, otherwise
2782
+ # raise an error.
2783
+ def remove_check_existing_object_from_pk(opts, o, *args)
2784
+ key = o
2785
+ pkh = opts.associated_class.qualified_primary_key_hash(key)
2786
+ raise(Sequel::Error, "no object with key(s) #{key.inspect} is currently associated to #{inspect}") unless o = public_send(opts.dataset_method).first(pkh)
2787
+ o
2788
+ end
2789
+
2790
+ # Remove/unset the current object from/as the given object's reciprocal association.
2791
+ def remove_reciprocal_object(opts, o)
2792
+ return unless reciprocal = opts.reciprocal
2793
+ if opts.reciprocal_array?
2794
+ if array = o.associations[reciprocal]
2795
+ array.delete_if{|x| self === x}
2796
+ end
2797
+ else
2798
+ o.associations[reciprocal] = nil
2799
+ end
2800
+ end
2801
+
2802
+ # Run the callback for the association with the object.
2803
+ def run_association_callbacks(reflection, callback_type, object)
2804
+ return unless cbs = reflection[callback_type]
2805
+
2806
+ begin
2807
+ cbs.each do |cb|
2808
+ case cb
2809
+ when Symbol
2810
+ # Allow calling private methods in association callbacks
2811
+ send(cb, object)
2812
+ when Proc
2813
+ cb.call(self, object)
2814
+ else
2815
+ raise Error, "callbacks should either be Procs or Symbols"
2816
+ end
2817
+ end
2818
+ rescue HookFailed
2819
+ # The reason we automatically set raise_error for singular associations is that
2820
+ # assignment in ruby always returns the argument instead of the result of the
2821
+ # method, so we can't return nil to signal that the association callback prevented
2822
+ # the modification
2823
+ return false unless raise_on_save_failure || !reflection.returns_array?
2824
+ raise
2825
+ end
2826
+ end
2827
+
2828
+ # Set the given object as the associated object for the given *_to_one association reflection
2829
+ def _set_associated_object(opts, o)
2830
+ a = associations[opts[:name]]
2831
+ reciprocal = opts.reciprocal
2832
+ if set_associated_object_if_same?
2833
+ if reciprocal
2834
+ remove_reciprocal = a && (a != o || a.associations[reciprocal] != self)
2835
+ add_reciprocal = o && o.associations[reciprocal] != self
2836
+ end
2837
+ else
2838
+ return if a && a == o
2839
+ if reciprocal
2840
+ remove_reciprocal = a
2841
+ add_reciprocal = o
2842
+ end
2843
+ end
2844
+ run_association_callbacks(opts, :before_set, o)
2845
+ remove_reciprocal_object(opts, a) if remove_reciprocal
2846
+ # Allow calling private _setter method
2847
+ send(opts[:_setter_method], o)
2848
+ associations[opts[:name]] = o
2849
+ add_reciprocal_object(opts, o) if add_reciprocal
2850
+ run_association_callbacks(opts, :after_set, o)
2851
+ o
2852
+ end
2853
+
2854
+ # Whether run the associated object setter code if passed the same object as the one already
2855
+ # cached in the association. Usually not set (so nil), can be set on a per-object basis
2856
+ # if necessary.
2857
+ def set_associated_object_if_same?
2858
+ @set_associated_object_if_same
2859
+ end
2860
+
2861
+ # Set the given object as the associated object for the given many_to_one association reflection
2862
+ def set_associated_object(opts, o)
2863
+ raise(Error, "associated object #{o.inspect} does not have a primary key") if o && !o.pk
2864
+ _set_associated_object(opts, o)
2865
+ end
2866
+
2867
+ # Set the given object as the associated object for the given one_through_one association reflection
2868
+ def set_one_through_one_associated_object(opts, o)
2869
+ raise(Error, "object #{inspect} does not have a primary key") unless pk
2870
+ raise(Error, "associated object #{o.inspect} does not have a primary key") if o && !o.pk
2871
+ _set_associated_object(opts, o)
2872
+ end
2873
+
2874
+ # Set the given object as the associated object for the given one_to_one association reflection
2875
+ def set_one_to_one_associated_object(opts, o)
2876
+ raise(Error, "object #{inspect} does not have a primary key") unless pk
2877
+ _set_associated_object(opts, o)
2878
+ end
2879
+ end
2880
+
2881
+ # Eager loading makes it so that you can load all associated records for a
2882
+ # set of objects in a single query, instead of a separate query for each object.
2883
+ #
2884
+ # Two separate implementations are provided. +eager+ should be used most of the
2885
+ # time, as it loads associated records using one query per association. However,
2886
+ # it does not allow you the ability to filter or order based on columns in associated tables. +eager_graph+ loads
2887
+ # all records in a single query using JOINs, allowing you to filter or order based on columns in associated
2888
+ # tables. However, +eager_graph+ is usually slower than +eager+, especially if multiple
2889
+ # one_to_many or many_to_many associations are joined.
2890
+ #
2891
+ # You can cascade the eager loading (loading associations on associated objects)
2892
+ # with no limit to the depth of the cascades. You do this by passing a hash to +eager+ or +eager_graph+
2893
+ # with the keys being associations of the current model and values being
2894
+ # associations of the model associated with the current model via the key.
2895
+ #
2896
+ # The arguments can be symbols or hashes with symbol keys (for cascaded
2897
+ # eager loading). Examples:
2898
+ #
2899
+ # Album.eager(:artist).all
2900
+ # Album.eager_graph(:artist).all
2901
+ # Album.eager(:artist, :genre).all
2902
+ # Album.eager_graph(:artist, :genre).all
2903
+ # Album.eager(:artist).eager(:genre).all
2904
+ # Album.eager_graph(:artist).eager_graph(:genre).all
2905
+ # Artist.eager(albums: :tracks).all
2906
+ # Artist.eager_graph(albums: :tracks).all
2907
+ # Artist.eager(albums: {tracks: :genre}).all
2908
+ # Artist.eager_graph(albums: {tracks: :genre}).all
2909
+ #
2910
+ # You can also pass a callback as a hash value in order to customize the dataset being
2911
+ # eager loaded at query time, analogous to the way the :eager_block association option
2912
+ # allows you to customize it at association definition time. For example,
2913
+ # if you wanted artists with their albums since 1990:
2914
+ #
2915
+ # Artist.eager(albums: proc{|ds| ds.where{year > 1990}})
2916
+ #
2917
+ # Or if you needed albums and their artist's name only, using a single query:
2918
+ #
2919
+ # Albums.eager_graph(artist: proc{|ds| ds.select(:name)})
2920
+ #
2921
+ # To cascade eager loading while using a callback, you substitute the cascaded
2922
+ # associations with a single entry hash that has the proc callback as the key and
2923
+ # the cascaded associations as the value. This will load artists with their albums
2924
+ # since 1990, and also the tracks on those albums and the genre for those tracks:
2925
+ #
2926
+ # Artist.eager(albums: {proc{|ds| ds.where{year > 1990}}=>{tracks: :genre}})
2927
+ module DatasetMethods
2928
+ %w'inner left right full'.each do |type|
2929
+ class_eval(<<-END, __FILE__, __LINE__+1)
2930
+ def association_#{type}_join(*associations)
2931
+ _association_join(:#{type}, associations)
2932
+ end
2933
+ END
2934
+ end
2935
+
2936
+ # Adds one or more INNER JOINs to the existing dataset using the keys and conditions
2937
+ # specified by the given association(s). Take the same arguments as eager_graph, and
2938
+ # operates similarly, but only adds the joins as opposed to making the other changes
2939
+ # (such as adding selected columns and setting up eager loading).
2940
+ #
2941
+ # The following methods also exist for specifying a different type of JOIN:
2942
+ #
2943
+ # association_full_join :: FULL JOIN
2944
+ # association_inner_join :: INNER JOIN
2945
+ # association_left_join :: LEFT JOIN
2946
+ # association_right_join :: RIGHT JOIN
2947
+ #
2948
+ # Examples:
2949
+ #
2950
+ # # For each album, association_join load the artist
2951
+ # Album.association_join(:artist).all
2952
+ # # SELECT *
2953
+ # # FROM albums
2954
+ # # INNER JOIN artists AS artist ON (artists.id = albums.artist_id)
2955
+ #
2956
+ # # For each album, association_join load the artist, using a specified alias
2957
+ # Album.association_join(Sequel[:artist].as(:a)).all
2958
+ # # SELECT *
2959
+ # # FROM albums
2960
+ # # INNER JOIN artists AS a ON (a.id = albums.artist_id)
2961
+ #
2962
+ # # For each album, association_join load the artist and genre
2963
+ # Album.association_join(:artist, :genre).all
2964
+ # Album.association_join(:artist).association_join(:genre).all
2965
+ # # SELECT *
2966
+ # # FROM albums
2967
+ # # INNER JOIN artists AS artist ON (artist.id = albums.artist_id)
2968
+ # # INNER JOIN genres AS genre ON (genre.id = albums.genre_id)
2969
+ #
2970
+ # # For each artist, association_join load albums and tracks for each album
2971
+ # Artist.association_join(albums: :tracks).all
2972
+ # # SELECT *
2973
+ # # FROM artists
2974
+ # # INNER JOIN albums ON (albums.artist_id = artists.id)
2975
+ # # INNER JOIN tracks ON (tracks.album_id = albums.id)
2976
+ #
2977
+ # # For each artist, association_join load albums, tracks for each album, and genre for each track
2978
+ # Artist.association_join(albums: {tracks: :genre}).all
2979
+ # # SELECT *
2980
+ # # FROM artists
2981
+ # # INNER JOIN albums ON (albums.artist_id = artists.id)
2982
+ # # INNER JOIN tracks ON (tracks.album_id = albums.id)
2983
+ # # INNER JOIN genres AS genre ON (genre.id = tracks.genre_id)
2984
+ #
2985
+ # # For each artist, association_join load albums with year > 1990
2986
+ # Artist.association_join(albums: proc{|ds| ds.where{year > 1990}}).all
2987
+ # # SELECT *
2988
+ # # FROM artists
2989
+ # # INNER JOIN (
2990
+ # # SELECT * FROM albums WHERE (year > 1990)
2991
+ # # ) AS albums ON (albums.artist_id = artists.id)
2992
+ #
2993
+ # # For each artist, association_join load albums and tracks 1-10 for each album
2994
+ # Artist.association_join(albums: {tracks: proc{|ds| ds.where(number: 1..10)}}).all
2995
+ # # SELECT *
2996
+ # # FROM artists
2997
+ # # INNER JOIN albums ON (albums.artist_id = artists.id)
2998
+ # # INNER JOIN (
2999
+ # # SELECT * FROM tracks WHERE ((number >= 1) AND (number <= 10))
3000
+ # # ) AS tracks ON (tracks.albums_id = albums.id)
3001
+ #
3002
+ # # For each artist, association_join load albums with year > 1990, and tracks for those albums
3003
+ # Artist.association_join(albums: {proc{|ds| ds.where{year > 1990}}=>:tracks}).all
3004
+ # # SELECT *
3005
+ # # FROM artists
3006
+ # # INNER JOIN (
3007
+ # # SELECT * FROM albums WHERE (year > 1990)
3008
+ # # ) AS albums ON (albums.artist_id = artists.id)
3009
+ # # INNER JOIN tracks ON (tracks.album_id = albums.id)
3010
+ def association_join(*associations)
3011
+ association_inner_join(*associations)
3012
+ end
3013
+
3014
+ # If the expression is in the form <tt>x = y</tt> where +y+ is a <tt>Sequel::Model</tt>
3015
+ # instance, array of <tt>Sequel::Model</tt> instances, or a <tt>Sequel::Model</tt> dataset,
3016
+ # assume +x+ is an association symbol and look up the association reflection
3017
+ # via the dataset's model. From there, return the appropriate SQL based on the type of
3018
+ # association and the values of the foreign/primary keys of +y+. For most association
3019
+ # types, this is a simple transformation, but for +many_to_many+ associations this
3020
+ # creates a subquery to the join table.
3021
+ def complex_expression_sql_append(sql, op, args)
3022
+ r = args[1]
3023
+ if (((op == :'=' || op == :'!=') && r.is_a?(Sequel::Model)) ||
3024
+ (multiple = ((op == :IN || op == :'NOT IN') && ((is_ds = r.is_a?(Sequel::Dataset)) || (r.respond_to?(:all?) && r.all?{|x| x.is_a?(Sequel::Model)})))))
3025
+ l = args[0]
3026
+ if ar = model.association_reflections[l]
3027
+ raise Error, "filtering by associations is not allowed for #{ar.inspect}" if ar[:allow_filtering_by] == false
3028
+
3029
+ if multiple
3030
+ klass = ar.associated_class
3031
+ if is_ds
3032
+ if r.respond_to?(:model)
3033
+ unless r.model <= klass
3034
+ # A dataset for a different model class, could be a valid regular query
3035
+ return super
3036
+ end
3037
+ else
3038
+ # Not a model dataset, could be a valid regular query
3039
+ return super
3040
+ end
3041
+ else
3042
+ unless r.all?{|x| x.is_a?(klass)}
3043
+ raise Sequel::Error, "invalid association class for one object for association #{l.inspect} used in dataset filter for model #{model.inspect}, expected class #{klass.inspect}"
3044
+ end
3045
+ end
3046
+ elsif !r.is_a?(ar.associated_class)
3047
+ raise Sequel::Error, "invalid association class #{r.class.inspect} for association #{l.inspect} used in dataset filter for model #{model.inspect}, expected class #{ar.associated_class.inspect}"
3048
+ end
3049
+
3050
+ if exp = association_filter_expression(op, ar, r)
3051
+ literal_append(sql, exp)
3052
+ else
3053
+ raise Sequel::Error, "invalid association type #{ar[:type].inspect} for association #{l.inspect} used in dataset filter for model #{model.inspect}"
3054
+ end
3055
+ elsif multiple && (is_ds || r.empty?)
3056
+ # Not a query designed for this support, could be a valid regular query
3057
+ super
3058
+ else
3059
+ raise Sequel::Error, "invalid association #{l.inspect} used in dataset filter for model #{model.inspect}"
3060
+ end
3061
+ else
3062
+ super
3063
+ end
3064
+ end
3065
+
3066
+ # The preferred eager loading method. Loads all associated records using one
3067
+ # query for each association.
3068
+ #
3069
+ # The basic idea for how it works is that the dataset is first loaded normally.
3070
+ # Then it goes through all associations that have been specified via +eager+.
3071
+ # It loads each of those associations separately, then associates them back
3072
+ # to the original dataset via primary/foreign keys. Due to the necessity of
3073
+ # all objects being present, you need to use +all+ to use eager loading, as it
3074
+ # can't work with +each+.
3075
+ #
3076
+ # This implementation avoids the complexity of extracting an object graph out
3077
+ # of a single dataset, by building the object graph out of multiple datasets,
3078
+ # one for each association. By using a separate dataset for each association,
3079
+ # it avoids problems such as aliasing conflicts and creating cartesian product
3080
+ # result sets if multiple one_to_many or many_to_many eager associations are requested.
3081
+ #
3082
+ # One limitation of using this method is that you cannot filter the current dataset
3083
+ # based on values of columns in an associated table, since the associations are loaded
3084
+ # in separate queries. To do that you need to load all associations in the
3085
+ # same query, and extract an object graph from the results of that query. If you
3086
+ # need to filter based on columns in associated tables, look at +eager_graph+
3087
+ # or join the tables you need to filter on manually.
3088
+ #
3089
+ # Each association's order, if defined, is respected.
3090
+ # If the association uses a block or has an :eager_block argument, it is used.
3091
+ #
3092
+ # To modify the associated dataset that will be used for the eager load, you should use a
3093
+ # hash for the association, with the key being the association name symbol, and the value being
3094
+ # a callable object that is called with the associated dataset and should return a modified
3095
+ # dataset. If that association also has dependent associations, instead of a callable object,
3096
+ # use a hash with the callable object being the key, and the dependent association(s) as the value.
3097
+ #
3098
+ # Examples:
3099
+ #
3100
+ # # For each album, eager load the artist
3101
+ # Album.eager(:artist).all
3102
+ # # SELECT * FROM albums
3103
+ # # SELECT * FROM artists WHERE (id IN (...))
3104
+ #
3105
+ # # For each album, eager load the artist and genre
3106
+ # Album.eager(:artist, :genre).all
3107
+ # Album.eager(:artist).eager(:genre).all
3108
+ # # SELECT * FROM albums
3109
+ # # SELECT * FROM artists WHERE (id IN (...))
3110
+ # # SELECT * FROM genres WHERE (id IN (...))
3111
+ #
3112
+ # # For each artist, eager load albums and tracks for each album
3113
+ # Artist.eager(albums: :tracks).all
3114
+ # # SELECT * FROM artists
3115
+ # # SELECT * FROM albums WHERE (artist_id IN (...))
3116
+ # # SELECT * FROM tracks WHERE (album_id IN (...))
3117
+ #
3118
+ # # For each artist, eager load albums, tracks for each album, and genre for each track
3119
+ # Artist.eager(albums: {tracks: :genre}).all
3120
+ # # SELECT * FROM artists
3121
+ # # SELECT * FROM albums WHERE (artist_id IN (...))
3122
+ # # SELECT * FROM tracks WHERE (album_id IN (...))
3123
+ # # SELECT * FROM genre WHERE (id IN (...))
3124
+ #
3125
+ # # For each artist, eager load albums with year > 1990
3126
+ # Artist.eager(albums: proc{|ds| ds.where{year > 1990}}).all
3127
+ # # SELECT * FROM artists
3128
+ # # SELECT * FROM albums WHERE ((year > 1990) AND (artist_id IN (...)))
3129
+ #
3130
+ # # For each artist, eager load albums and tracks 1-10 for each album
3131
+ # Artist.eager(albums: {tracks: proc{|ds| ds.where(number: 1..10)}}).all
3132
+ # # SELECT * FROM artists
3133
+ # # SELECT * FROM albums WHERE (artist_id IN (...))
3134
+ # # SELECT * FROM tracks WHERE ((number >= 1) AND (number <= 10) AND (album_id IN (...)))
3135
+ #
3136
+ # # For each artist, eager load albums with year > 1990, and tracks for those albums
3137
+ # Artist.eager(albums: {proc{|ds| ds.where{year > 1990}}=>:tracks}).all
3138
+ # # SELECT * FROM artists
3139
+ # # SELECT * FROM albums WHERE ((year > 1990) AND (artist_id IN (...)))
3140
+ # # SELECT * FROM albums WHERE (artist_id IN (...))
3141
+ def eager(*associations)
3142
+ opts = @opts[:eager]
3143
+ association_opts = eager_options_for_associations(associations)
3144
+ opts = opts ? opts.merge(association_opts) : association_opts
3145
+ clone(:eager=>opts.freeze)
3146
+ end
3147
+
3148
+ # The secondary eager loading method. Loads all associations in a single query. This
3149
+ # method should only be used if you need to filter or order based on columns in associated tables,
3150
+ # or if you have done comparative benchmarking and determined it is faster.
3151
+ #
3152
+ # This method uses <tt>Dataset#graph</tt> to create appropriate aliases for columns in all the
3153
+ # tables. Then it uses the graph's metadata to build the associations from the single hash, and
3154
+ # finally replaces the array of hashes with an array model objects inside all.
3155
+ #
3156
+ # Be very careful when using this with multiple one_to_many or many_to_many associations, as you can
3157
+ # create large cartesian products. If you must graph multiple one_to_many and many_to_many associations,
3158
+ # make sure your filters are narrow if the datasets are large.
3159
+ #
3160
+ # Each association's order, if defined, is respected. +eager_graph+ probably
3161
+ # won't work correctly on a limited dataset, unless you are
3162
+ # only graphing many_to_one, one_to_one, and one_through_one associations.
3163
+ #
3164
+ # Does not use the block defined for the association, since it does a single query for
3165
+ # all objects. You can use the :graph_* association options to modify the SQL query.
3166
+ #
3167
+ # Like +eager+, you need to call +all+ on the dataset for the eager loading to work. If you just
3168
+ # call +each+, it will yield plain hashes, each containing all columns from all the tables.
3169
+ #
3170
+ # To modify the associated dataset that will be joined to the current dataset, you should use a
3171
+ # hash for the association, with the key being the association name symbol, and the value being
3172
+ # a callable object that is called with the associated dataset and should return a modified
3173
+ # dataset. If that association also has dependent associations, instead of a callable object,
3174
+ # use a hash with the callable object being the key, and the dependent association(s) as the value.
3175
+ #
3176
+ # You can specify an custom alias and/or join type on a per-association basis by providing an
3177
+ # Sequel::SQL::AliasedExpression object instead of an a Symbol for the association name.
3178
+ #
3179
+ # You cannot mix calls to +eager_graph+ and +graph+ on the same dataset.
3180
+ #
3181
+ # Examples:
3182
+ #
3183
+ # # For each album, eager_graph load the artist
3184
+ # Album.eager_graph(:artist).all
3185
+ # # SELECT ...
3186
+ # # FROM albums
3187
+ # # LEFT OUTER JOIN artists AS artist ON (artists.id = albums.artist_id)
3188
+ #
3189
+ # # For each album, eager_graph load the artist, using a specified alias
3190
+ # Album.eager_graph(Sequel[:artist].as(:a)).all
3191
+ # # SELECT ...
3192
+ # # FROM albums
3193
+ # # LEFT OUTER JOIN artists AS a ON (a.id = albums.artist_id)
3194
+ #
3195
+ # # For each album, eager_graph load the artist, using a specified alias
3196
+ # # and custom join type
3197
+ #
3198
+ # Album.eager_graph(Sequel[:artist].as(:a, join_type: :inner)).all
3199
+ # # SELECT ...
3200
+ # # FROM albums
3201
+ # # INNER JOIN artists AS a ON (a.id = albums.artist_id)
3202
+ #
3203
+ # # For each album, eager_graph load the artist and genre
3204
+ # Album.eager_graph(:artist, :genre).all
3205
+ # Album.eager_graph(:artist).eager_graph(:genre).all
3206
+ # # SELECT ...
3207
+ # # FROM albums
3208
+ # # LEFT OUTER JOIN artists AS artist ON (artist.id = albums.artist_id)
3209
+ # # LEFT OUTER JOIN genres AS genre ON (genre.id = albums.genre_id)
3210
+ #
3211
+ # # For each artist, eager_graph load albums and tracks for each album
3212
+ # Artist.eager_graph(albums: :tracks).all
3213
+ # # SELECT ...
3214
+ # # FROM artists
3215
+ # # LEFT OUTER JOIN albums ON (albums.artist_id = artists.id)
3216
+ # # LEFT OUTER JOIN tracks ON (tracks.album_id = albums.id)
3217
+ #
3218
+ # # For each artist, eager_graph load albums, tracks for each album, and genre for each track
3219
+ # Artist.eager_graph(albums: {tracks: :genre}).all
3220
+ # # SELECT ...
3221
+ # # FROM artists
3222
+ # # LEFT OUTER JOIN albums ON (albums.artist_id = artists.id)
3223
+ # # LEFT OUTER JOIN tracks ON (tracks.album_id = albums.id)
3224
+ # # LEFT OUTER JOIN genres AS genre ON (genre.id = tracks.genre_id)
3225
+ #
3226
+ # # For each artist, eager_graph load albums with year > 1990
3227
+ # Artist.eager_graph(albums: proc{|ds| ds.where{year > 1990}}).all
3228
+ # # SELECT ...
3229
+ # # FROM artists
3230
+ # # LEFT OUTER JOIN (
3231
+ # # SELECT * FROM albums WHERE (year > 1990)
3232
+ # # ) AS albums ON (albums.artist_id = artists.id)
3233
+ #
3234
+ # # For each artist, eager_graph load albums and tracks 1-10 for each album
3235
+ # Artist.eager_graph(albums: {tracks: proc{|ds| ds.where(number: 1..10)}}).all
3236
+ # # SELECT ...
3237
+ # # FROM artists
3238
+ # # LEFT OUTER JOIN albums ON (albums.artist_id = artists.id)
3239
+ # # LEFT OUTER JOIN (
3240
+ # # SELECT * FROM tracks WHERE ((number >= 1) AND (number <= 10))
3241
+ # # ) AS tracks ON (tracks.albums_id = albums.id)
3242
+ #
3243
+ # # For each artist, eager_graph load albums with year > 1990, and tracks for those albums
3244
+ # Artist.eager_graph(albums: {proc{|ds| ds.where{year > 1990}}=>:tracks}).all
3245
+ # # SELECT ...
3246
+ # # FROM artists
3247
+ # # LEFT OUTER JOIN (
3248
+ # # SELECT * FROM albums WHERE (year > 1990)
3249
+ # # ) AS albums ON (albums.artist_id = artists.id)
3250
+ # # LEFT OUTER JOIN tracks ON (tracks.album_id = albums.id)
3251
+ def eager_graph(*associations)
3252
+ eager_graph_with_options(associations)
3253
+ end
3254
+
3255
+ # Run eager_graph with some options specific to just this call. Unlike eager_graph, this takes
3256
+ # the associations as a single argument instead of multiple arguments.
3257
+ #
3258
+ # Options:
3259
+ #
3260
+ # :join_type :: Override the join type specified in the association
3261
+ # :limit_strategy :: Use a strategy for handling limits on associations.
3262
+ # Appropriate :limit_strategy values are:
3263
+ # true :: Pick the most appropriate based on what the database supports
3264
+ # :distinct_on :: Force use of DISTINCT ON stategy (*_one associations only)
3265
+ # :correlated_subquery :: Force use of correlated subquery strategy (one_to_* associations only)
3266
+ # :window_function :: Force use of window function strategy
3267
+ # :ruby :: Don't modify the SQL, implement limits/offsets with array slicing
3268
+ #
3269
+ # This can also be a hash with association name symbol keys and one of the above values,
3270
+ # to use different strategies per association.
3271
+ #
3272
+ # The default is the :ruby strategy. Choosing a different strategy can make your code
3273
+ # significantly slower in some cases (perhaps even the majority of cases), so you should
3274
+ # only use this if you have benchmarked that it is faster for your use cases.
3275
+ def eager_graph_with_options(associations, opts=OPTS)
3276
+ return self if associations.empty?
3277
+
3278
+ opts = opts.dup unless opts.frozen?
3279
+ associations = [associations] unless associations.is_a?(Array)
3280
+ ds = if eg = @opts[:eager_graph]
3281
+ eg = eg.dup
3282
+ [:requirements, :reflections, :reciprocals, :limits].each{|k| eg[k] = eg[k].dup}
3283
+ eg[:local] = opts
3284
+ ds = clone(:eager_graph=>eg)
3285
+ ds.eager_graph_associations(ds, model, ds.opts[:eager_graph][:master], [], *associations)
3286
+ else
3287
+ # Each of the following have a symbol key for the table alias, with the following values:
3288
+ # :reciprocals :: the reciprocal value to use for this association
3289
+ # :reflections :: AssociationReflection instance related to this association
3290
+ # :requirements :: array of requirements for this association
3291
+ # :limits :: Any limit/offset array slicing that need to be handled in ruby land after loading
3292
+ opts = {:requirements=>{}, :master=>alias_symbol(first_source), :reflections=>{}, :reciprocals=>{}, :limits=>{}, :local=>opts, :cartesian_product_number=>0, :row_proc=>row_proc}
3293
+ ds = clone(:eager_graph=>opts)
3294
+ ds = ds.eager_graph_associations(ds, model, ds.opts[:eager_graph][:master], [], *associations).naked
3295
+ end
3296
+
3297
+ ds.opts[:eager_graph].freeze
3298
+ ds.opts[:eager_graph].each_value{|v| v.freeze if v.is_a?(Hash)}
3299
+ ds
3300
+ end
3301
+
3302
+ # If the dataset is being eagerly loaded, default to calling all
3303
+ # instead of each.
3304
+ def as_hash(key_column=nil, value_column=nil, opts=OPTS)
3305
+ if (@opts[:eager_graph] || @opts[:eager]) && !opts.has_key?(:all)
3306
+ opts = Hash[opts]
3307
+ opts[:all] = true
3308
+ end
3309
+ super
3310
+ end
3311
+
3312
+ # If the dataset is being eagerly loaded, default to calling all
3313
+ # instead of each.
3314
+ def to_hash_groups(key_column, value_column=nil, opts=OPTS)
3315
+ if (@opts[:eager_graph] || @opts[:eager]) && !opts.has_key?(:all)
3316
+ opts = Hash[opts]
3317
+ opts[:all] = true
3318
+ end
3319
+ super
3320
+ end
3321
+
3322
+ # Do not attempt to split the result set into associations,
3323
+ # just return results as simple objects. This is useful if you
3324
+ # want to use eager_graph as a shortcut to have all of the joins
3325
+ # and aliasing set up, but want to do something else with the dataset.
3326
+ def ungraphed
3327
+ ds = super.clone(:eager_graph=>nil)
3328
+ if (eg = @opts[:eager_graph]) && (rp = eg[:row_proc])
3329
+ ds = ds.with_row_proc(rp)
3330
+ end
3331
+ ds
3332
+ end
3333
+
3334
+ protected
3335
+
3336
+ # Call graph on the association with the correct arguments,
3337
+ # update the eager_graph data structure, and recurse into
3338
+ # eager_graph_associations if there are any passed in associations
3339
+ # (which would be dependencies of the current association)
3340
+ #
3341
+ # Arguments:
3342
+ # ds :: Current dataset
3343
+ # model :: Current Model
3344
+ # ta :: table_alias used for the parent association
3345
+ # requirements :: an array, used as a stack for requirements
3346
+ # r :: association reflection for the current association, or an SQL::AliasedExpression
3347
+ # with the reflection as the expression, the alias base as the alias (or nil to
3348
+ # use the default alias), and an optional hash with a :join_type entry as the columns
3349
+ # to use a custom join type.
3350
+ # *associations :: any associations dependent on this one
3351
+ def eager_graph_association(ds, model, ta, requirements, r, *associations)
3352
+ if r.is_a?(SQL::AliasedExpression)
3353
+ alias_base = r.alias
3354
+ if r.columns.is_a?(Hash)
3355
+ join_type = r.columns[:join_type]
3356
+ end
3357
+ r = r.expression
3358
+ else
3359
+ alias_base = r[:graph_alias_base]
3360
+ end
3361
+ assoc_table_alias = ds.unused_table_alias(alias_base)
3362
+ loader = r[:eager_grapher]
3363
+ if !associations.empty?
3364
+ if associations.first.respond_to?(:call)
3365
+ callback = associations.first
3366
+ associations = {}
3367
+ elsif associations.length == 1 && (assocs = associations.first).is_a?(Hash) && assocs.length == 1 && (pr_assoc = assocs.to_a.first) && pr_assoc.first.respond_to?(:call)
3368
+ callback, assoc = pr_assoc
3369
+ associations = assoc.is_a?(Array) ? assoc : [assoc]
3370
+ end
3371
+ end
3372
+ local_opts = ds.opts[:eager_graph][:local]
3373
+ limit_strategy = r.eager_graph_limit_strategy(local_opts[:limit_strategy])
3374
+
3375
+ if r[:conditions] && !Sequel.condition_specifier?(r[:conditions]) && !r[:orig_opts].has_key?(:graph_conditions) && !r[:orig_opts].has_key?(:graph_only_conditions) && !r.has_key?(:graph_block)
3376
+ raise Error, "Cannot eager_graph association when :conditions specified and not a hash or an array of pairs. Specify :graph_conditions, :graph_only_conditions, or :graph_block for the association. Model: #{r[:model]}, association: #{r[:name]}"
3377
+ end
3378
+
3379
+ ds = loader.call(:self=>ds, :table_alias=>assoc_table_alias, :implicit_qualifier=>(ta == ds.opts[:eager_graph][:master]) ? first_source : qualifier_from_alias_symbol(ta, first_source), :callback=>callback, :join_type=>join_type || local_opts[:join_type], :join_only=>local_opts[:join_only], :limit_strategy=>limit_strategy, :from_self_alias=>ds.opts[:eager_graph][:master])
3380
+ if r[:order_eager_graph] && (order = r.fetch(:graph_order, r[:order]))
3381
+ ds = ds.order_append(*qualified_expression(order, assoc_table_alias))
3382
+ end
3383
+ eager_graph = ds.opts[:eager_graph]
3384
+ eager_graph[:requirements][assoc_table_alias] = requirements.dup
3385
+ eager_graph[:reflections][assoc_table_alias] = r
3386
+ if limit_strategy == :ruby
3387
+ eager_graph[:limits][assoc_table_alias] = r.limit_and_offset
3388
+ end
3389
+ eager_graph[:cartesian_product_number] += r[:cartesian_product_number] || 2
3390
+ ds = ds.eager_graph_associations(ds, r.associated_class, assoc_table_alias, requirements + [assoc_table_alias], *associations) unless associations.empty?
3391
+ ds
3392
+ end
3393
+
3394
+ # Check the associations are valid for the given model.
3395
+ # Call eager_graph_association on each association.
3396
+ #
3397
+ # Arguments:
3398
+ # ds :: Current dataset
3399
+ # model :: Current Model
3400
+ # ta :: table_alias used for the parent association
3401
+ # requirements :: an array, used as a stack for requirements
3402
+ # *associations :: the associations to add to the graph
3403
+ def eager_graph_associations(ds, model, ta, requirements, *associations)
3404
+ associations.flatten.each do |association|
3405
+ ds = case association
3406
+ when Symbol, SQL::AliasedExpression
3407
+ ds.eager_graph_association(ds, model, ta, requirements, eager_graph_check_association(model, association))
3408
+ when Hash
3409
+ association.each do |assoc, assoc_assocs|
3410
+ ds = ds.eager_graph_association(ds, model, ta, requirements, eager_graph_check_association(model, assoc), assoc_assocs)
3411
+ end
3412
+ ds
3413
+ else
3414
+ raise(Sequel::Error, 'Associations must be in the form of a symbol or hash')
3415
+ end
3416
+ end
3417
+ ds
3418
+ end
3419
+
3420
+ # Replace the array of plain hashes with an array of model objects will all eager_graphed
3421
+ # associations set in the associations cache for each object.
3422
+ def eager_graph_build_associations(hashes)
3423
+ hashes.replace(_eager_graph_build_associations(hashes, eager_graph_loader))
3424
+ end
3425
+
3426
+ private
3427
+
3428
+ # Return a new dataset with JOINs of the given type added, using the tables and
3429
+ # conditions specified by the associations.
3430
+ def _association_join(type, associations)
3431
+ clone(:join=>clone(:graph_from_self=>false).eager_graph_with_options(associations, :join_type=>type, :join_only=>true).opts[:join])
3432
+ end
3433
+
3434
+ # Process the array of hashes using the eager graph loader to return an array
3435
+ # of model objects with the associations set.
3436
+ def _eager_graph_build_associations(hashes, egl)
3437
+ egl.load(hashes)
3438
+ end
3439
+
3440
+ # If the association has conditions itself, then it requires additional filters be
3441
+ # added to the current dataset to ensure that the passed in object would also be
3442
+ # included by the association's conditions.
3443
+ def add_association_filter_conditions(ref, obj, expr)
3444
+ if expr != SQL::Constants::FALSE && ref.filter_by_associations_add_conditions?
3445
+ Sequel[ref.filter_by_associations_conditions_expression(obj)]
3446
+ else
3447
+ expr
3448
+ end
3449
+ end
3450
+
3451
+ # Process the array of associations arguments (Symbols, Arrays, and Hashes),
3452
+ # and return a hash of options suitable for cascading.
3453
+ def eager_options_for_associations(associations)
3454
+ opts = {}
3455
+ associations.flatten.each do |association|
3456
+ case association
3457
+ when Symbol
3458
+ check_association(model, association)
3459
+ opts[association] = nil
3460
+ when Hash
3461
+ association.keys.each{|assoc| check_association(model, assoc)}
3462
+ opts.merge!(association)
3463
+ else
3464
+ raise(Sequel::Error, 'Associations must be in the form of a symbol or hash')
3465
+ end
3466
+ end
3467
+ opts
3468
+ end
3469
+
3470
+ # Return an expression for filtering by the given association reflection and associated object.
3471
+ def association_filter_expression(op, ref, obj)
3472
+ meth = :"#{ref[:type]}_association_filter_expression"
3473
+ # Allow calling private association specific method to get filter expression
3474
+ send(meth, op, ref, obj) if respond_to?(meth, true)
3475
+ end
3476
+
3477
+ # Handle inversion for association filters by returning an inverted expression,
3478
+ # plus also handling cases where the referenced columns are NULL.
3479
+ def association_filter_handle_inversion(op, exp, cols)
3480
+ if op == :'!=' || op == :'NOT IN'
3481
+ if exp == SQL::Constants::FALSE
3482
+ ~exp
3483
+ else
3484
+ ~exp | Sequel::SQL::BooleanExpression.from_value_pairs(cols.zip([]), :OR)
3485
+ end
3486
+ else
3487
+ exp
3488
+ end
3489
+ end
3490
+
3491
+ # Return an expression for making sure that the given keys match the value of
3492
+ # the given methods for either the single object given or for any of the objects
3493
+ # given if +obj+ is an array.
3494
+ def association_filter_key_expression(keys, meths, obj)
3495
+ vals = if obj.is_a?(Sequel::Dataset)
3496
+ {(keys.length == 1 ? keys.first : keys)=>obj.select(*meths).exclude(Sequel::SQL::BooleanExpression.from_value_pairs(meths.zip([]), :OR))}
3497
+ else
3498
+ vals = Array(obj).reject{|o| !meths.all?{|m| o.get_column_value(m)}}
3499
+ return SQL::Constants::FALSE if vals.empty?
3500
+ if obj.is_a?(Array)
3501
+ if keys.length == 1
3502
+ meth = meths.first
3503
+ {keys.first=>vals.map{|o| o.get_column_value(meth)}}
3504
+ else
3505
+ {keys=>vals.map{|o| meths.map{|m| o.get_column_value(m)}}}
3506
+ end
3507
+ else
3508
+ keys.zip(meths.map{|k| obj.get_column_value(k)})
3509
+ end
3510
+ end
3511
+ SQL::BooleanExpression.from_value_pairs(vals)
3512
+ end
3513
+
3514
+ # Make sure the association is valid for this model, and return the related AssociationReflection.
3515
+ def check_association(model, association)
3516
+ raise(Sequel::UndefinedAssociation, "Invalid association #{association} for #{model.name}") unless reflection = model.association_reflection(association)
3517
+ raise(Sequel::Error, "Eager loading is not allowed for #{model.name} association #{association}") if reflection[:allow_eager] == false
3518
+ reflection
3519
+ end
3520
+
3521
+ # Allow associations that are eagerly graphed to be specified as an SQL::AliasedExpression, for
3522
+ # per-call determining of the alias base.
3523
+ def eager_graph_check_association(model, association)
3524
+ reflection = if association.is_a?(SQL::AliasedExpression)
3525
+ expr = association.expression
3526
+ if expr.is_a?(SQL::Identifier)
3527
+ expr = expr.value
3528
+ if expr.is_a?(String)
3529
+ expr = expr.to_sym
3530
+ end
3531
+ end
3532
+
3533
+ check_reflection = check_association(model, expr)
3534
+ SQL::AliasedExpression.new(check_reflection, association.alias || expr, association.columns)
3535
+ else
3536
+ check_reflection = check_association(model, association)
3537
+ end
3538
+
3539
+ if check_reflection && check_reflection[:allow_eager_graph] == false
3540
+ raise Error, "eager_graph not allowed for #{reflection.inspect}"
3541
+ end
3542
+
3543
+ reflection
3544
+ end
3545
+
3546
+ # The EagerGraphLoader instance used for converting eager_graph results.
3547
+ def eager_graph_loader
3548
+ unless egl = cache_get(:_model_eager_graph_loader)
3549
+ egl = cache_set(:_model_eager_graph_loader, EagerGraphLoader.new(self))
3550
+ end
3551
+ egl.dup
3552
+ end
3553
+
3554
+ # Eagerly load all specified associations.
3555
+ def eager_load(a, eager_assoc=@opts[:eager])
3556
+ return if a.empty?
3557
+
3558
+ # Reflections for all associations to eager load
3559
+ reflections = eager_assoc.keys.map{|assoc| model.association_reflection(assoc) || (raise Sequel::UndefinedAssociation, "Model: #{self}, Association: #{assoc}")}
3560
+
3561
+ perform_eager_loads(prepare_eager_load(a, reflections, eager_assoc))
3562
+
3563
+ reflections.each do |r|
3564
+ a.each{|object| object.send(:run_association_callbacks, r, :after_load, object.associations[r[:name]])} if r[:after_load]
3565
+ end
3566
+
3567
+ nil
3568
+ end
3569
+
3570
+ # Prepare a hash loaders and eager options which will be used to implement the eager loading.
3571
+ def prepare_eager_load(a, reflections, eager_assoc)
3572
+ eager_load_data = {}
3573
+
3574
+ # Key is foreign/primary key name symbol.
3575
+ # Value is hash with keys being foreign/primary key values (generally integers)
3576
+ # and values being an array of current model objects with that specific foreign/primary key
3577
+ key_hash = {}
3578
+
3579
+ # Populate the key_hash entry for each association being eagerly loaded
3580
+ reflections.each do |r|
3581
+ if key = r.eager_loader_key
3582
+ # key_hash for this key has already been populated,
3583
+ # skip populating again so that duplicate values
3584
+ # aren't added.
3585
+ unless id_map = key_hash[key]
3586
+ id_map = key_hash[key] = Hash.new{|h,k| h[k] = []}
3587
+
3588
+ # Supporting both single (Symbol) and composite (Array) keys.
3589
+ a.each do |rec|
3590
+ case key
3591
+ when Array
3592
+ if (k = key.map{|k2| rec.get_column_value(k2)}) && k.all?
3593
+ id_map[k] << rec
3594
+ end
3595
+ when Symbol
3596
+ if k = rec.get_column_value(key)
3597
+ id_map[k] << rec
3598
+ end
3599
+ else
3600
+ raise Error, "unhandled eager_loader_key #{key.inspect} for association #{r[:name]}"
3601
+ end
3602
+ end
3603
+ end
3604
+ else
3605
+ id_map = nil
3606
+ end
3607
+
3608
+ associations = eager_assoc[r[:name]]
3609
+ if associations.respond_to?(:call)
3610
+ eager_block = associations
3611
+ associations = OPTS
3612
+ elsif associations.is_a?(Hash) && associations.length == 1 && (pr_assoc = associations.to_a.first) && pr_assoc.first.respond_to?(:call)
3613
+ eager_block, associations = pr_assoc
3614
+ end
3615
+
3616
+ eager_load_data[r[:eager_loader]] = {:key_hash=>key_hash, :rows=>a, :associations=>associations, :self=>self, :eager_block=>eager_block, :id_map=>id_map}
3617
+ end
3618
+
3619
+ eager_load_data
3620
+ end
3621
+
3622
+ # Using the hash of loaders and eager options, perform the eager loading.
3623
+ def perform_eager_loads(eager_load_data)
3624
+ eager_load_data.map do |loader, eo|
3625
+ perform_eager_load(loader, eo)
3626
+ end
3627
+ end
3628
+
3629
+ # Perform eager loading for a single association using the loader and eager options.
3630
+ def perform_eager_load(loader, eo)
3631
+ loader.call(eo)
3632
+ end
3633
+
3634
+ # Return a subquery expression for filering by a many_to_many association
3635
+ def many_to_many_association_filter_expression(op, ref, obj)
3636
+ lpks, lks, rks = ref.values_at(:left_primary_key_columns, :left_keys, :right_keys)
3637
+ jt = ref.join_table_alias
3638
+ lpks = lpks.first if lpks.length == 1
3639
+ lpks = ref.qualify(model.table_name, lpks)
3640
+
3641
+ meths = if obj.is_a?(Sequel::Dataset)
3642
+ ref.qualify(obj.model.table_name, ref.right_primary_keys)
3643
+ else
3644
+ ref.right_primary_key_methods
3645
+ end
3646
+
3647
+ expr = association_filter_key_expression(ref.qualify(jt, rks), meths, obj)
3648
+ unless expr == SQL::Constants::FALSE
3649
+ expr = SQL::BooleanExpression.from_value_pairs(lpks=>model.db.from(ref[:join_table]).select(*ref.qualify(jt, lks)).where(expr).exclude(SQL::BooleanExpression.from_value_pairs(ref.qualify(jt, lks).zip([]), :OR)))
3650
+ expr = add_association_filter_conditions(ref, obj, expr)
3651
+ end
3652
+
3653
+ association_filter_handle_inversion(op, expr, Array(lpks))
3654
+ end
3655
+ alias one_through_one_association_filter_expression many_to_many_association_filter_expression
3656
+
3657
+ # Return a simple equality expression for filering by a many_to_one association
3658
+ def many_to_one_association_filter_expression(op, ref, obj)
3659
+ keys = ref.qualify(model.table_name, ref[:key_columns])
3660
+ meths = if obj.is_a?(Sequel::Dataset)
3661
+ ref.qualify(obj.model.table_name, ref.primary_keys)
3662
+ else
3663
+ ref.primary_key_methods
3664
+ end
3665
+
3666
+ expr = association_filter_key_expression(keys, meths, obj)
3667
+ expr = add_association_filter_conditions(ref, obj, expr)
3668
+ association_filter_handle_inversion(op, expr, keys)
3669
+ end
3670
+
3671
+ # Return a simple equality expression for filering by a one_to_* association
3672
+ def one_to_many_association_filter_expression(op, ref, obj)
3673
+ keys = ref.qualify(model.table_name, ref[:primary_key_columns])
3674
+ meths = if obj.is_a?(Sequel::Dataset)
3675
+ ref.qualify(obj.model.table_name, ref[:keys])
3676
+ else
3677
+ ref[:key_methods]
3678
+ end
3679
+
3680
+ expr = association_filter_key_expression(keys, meths, obj)
3681
+ expr = add_association_filter_conditions(ref, obj, expr)
3682
+ association_filter_handle_inversion(op, expr, keys)
3683
+ end
3684
+ alias one_to_one_association_filter_expression one_to_many_association_filter_expression
3685
+
3686
+ def non_sql_option?(key)
3687
+ super || key == :eager || key == :eager_graph
3688
+ end
3689
+
3690
+ # Build associations from the graph if #eager_graph was used,
3691
+ # and/or load other associations if #eager was used.
3692
+ def post_load(all_records)
3693
+ eager_graph_build_associations(all_records) if @opts[:eager_graph]
3694
+ eager_load(all_records) if @opts[:eager] && (row_proc || @opts[:eager_graph])
3695
+ super
3696
+ end
3697
+ end
3698
+
3699
+ # This class is the internal implementation of eager_graph. It is responsible for taking an array of plain
3700
+ # hashes and returning an array of model objects with all eager_graphed associations already set in the
3701
+ # association cache.
3702
+ class EagerGraphLoader
3703
+ # Hash with table alias symbol keys and after_load hook values
3704
+ attr_reader :after_load_map
3705
+
3706
+ # Hash with table alias symbol keys and association name values
3707
+ attr_reader :alias_map
3708
+
3709
+ # Hash with table alias symbol keys and subhash values mapping column_alias symbols to the
3710
+ # symbol of the real name of the column
3711
+ attr_reader :column_maps
3712
+
3713
+ # Recursive hash with table alias symbol keys mapping to hashes with dependent table alias symbol keys.
3714
+ attr_reader :dependency_map
3715
+
3716
+ # Hash with table alias symbol keys and [limit, offset] values
3717
+ attr_reader :limit_map
3718
+
3719
+ # The table alias symbol for the primary model
3720
+ attr_reader :master
3721
+
3722
+ # Hash with table alias symbol keys and primary key symbol values (or arrays of primary key symbols for
3723
+ # composite key tables)
3724
+ attr_reader :primary_keys
3725
+
3726
+ # Hash with table alias symbol keys and reciprocal association symbol values,
3727
+ # used for setting reciprocals for one_to_many associations.
3728
+ attr_reader :reciprocal_map
3729
+
3730
+ # Hash with table alias symbol keys and subhash values mapping primary key symbols (or array of symbols)
3731
+ # to model instances. Used so that only a single model instance is created for each object.
3732
+ attr_reader :records_map
3733
+
3734
+ # Hash with table alias symbol keys and AssociationReflection values
3735
+ attr_reader :reflection_map
3736
+
3737
+ # Hash with table alias symbol keys and callable values used to create model instances
3738
+ attr_reader :row_procs
3739
+
3740
+ # Hash with table alias symbol keys and true/false values, where true means the
3741
+ # association represented by the table alias uses an array of values instead of
3742
+ # a single value (i.e. true => *_many, false => *_to_one).
3743
+ attr_reader :type_map
3744
+
3745
+ # Initialize all of the data structures used during loading.
3746
+ def initialize(dataset)
3747
+ opts = dataset.opts
3748
+ eager_graph = opts[:eager_graph]
3749
+ @master = eager_graph[:master]
3750
+ requirements = eager_graph[:requirements]
3751
+ reflection_map = @reflection_map = eager_graph[:reflections]
3752
+ reciprocal_map = @reciprocal_map = eager_graph[:reciprocals]
3753
+ limit_map = @limit_map = eager_graph[:limits]
3754
+ @unique = eager_graph[:cartesian_product_number] > 1
3755
+
3756
+ alias_map = @alias_map = {}
3757
+ type_map = @type_map = {}
3758
+ after_load_map = @after_load_map = {}
3759
+ reflection_map.each do |k, v|
3760
+ alias_map[k] = v[:name]
3761
+ after_load_map[k] = v[:after_load] if v[:after_load]
3762
+ type_map[k] = if v.returns_array?
3763
+ true
3764
+ elsif (limit_and_offset = limit_map[k]) && !limit_and_offset.last.nil?
3765
+ :offset
3766
+ end
3767
+ end
3768
+ after_load_map.freeze
3769
+ alias_map.freeze
3770
+ type_map.freeze
3771
+
3772
+ # Make dependency map hash out of requirements array for each association.
3773
+ # This builds a tree of dependencies that will be used for recursion
3774
+ # to ensure that all parts of the object graph are loaded into the
3775
+ # appropriate subordinate association.
3776
+ dependency_map = @dependency_map = {}
3777
+ # Sort the associations by requirements length, so that
3778
+ # requirements are added to the dependency hash before their
3779
+ # dependencies.
3780
+ requirements.sort_by{|a| a[1].length}.each do |ta, deps|
3781
+ if deps.empty?
3782
+ dependency_map[ta] = {}
3783
+ else
3784
+ deps = deps.dup
3785
+ hash = dependency_map[deps.shift]
3786
+ deps.each do |dep|
3787
+ hash = hash[dep]
3788
+ end
3789
+ hash[ta] = {}
3790
+ end
3791
+ end
3792
+ freezer = lambda do |h|
3793
+ h.freeze
3794
+ h.each_value(&freezer)
3795
+ end
3796
+ freezer.call(dependency_map)
3797
+
3798
+ datasets = opts[:graph][:table_aliases].to_a.reject{|ta,ds| ds.nil?}
3799
+ column_aliases = opts[:graph][:column_aliases]
3800
+ primary_keys = {}
3801
+ column_maps = {}
3802
+ models = {}
3803
+ row_procs = {}
3804
+ datasets.each do |ta, ds|
3805
+ models[ta] = ds.model
3806
+ primary_keys[ta] = []
3807
+ column_maps[ta] = {}
3808
+ row_procs[ta] = ds.row_proc
3809
+ end
3810
+ column_aliases.each do |col_alias, tc|
3811
+ ta, column = tc
3812
+ column_maps[ta][col_alias] = column
3813
+ end
3814
+ column_maps.each do |ta, h|
3815
+ pk = models[ta].primary_key
3816
+ if pk.is_a?(Array)
3817
+ primary_keys[ta] = []
3818
+ h.select{|ca, c| primary_keys[ta] << ca if pk.include?(c)}
3819
+ else
3820
+ h.select{|ca, c| primary_keys[ta] = ca if pk == c}
3821
+ end
3822
+ end
3823
+ @column_maps = column_maps.freeze
3824
+ @primary_keys = primary_keys.freeze
3825
+ @row_procs = row_procs.freeze
3826
+
3827
+ # For performance, create two special maps for the master table,
3828
+ # so you can skip a hash lookup.
3829
+ @master_column_map = column_maps[master]
3830
+ @master_primary_keys = primary_keys[master]
3831
+
3832
+ # Add a special hash mapping table alias symbols to 5 element arrays that just
3833
+ # contain the data in other data structures for that table alias. This is
3834
+ # used for performance, to get all values in one hash lookup instead of
3835
+ # separate hash lookups for each data structure.
3836
+ ta_map = {}
3837
+ alias_map.each_key do |ta|
3838
+ ta_map[ta] = [row_procs[ta], alias_map[ta], type_map[ta], reciprocal_map[ta]].freeze
3839
+ end
3840
+ @ta_map = ta_map.freeze
3841
+ freeze
3842
+ end
3843
+
3844
+ # Return an array of primary model instances with the associations cache prepopulated
3845
+ # for all model objects (both primary and associated).
3846
+ def load(hashes)
3847
+ # This mapping is used to make sure that duplicate entries in the
3848
+ # result set are mapped to a single record. For example, using a
3849
+ # single one_to_many association with 10 associated records,
3850
+ # the main object column values appear in the object graph 10 times.
3851
+ # We map by primary key, if available, or by the object's entire values,
3852
+ # if not. The mapping must be per table, so create sub maps for each table
3853
+ # alias.
3854
+ @records_map = records_map = {}
3855
+ alias_map.keys.each{|ta| records_map[ta] = {}}
3856
+
3857
+ master = master()
3858
+
3859
+ # Assign to local variables for speed increase
3860
+ rp = row_procs[master]
3861
+ rm = records_map[master] = {}
3862
+ dm = dependency_map
3863
+
3864
+ records_map.freeze
3865
+
3866
+ # This will hold the final record set that we will be replacing the object graph with.
3867
+ records = []
3868
+
3869
+ hashes.each do |h|
3870
+ unless key = master_pk(h)
3871
+ key = hkey(master_hfor(h))
3872
+ end
3873
+ unless primary_record = rm[key]
3874
+ primary_record = rm[key] = rp.call(master_hfor(h))
3875
+ # Only add it to the list of records to return if it is a new record
3876
+ records.push(primary_record)
3877
+ end
3878
+ # Build all associations for the current object and it's dependencies
3879
+ _load(dm, primary_record, h)
3880
+ end
3881
+
3882
+ # Remove duplicate records from all associations if this graph could possibly be a cartesian product
3883
+ # Run after_load procs if there are any
3884
+ post_process(records, dm) if @unique || !after_load_map.empty? || !limit_map.empty?
3885
+
3886
+ records_map.each_value(&:freeze)
3887
+ freeze
3888
+
3889
+ records
3890
+ end
3891
+
3892
+ private
3893
+
3894
+ # Recursive method that creates associated model objects and associates them to the current model object.
3895
+ def _load(dependency_map, current, h)
3896
+ dependency_map.each do |ta, deps|
3897
+ unless key = pk(ta, h)
3898
+ ta_h = hfor(ta, h)
3899
+ unless ta_h.values.any?
3900
+ assoc_name = alias_map[ta]
3901
+ unless (assoc = current.associations).has_key?(assoc_name)
3902
+ assoc[assoc_name] = type_map[ta] ? [] : nil
3903
+ end
3904
+ next
3905
+ end
3906
+ key = hkey(ta_h)
3907
+ end
3908
+ rp, assoc_name, tm, rcm = @ta_map[ta]
3909
+ rm = records_map[ta]
3910
+
3911
+ # Check type map for all dependencies, and use a unique
3912
+ # object if any are dependencies for multiple objects,
3913
+ # to prevent duplicate objects from showing up in the case
3914
+ # the normal duplicate removal code is not being used.
3915
+ if !@unique && !deps.empty? && deps.any?{|dep_key,_| @ta_map[dep_key][2]}
3916
+ key = [current.object_id, key]
3917
+ end
3918
+
3919
+ unless rec = rm[key]
3920
+ rec = rm[key] = rp.call(hfor(ta, h))
3921
+ end
3922
+
3923
+ if tm
3924
+ unless (assoc = current.associations).has_key?(assoc_name)
3925
+ assoc[assoc_name] = []
3926
+ end
3927
+ assoc[assoc_name].push(rec)
3928
+ rec.associations[rcm] = current if rcm
3929
+ else
3930
+ current.associations[assoc_name] ||= rec
3931
+ end
3932
+ # Recurse into dependencies of the current object
3933
+ _load(deps, rec, h) unless deps.empty?
3934
+ end
3935
+ end
3936
+
3937
+ # Return the subhash for the specific table alias +ta+ by parsing the values out of the main hash +h+
3938
+ def hfor(ta, h)
3939
+ out = {}
3940
+ @column_maps[ta].each{|ca, c| out[c] = h[ca]}
3941
+ out
3942
+ end
3943
+
3944
+ # Return a suitable hash key for any subhash +h+, which is an array of values by column order.
3945
+ # This is only used if the primary key cannot be used.
3946
+ def hkey(h)
3947
+ h.sort_by{|x| x[0]}
3948
+ end
3949
+
3950
+ # Return the subhash for the master table by parsing the values out of the main hash +h+
3951
+ def master_hfor(h)
3952
+ out = {}
3953
+ @master_column_map.each{|ca, c| out[c] = h[ca]}
3954
+ out
3955
+ end
3956
+
3957
+ # Return a primary key value for the master table by parsing it out of the main hash +h+.
3958
+ def master_pk(h)
3959
+ x = @master_primary_keys
3960
+ if x.is_a?(Array)
3961
+ unless x == []
3962
+ x = x.map{|ca| h[ca]}
3963
+ x if x.all?
3964
+ end
3965
+ else
3966
+ h[x]
3967
+ end
3968
+ end
3969
+
3970
+ # Return a primary key value for the given table alias by parsing it out of the main hash +h+.
3971
+ def pk(ta, h)
3972
+ x = primary_keys[ta]
3973
+ if x.is_a?(Array)
3974
+ unless x == []
3975
+ x = x.map{|ca| h[ca]}
3976
+ x if x.all?
3977
+ end
3978
+ else
3979
+ h[x]
3980
+ end
3981
+ end
3982
+
3983
+ # If the result set is the result of a cartesian product, then it is possible that
3984
+ # there are multiple records for each association when there should only be one.
3985
+ # In that case, for each object in all associations loaded via +eager_graph+, run
3986
+ # uniq! on the association to make sure no duplicate records show up.
3987
+ # Note that this can cause legitimate duplicate records to be removed.
3988
+ def post_process(records, dependency_map)
3989
+ records.each do |record|
3990
+ dependency_map.each do |ta, deps|
3991
+ assoc_name = alias_map[ta]
3992
+ list = record.public_send(assoc_name)
3993
+ rec_list = if type_map[ta]
3994
+ list.uniq!
3995
+ if lo = limit_map[ta]
3996
+ limit, offset = lo
3997
+ offset ||= 0
3998
+ if type_map[ta] == :offset
3999
+ [record.associations[assoc_name] = list[offset]]
4000
+ else
4001
+ list.replace(list[(offset)..(limit ? (offset)+limit-1 : -1)] || [])
4002
+ end
4003
+ else
4004
+ list
4005
+ end
4006
+ elsif list
4007
+ [list]
4008
+ else
4009
+ []
4010
+ end
4011
+ record.send(:run_association_callbacks, reflection_map[ta], :after_load, list) if after_load_map[ta]
4012
+ post_process(rec_list, deps) if !rec_list.empty? && !deps.empty?
4013
+ end
4014
+ end
4015
+ end
4016
+ end
4017
+ end
4018
+ end
4019
+ end