pangea-core 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1105) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/auto-bump.yml +11 -0
  3. data/.github/workflows/ci.yml +7 -0
  4. data/.github/workflows/release.yml +22 -0
  5. data/.gitignore +1 -0
  6. data/AGENTS.md +3 -0
  7. data/CLAUDE.md +554 -0
  8. data/Gemfile.lock +3 -3
  9. data/README.md +40 -0
  10. data/docs/development-standards.md +287 -0
  11. data/docs/fleet-pangea-integration-plan.md +421 -0
  12. data/exe/pangea +7 -0
  13. data/flake.lock +1499 -190
  14. data/flake.nix +5 -1
  15. data/gemset.nix +1 -1
  16. data/lib/pangea/arch_dsl.rb +167 -0
  17. data/lib/pangea/architecture.rb +143 -0
  18. data/lib/pangea/backend.rb +172 -0
  19. data/lib/pangea/cli/cascade.rb +340 -0
  20. data/lib/pangea/cli/config.rb +169 -0
  21. data/lib/pangea/cli/operations.rb +206 -0
  22. data/lib/pangea/cli/orchestrate.rb +115 -0
  23. data/lib/pangea/cli/reactivity.rb +252 -0
  24. data/lib/pangea/cli/synthesizer.rb +121 -0
  25. data/lib/pangea/cli/theme.rb +216 -0
  26. data/lib/pangea/cli/tofu_events.rb +242 -0
  27. data/lib/pangea/cli.rb +209 -0
  28. data/lib/pangea/components/base.rb +23 -13
  29. data/lib/pangea/contracts/architecture_result.rb +106 -0
  30. data/lib/pangea/contracts/cluster_result.rb +94 -0
  31. data/lib/pangea/contracts/errors.rb +21 -0
  32. data/lib/pangea/contracts/iam_result.rb +73 -0
  33. data/lib/pangea/contracts/network_result.rb +140 -0
  34. data/lib/pangea/contracts/security_group_accessor.rb +28 -0
  35. data/lib/pangea/contracts.rb +26 -0
  36. data/lib/pangea/magma/chain.rb +199 -0
  37. data/lib/pangea/magma/distribution.rb +107 -0
  38. data/lib/pangea/magma/matchers.rb +176 -0
  39. data/lib/pangea/magma/migration.rb +195 -0
  40. data/lib/pangea/magma/optimization.rb +88 -0
  41. data/lib/pangea/magma/orchestrator.rb +96 -0
  42. data/lib/pangea/magma/runner.rb +99 -0
  43. data/lib/pangea/magma/stack.rb +159 -0
  44. data/lib/pangea/magma/test_support.rb +177 -0
  45. data/lib/pangea/magma/workspace.rb +127 -0
  46. data/lib/pangea/magma.rb +156 -0
  47. data/lib/pangea/outputs.rb +91 -0
  48. data/lib/pangea/presets.rb +67 -0
  49. data/lib/pangea/provider_contract.rb +61 -0
  50. data/lib/pangea/remote_state.rb +175 -0
  51. data/lib/pangea/resource_registry.rb +24 -15
  52. data/lib/pangea/resources/base_attributes.rb +13 -1
  53. data/lib/pangea/resources/reference.rb +9 -4
  54. data/lib/pangea/resources/reference_generator.rb +32 -0
  55. data/lib/pangea/resources/resource_builder.rb +103 -68
  56. data/lib/pangea/resources/resource_input.rb +149 -0
  57. data/lib/pangea/resources/types/coercions.rb +43 -0
  58. data/lib/pangea/resources/types/core.rb +23 -0
  59. data/lib/pangea/resources/types/index.rb +3 -0
  60. data/lib/pangea/resources/validators/common.rb +41 -0
  61. data/lib/pangea/resources/validators/network_validators.rb +9 -7
  62. data/lib/pangea/secrets.rb +136 -0
  63. data/lib/pangea/tagging/fingerprint.rb +116 -0
  64. data/lib/pangea/tagging/policy.rb +92 -0
  65. data/lib/pangea/tagging/tag_adapter.rb +84 -0
  66. data/lib/pangea/tagging/tag_set.rb +201 -0
  67. data/lib/pangea/tagging.rb +6 -0
  68. data/lib/pangea/testing/architecture_spec_generator.rb +237 -0
  69. data/lib/pangea/testing/assertions.rb +51 -0
  70. data/lib/pangea/testing/mock_terraform_synthesizer.rb +22 -4
  71. data/lib/pangea/testing/spec_generator.rb +176 -0
  72. data/lib/pangea/testing/spec_setup.rb +4 -0
  73. data/lib/pangea/testing/type_purity.rb +132 -0
  74. data/lib/pangea/testing.rb +3 -0
  75. data/lib/pangea/validation.rb +44 -8
  76. data/lib/pangea-core/version.rb +1 -1
  77. data/lib/pangea-core.rb +31 -0
  78. data/pangea-core.gemspec +3 -1
  79. data/vendor/bundle/ruby/3.3.0/bin/htmldiff +29 -0
  80. data/vendor/bundle/ruby/3.3.0/bin/ldiff +29 -0
  81. data/vendor/bundle/ruby/3.3.0/bin/pangea +29 -0
  82. data/vendor/bundle/ruby/3.3.0/bin/rake +29 -0
  83. data/vendor/bundle/ruby/3.3.0/bin/rspec +29 -0
  84. data/vendor/bundle/ruby/3.3.0/extensions/arm64-darwin-25/3.3.0/bigdecimal-4.0.1/bigdecimal.bundle +0 -0
  85. data/vendor/bundle/ruby/3.3.0/extensions/arm64-darwin-25/3.3.0/bigdecimal-4.0.1/gem.build_complete +0 -0
  86. data/vendor/bundle/ruby/3.3.0/extensions/arm64-darwin-25/3.3.0/bigdecimal-4.0.1/gem_make.out +33 -0
  87. data/vendor/bundle/ruby/3.3.0/extensions/arm64-darwin-25/3.3.0/bigdecimal-4.0.1/mkmf.log +453 -0
  88. data/vendor/bundle/ruby/3.3.0/gems/abstract-synthesizer-0.0.15/.gitignore +17 -0
  89. data/vendor/bundle/ruby/3.3.0/gems/abstract-synthesizer-0.0.15/.nix_shell_env.sh +2134 -0
  90. data/vendor/bundle/ruby/3.3.0/gems/abstract-synthesizer-0.0.15/.rubocop.yml +54 -0
  91. data/vendor/bundle/ruby/3.3.0/gems/abstract-synthesizer-0.0.15/CHANGELOG.md +40 -0
  92. data/vendor/bundle/ruby/3.3.0/gems/abstract-synthesizer-0.0.15/CONTRIBUTING.md +114 -0
  93. data/vendor/bundle/ruby/3.3.0/gems/abstract-synthesizer-0.0.15/Gemfile +2 -0
  94. data/vendor/bundle/ruby/3.3.0/gems/abstract-synthesizer-0.0.15/Gemfile.lock +66 -0
  95. data/vendor/bundle/ruby/3.3.0/gems/abstract-synthesizer-0.0.15/LICENSE +21 -0
  96. data/vendor/bundle/ruby/3.3.0/gems/abstract-synthesizer-0.0.15/README.md +621 -0
  97. data/vendor/bundle/ruby/3.3.0/gems/abstract-synthesizer-0.0.15/Rakefile +11 -0
  98. data/vendor/bundle/ruby/3.3.0/gems/abstract-synthesizer-0.0.15/abstract-synthesizer.gemspec +28 -0
  99. data/vendor/bundle/ruby/3.3.0/gems/abstract-synthesizer-0.0.15/docs/overview.md +69 -0
  100. data/vendor/bundle/ruby/3.3.0/gems/abstract-synthesizer-0.0.15/docs/usage.md +468 -0
  101. data/vendor/bundle/ruby/3.3.0/gems/abstract-synthesizer-0.0.15/examples/README.md +230 -0
  102. data/vendor/bundle/ruby/3.3.0/gems/abstract-synthesizer-0.0.15/examples/api/rest_api_dsl.rb +269 -0
  103. data/vendor/bundle/ruby/3.3.0/gems/abstract-synthesizer-0.0.15/examples/build_system/ci_cd_pipeline.rb +443 -0
  104. data/vendor/bundle/ruby/3.3.0/gems/abstract-synthesizer-0.0.15/examples/configuration_management/app_config_dsl.rb +437 -0
  105. data/vendor/bundle/ruby/3.3.0/gems/abstract-synthesizer-0.0.15/examples/infrastructure/kubernetes_deployment.rb +152 -0
  106. data/vendor/bundle/ruby/3.3.0/gems/abstract-synthesizer-0.0.15/flake.lock +835 -0
  107. data/vendor/bundle/ruby/3.3.0/gems/abstract-synthesizer-0.0.15/flake.nix +62 -0
  108. data/vendor/bundle/ruby/3.3.0/gems/abstract-synthesizer-0.0.15/gemset.nix +239 -0
  109. data/vendor/bundle/ruby/3.3.0/gems/abstract-synthesizer-0.0.15/lib/abstract-synthesizer/errors/invalid_synthesizer_key_error.rb +3 -0
  110. data/vendor/bundle/ruby/3.3.0/gems/abstract-synthesizer-0.0.15/lib/abstract-synthesizer/errors/too_many_field_values.rb +1 -0
  111. data/vendor/bundle/ruby/3.3.0/gems/abstract-synthesizer-0.0.15/lib/abstract-synthesizer/primitives/bury.rb +21 -0
  112. data/vendor/bundle/ruby/3.3.0/gems/abstract-synthesizer-0.0.15/lib/abstract-synthesizer/version.rb +3 -0
  113. data/vendor/bundle/ruby/3.3.0/gems/abstract-synthesizer-0.0.15/lib/abstract-synthesizer.rb +121 -0
  114. data/vendor/bundle/ruby/3.3.0/gems/base64-0.3.0/BSDL +22 -0
  115. data/vendor/bundle/ruby/3.3.0/gems/base64-0.3.0/COPYING +56 -0
  116. data/vendor/bundle/ruby/3.3.0/gems/base64-0.3.0/LEGAL +60 -0
  117. data/vendor/bundle/ruby/3.3.0/gems/base64-0.3.0/README.md +48 -0
  118. data/vendor/bundle/ruby/3.3.0/gems/base64-0.3.0/lib/base64.rb +381 -0
  119. data/vendor/bundle/ruby/3.3.0/gems/base64-0.3.0/sig/base64.rbs +355 -0
  120. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-4.0.1/LICENSE +56 -0
  121. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-4.0.1/bigdecimal.gemspec +57 -0
  122. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-4.0.1/ext/bigdecimal/.sitearchdir.time +0 -0
  123. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-4.0.1/ext/bigdecimal/Makefile +271 -0
  124. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-4.0.1/ext/bigdecimal/bigdecimal.bundle +0 -0
  125. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-4.0.1/ext/bigdecimal/bigdecimal.c +6206 -0
  126. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-4.0.1/ext/bigdecimal/bigdecimal.h +292 -0
  127. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-4.0.1/ext/bigdecimal/bigdecimal.o +0 -0
  128. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-4.0.1/ext/bigdecimal/bits.h +144 -0
  129. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-4.0.1/ext/bigdecimal/extconf.rb +60 -0
  130. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-4.0.1/ext/bigdecimal/feature.h +68 -0
  131. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-4.0.1/ext/bigdecimal/missing/dtoa.c +3462 -0
  132. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-4.0.1/ext/bigdecimal/missing.c +28 -0
  133. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-4.0.1/ext/bigdecimal/missing.h +104 -0
  134. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-4.0.1/ext/bigdecimal/missing.o +0 -0
  135. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-4.0.1/ext/bigdecimal/static_assert.h +54 -0
  136. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-4.0.1/lib/bigdecimal/jacobian.rb +92 -0
  137. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-4.0.1/lib/bigdecimal/ludcmp.rb +91 -0
  138. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-4.0.1/lib/bigdecimal/math.rb +948 -0
  139. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-4.0.1/lib/bigdecimal/newton.rb +82 -0
  140. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-4.0.1/lib/bigdecimal/util.rb +186 -0
  141. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-4.0.1/lib/bigdecimal.bundle +0 -0
  142. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-4.0.1/lib/bigdecimal.rb +360 -0
  143. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-4.0.1/sample/linear.rb +74 -0
  144. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-4.0.1/sample/nlsolve.rb +40 -0
  145. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-4.0.1/sample/pi.rb +21 -0
  146. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/CHANGELOG.md +609 -0
  147. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/Gemfile +36 -0
  148. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/LICENSE.txt +21 -0
  149. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/README.md +409 -0
  150. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/Rakefile +344 -0
  151. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/ext/concurrent-ruby/ConcurrentRubyService.java +17 -0
  152. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/ext/concurrent-ruby/com/concurrent_ruby/ext/AtomicReferenceLibrary.java +175 -0
  153. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/ext/concurrent-ruby/com/concurrent_ruby/ext/JRubyMapBackendLibrary.java +248 -0
  154. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/ext/concurrent-ruby/com/concurrent_ruby/ext/JavaAtomicBooleanLibrary.java +93 -0
  155. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/ext/concurrent-ruby/com/concurrent_ruby/ext/JavaAtomicFixnumLibrary.java +113 -0
  156. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/ext/concurrent-ruby/com/concurrent_ruby/ext/JavaSemaphoreLibrary.java +189 -0
  157. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/ext/concurrent-ruby/com/concurrent_ruby/ext/SynchronizationLibrary.java +292 -0
  158. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/ext/concurrent-ruby/com/concurrent_ruby/ext/jsr166e/ConcurrentHashMap.java +31 -0
  159. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/ext/concurrent-ruby/com/concurrent_ruby/ext/jsr166e/ConcurrentHashMapV8.java +3863 -0
  160. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/ext/concurrent-ruby/com/concurrent_ruby/ext/jsr166e/LongAdder.java +203 -0
  161. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/ext/concurrent-ruby/com/concurrent_ruby/ext/jsr166e/Striped64.java +342 -0
  162. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/ext/concurrent-ruby/com/concurrent_ruby/ext/jsr166e/nounsafe/ConcurrentHashMapV8.java +3800 -0
  163. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/ext/concurrent-ruby/com/concurrent_ruby/ext/jsr166e/nounsafe/LongAdder.java +204 -0
  164. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/ext/concurrent-ruby/com/concurrent_ruby/ext/jsr166e/nounsafe/Striped64.java +291 -0
  165. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/ext/concurrent-ruby/com/concurrent_ruby/ext/jsr166y/ThreadLocalRandom.java +199 -0
  166. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/agent.rb +588 -0
  167. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/array.rb +56 -0
  168. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/async.rb +449 -0
  169. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/atom.rb +222 -0
  170. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/atomic/atomic_boolean.rb +127 -0
  171. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/atomic/atomic_fixnum.rb +144 -0
  172. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/atomic/atomic_markable_reference.rb +167 -0
  173. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/atomic/atomic_reference.rb +135 -0
  174. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/atomic/count_down_latch.rb +100 -0
  175. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/atomic/cyclic_barrier.rb +128 -0
  176. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/atomic/event.rb +109 -0
  177. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/atomic/fiber_local_var.rb +109 -0
  178. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/atomic/java_count_down_latch.rb +43 -0
  179. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/atomic/locals.rb +189 -0
  180. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/atomic/lock_local_var.rb +29 -0
  181. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/atomic/mutex_atomic_boolean.rb +68 -0
  182. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/atomic/mutex_atomic_fixnum.rb +81 -0
  183. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/atomic/mutex_count_down_latch.rb +44 -0
  184. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/atomic/mutex_semaphore.rb +131 -0
  185. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/atomic/read_write_lock.rb +255 -0
  186. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/atomic/reentrant_read_write_lock.rb +379 -0
  187. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/atomic/semaphore.rb +163 -0
  188. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/atomic/thread_local_var.rb +111 -0
  189. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/atomic_reference/atomic_direct_update.rb +37 -0
  190. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/atomic_reference/mutex_atomic.rb +67 -0
  191. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/atomic_reference/numeric_cas_wrapper.rb +28 -0
  192. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/atomics.rb +10 -0
  193. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/collection/copy_on_notify_observer_set.rb +107 -0
  194. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/collection/copy_on_write_observer_set.rb +111 -0
  195. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/collection/java_non_concurrent_priority_queue.rb +84 -0
  196. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/collection/lock_free_stack.rb +160 -0
  197. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/collection/map/mri_map_backend.rb +66 -0
  198. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/collection/map/non_concurrent_map_backend.rb +148 -0
  199. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/collection/map/synchronized_map_backend.rb +85 -0
  200. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/collection/map/truffleruby_map_backend.rb +14 -0
  201. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/collection/non_concurrent_priority_queue.rb +143 -0
  202. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/collection/ruby_non_concurrent_priority_queue.rb +160 -0
  203. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/collection/ruby_timeout_queue.rb +55 -0
  204. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/collection/timeout_queue.rb +18 -0
  205. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/concern/deprecation.rb +34 -0
  206. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/concern/dereferenceable.rb +73 -0
  207. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/concern/logging.rb +121 -0
  208. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/concern/obligation.rb +220 -0
  209. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/concern/observable.rb +110 -0
  210. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/concurrent_ruby.jar +0 -0
  211. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/configuration.rb +105 -0
  212. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/constants.rb +8 -0
  213. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/dataflow.rb +81 -0
  214. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/delay.rb +199 -0
  215. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/errors.rb +74 -0
  216. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/exchanger.rb +353 -0
  217. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/executor/abstract_executor_service.rb +131 -0
  218. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/executor/cached_thread_pool.rb +62 -0
  219. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/executor/executor_service.rb +185 -0
  220. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/executor/fixed_thread_pool.rb +222 -0
  221. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/executor/immediate_executor.rb +66 -0
  222. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/executor/indirect_immediate_executor.rb +44 -0
  223. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/executor/java_executor_service.rb +101 -0
  224. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/executor/java_single_thread_executor.rb +30 -0
  225. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/executor/java_thread_pool_executor.rb +147 -0
  226. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/executor/ruby_executor_service.rb +82 -0
  227. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/executor/ruby_single_thread_executor.rb +23 -0
  228. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb +396 -0
  229. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/executor/safe_task_executor.rb +35 -0
  230. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/executor/serial_executor_service.rb +34 -0
  231. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/executor/serialized_execution.rb +107 -0
  232. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/executor/serialized_execution_delegator.rb +28 -0
  233. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/executor/simple_executor_service.rb +103 -0
  234. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/executor/single_thread_executor.rb +57 -0
  235. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/executor/thread_pool_executor.rb +88 -0
  236. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/executor/timer_set.rb +179 -0
  237. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/executors.rb +19 -0
  238. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/future.rb +141 -0
  239. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/hash.rb +52 -0
  240. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/immutable_struct.rb +101 -0
  241. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/ivar.rb +208 -0
  242. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/map.rb +350 -0
  243. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/maybe.rb +229 -0
  244. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/mutable_struct.rb +239 -0
  245. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/mvar.rb +242 -0
  246. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/options.rb +42 -0
  247. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/promise.rb +580 -0
  248. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/promises.rb +2178 -0
  249. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/re_include.rb +60 -0
  250. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/scheduled_task.rb +331 -0
  251. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/set.rb +64 -0
  252. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/settable_struct.rb +139 -0
  253. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/synchronization/abstract_lockable_object.rb +102 -0
  254. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/synchronization/abstract_object.rb +22 -0
  255. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/synchronization/abstract_struct.rb +171 -0
  256. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/synchronization/condition.rb +62 -0
  257. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/synchronization/full_memory_barrier.rb +29 -0
  258. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/synchronization/jruby_lockable_object.rb +15 -0
  259. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/synchronization/lock.rb +38 -0
  260. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/synchronization/lockable_object.rb +75 -0
  261. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/synchronization/mutex_lockable_object.rb +89 -0
  262. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/synchronization/object.rb +151 -0
  263. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/synchronization/safe_initialization.rb +36 -0
  264. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/synchronization/volatile.rb +101 -0
  265. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/synchronization.rb +13 -0
  266. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/thread_safe/synchronized_delegator.rb +47 -0
  267. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/thread_safe/util/adder.rb +74 -0
  268. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/thread_safe/util/data_structures.rb +52 -0
  269. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/thread_safe/util/power_of_two_tuple.rb +38 -0
  270. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/thread_safe/util/striped64.rb +246 -0
  271. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/thread_safe/util/volatile.rb +75 -0
  272. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/thread_safe/util/xor_shift_random.rb +50 -0
  273. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/thread_safe/util.rb +16 -0
  274. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/timer_task.rb +366 -0
  275. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/tuple.rb +82 -0
  276. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/tvar.rb +222 -0
  277. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/utility/engine.rb +45 -0
  278. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/utility/monotonic_time.rb +19 -0
  279. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/utility/native_extension_loader.rb +77 -0
  280. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/utility/native_integer.rb +54 -0
  281. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/utility/processor_counter.rb +220 -0
  282. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/version.rb +3 -0
  283. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent-ruby.rb +5 -0
  284. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent.rb +134 -0
  285. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/.rspec +1 -0
  286. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/CHANGELOG.md +518 -0
  287. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/CODE_OF_CONDUCT.md +128 -0
  288. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/CONTRIBUTING.md +71 -0
  289. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/CONTRIBUTORS.md +49 -0
  290. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/LICENCE.md +40 -0
  291. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/Manifest.txt +115 -0
  292. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/README.md +92 -0
  293. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/Rakefile +115 -0
  294. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/SECURITY.md +41 -0
  295. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/bin/htmldiff +35 -0
  296. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/bin/ldiff +9 -0
  297. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/docs/COPYING.txt +339 -0
  298. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/docs/artistic.txt +127 -0
  299. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/lib/diff/lcs/array.rb +7 -0
  300. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/lib/diff/lcs/backports.rb +13 -0
  301. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/lib/diff/lcs/block.rb +37 -0
  302. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/lib/diff/lcs/callbacks.rb +327 -0
  303. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/lib/diff/lcs/change.rb +174 -0
  304. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/lib/diff/lcs/htmldiff.rb +160 -0
  305. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/lib/diff/lcs/hunk.rb +379 -0
  306. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/lib/diff/lcs/internals.rb +308 -0
  307. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/lib/diff/lcs/ldiff.rb +189 -0
  308. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/lib/diff/lcs/string.rb +5 -0
  309. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/lib/diff/lcs/version.rb +7 -0
  310. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/lib/diff/lcs.rb +742 -0
  311. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/lib/diff-lcs.rb +3 -0
  312. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/mise.toml +5 -0
  313. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/change_spec.rb +89 -0
  314. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/diff_spec.rb +51 -0
  315. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/123_x +2 -0
  316. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/456_x +2 -0
  317. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/aX +1 -0
  318. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/bXaX +1 -0
  319. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ds1.csv +50 -0
  320. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ds2.csv +51 -0
  321. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/empty +0 -0
  322. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/file1.bin +0 -0
  323. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/file2.bin +0 -0
  324. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/four_lines +4 -0
  325. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/four_lines_with_missing_new_line +4 -0
  326. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/diff.missing_new_line1-e +1 -0
  327. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/diff.missing_new_line1-f +1 -0
  328. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/diff.missing_new_line2-e +1 -0
  329. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/diff.missing_new_line2-f +1 -0
  330. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/error.diff.chef-e +2 -0
  331. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/error.diff.chef-f +2 -0
  332. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/error.diff.missing_new_line1-e +1 -0
  333. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/error.diff.missing_new_line1-f +1 -0
  334. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/error.diff.missing_new_line2-e +1 -0
  335. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/error.diff.missing_new_line2-f +1 -0
  336. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff +4 -0
  337. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff-c +7 -0
  338. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff-e +3 -0
  339. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff-f +3 -0
  340. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff-u +5 -0
  341. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.bin1 +0 -0
  342. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.bin1-c +0 -0
  343. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.bin1-e +0 -0
  344. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.bin1-f +0 -0
  345. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.bin1-u +0 -0
  346. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.bin2 +1 -0
  347. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.bin2-c +1 -0
  348. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.bin2-e +1 -0
  349. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.bin2-f +1 -0
  350. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.bin2-u +1 -0
  351. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.chef +4 -0
  352. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.chef-c +15 -0
  353. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.chef-e +3 -0
  354. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.chef-f +3 -0
  355. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.chef-u +9 -0
  356. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.chef2 +7 -0
  357. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.chef2-c +20 -0
  358. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.chef2-d +7 -0
  359. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.chef2-e +7 -0
  360. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.chef2-f +7 -0
  361. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.chef2-u +16 -0
  362. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.empty.vs.four_lines +5 -0
  363. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.empty.vs.four_lines-c +9 -0
  364. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.empty.vs.four_lines-e +6 -0
  365. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.empty.vs.four_lines-f +6 -0
  366. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.empty.vs.four_lines-u +7 -0
  367. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.four_lines.vs.empty +5 -0
  368. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.four_lines.vs.empty-c +9 -0
  369. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.four_lines.vs.empty-e +1 -0
  370. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.four_lines.vs.empty-f +1 -0
  371. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.four_lines.vs.empty-u +7 -0
  372. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.issue95_trailing_context +4 -0
  373. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.issue95_trailing_context-c +9 -0
  374. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.issue95_trailing_context-e +3 -0
  375. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.issue95_trailing_context-f +3 -0
  376. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.issue95_trailing_context-u +6 -0
  377. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.missing_new_line1 +5 -0
  378. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.missing_new_line1-c +14 -0
  379. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.missing_new_line1-e +0 -0
  380. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.missing_new_line1-f +0 -0
  381. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.missing_new_line1-u +9 -0
  382. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.missing_new_line2 +5 -0
  383. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.missing_new_line2-c +14 -0
  384. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.missing_new_line2-e +0 -0
  385. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.missing_new_line2-f +0 -0
  386. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.missing_new_line2-u +9 -0
  387. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/new-chef +4 -0
  388. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/new-chef2 +17 -0
  389. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/old-chef +4 -0
  390. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/old-chef2 +14 -0
  391. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/hunk_spec.rb +83 -0
  392. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/issues_spec.rb +160 -0
  393. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/lcs_spec.rb +56 -0
  394. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/ldiff_spec.rb +100 -0
  395. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/patch_spec.rb +416 -0
  396. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/sdiff_spec.rb +216 -0
  397. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/spec_helper.rb +376 -0
  398. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/traverse_balanced_spec.rb +312 -0
  399. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/traverse_sequences_spec.rb +137 -0
  400. data/vendor/bundle/ruby/3.3.0/gems/docile-1.4.1/.github/dependabot.yml +15 -0
  401. data/vendor/bundle/ruby/3.3.0/gems/docile-1.4.1/.github/workflows/main.yml +42 -0
  402. data/vendor/bundle/ruby/3.3.0/gems/docile-1.4.1/.gitignore +11 -0
  403. data/vendor/bundle/ruby/3.3.0/gems/docile-1.4.1/.rspec +2 -0
  404. data/vendor/bundle/ruby/3.3.0/gems/docile-1.4.1/.rubocop.yml +5 -0
  405. data/vendor/bundle/ruby/3.3.0/gems/docile-1.4.1/.yardopts +7 -0
  406. data/vendor/bundle/ruby/3.3.0/gems/docile-1.4.1/Gemfile +26 -0
  407. data/vendor/bundle/ruby/3.3.0/gems/docile-1.4.1/HISTORY.md +134 -0
  408. data/vendor/bundle/ruby/3.3.0/gems/docile-1.4.1/LICENSE +21 -0
  409. data/vendor/bundle/ruby/3.3.0/gems/docile-1.4.1/README.md +409 -0
  410. data/vendor/bundle/ruby/3.3.0/gems/docile-1.4.1/Rakefile +14 -0
  411. data/vendor/bundle/ruby/3.3.0/gems/docile-1.4.1/SECURITY.md +19 -0
  412. data/vendor/bundle/ruby/3.3.0/gems/docile-1.4.1/docile.gemspec +36 -0
  413. data/vendor/bundle/ruby/3.3.0/gems/docile-1.4.1/lib/docile/backtrace_filter.rb +24 -0
  414. data/vendor/bundle/ruby/3.3.0/gems/docile-1.4.1/lib/docile/chaining_fallback_context_proxy.rb +27 -0
  415. data/vendor/bundle/ruby/3.3.0/gems/docile-1.4.1/lib/docile/execution.rb +53 -0
  416. data/vendor/bundle/ruby/3.3.0/gems/docile-1.4.1/lib/docile/fallback_context_proxy.rb +107 -0
  417. data/vendor/bundle/ruby/3.3.0/gems/docile-1.4.1/lib/docile/version.rb +6 -0
  418. data/vendor/bundle/ruby/3.3.0/gems/docile-1.4.1/lib/docile.rb +134 -0
  419. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/CHANGELOG.md +351 -0
  420. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/LICENSE +21 -0
  421. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/README.md +17 -0
  422. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/dry-core.gemspec +41 -0
  423. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core/basic_object.rb +143 -0
  424. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core/cache.rb +69 -0
  425. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core/class_attributes.rb +103 -0
  426. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core/class_builder.rb +103 -0
  427. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core/constants.rb +115 -0
  428. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core/container/config.rb +34 -0
  429. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core/container/configuration.rb +37 -0
  430. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core/container/item/callable.rb +22 -0
  431. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core/container/item/factory.rb +29 -0
  432. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core/container/item/memoizable.rb +49 -0
  433. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core/container/item.rb +56 -0
  434. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core/container/mixin.rb +311 -0
  435. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core/container/namespace.rb +47 -0
  436. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core/container/namespace_dsl.rb +63 -0
  437. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core/container/registry.rb +52 -0
  438. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core/container/resolver.rb +90 -0
  439. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core/container/stub.rb +57 -0
  440. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core/container.rb +27 -0
  441. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core/deprecations.rb +237 -0
  442. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core/descendants_tracker.rb +78 -0
  443. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core/equalizer.rb +156 -0
  444. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core/errors.rb +13 -0
  445. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core/extensions.rb +61 -0
  446. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core/inflector.rb +143 -0
  447. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core/memoizable.rb +235 -0
  448. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core/version.rb +7 -0
  449. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core.rb +56 -0
  450. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry-core.rb +3 -0
  451. data/vendor/bundle/ruby/3.3.0/gems/dry-inflector-1.3.1/CHANGELOG.md +153 -0
  452. data/vendor/bundle/ruby/3.3.0/gems/dry-inflector-1.3.1/LICENSE +20 -0
  453. data/vendor/bundle/ruby/3.3.0/gems/dry-inflector-1.3.1/README.md +17 -0
  454. data/vendor/bundle/ruby/3.3.0/gems/dry-inflector-1.3.1/dry-inflector.gemspec +38 -0
  455. data/vendor/bundle/ruby/3.3.0/gems/dry-inflector-1.3.1/lib/dry/inflector/acronyms.rb +42 -0
  456. data/vendor/bundle/ruby/3.3.0/gems/dry-inflector-1.3.1/lib/dry/inflector/inflections/defaults.rb +129 -0
  457. data/vendor/bundle/ruby/3.3.0/gems/dry-inflector-1.3.1/lib/dry/inflector/inflections.rb +259 -0
  458. data/vendor/bundle/ruby/3.3.0/gems/dry-inflector-1.3.1/lib/dry/inflector/rules.rb +34 -0
  459. data/vendor/bundle/ruby/3.3.0/gems/dry-inflector-1.3.1/lib/dry/inflector/version.rb +8 -0
  460. data/vendor/bundle/ruby/3.3.0/gems/dry-inflector-1.3.1/lib/dry/inflector.rb +343 -0
  461. data/vendor/bundle/ruby/3.3.0/gems/dry-inflector-1.3.1/lib/dry-inflector.rb +3 -0
  462. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/CHANGELOG.md +375 -0
  463. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/LICENSE +20 -0
  464. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/README.md +22 -0
  465. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/dry-logic.gemspec +37 -0
  466. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/lib/dry/logic/appliable.rb +35 -0
  467. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/lib/dry/logic/builder.rb +88 -0
  468. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/lib/dry/logic/evaluator.rb +48 -0
  469. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/lib/dry/logic/operations/abstract.rb +42 -0
  470. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/lib/dry/logic/operations/and.rb +44 -0
  471. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/lib/dry/logic/operations/attr.rb +17 -0
  472. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/lib/dry/logic/operations/binary.rb +27 -0
  473. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/lib/dry/logic/operations/check.rb +50 -0
  474. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/lib/dry/logic/operations/each.rb +31 -0
  475. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/lib/dry/logic/operations/implication.rb +36 -0
  476. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/lib/dry/logic/operations/key.rb +64 -0
  477. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/lib/dry/logic/operations/negation.rb +21 -0
  478. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/lib/dry/logic/operations/or.rb +34 -0
  479. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/lib/dry/logic/operations/set.rb +34 -0
  480. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/lib/dry/logic/operations/unary.rb +24 -0
  481. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/lib/dry/logic/operations/xor.rb +26 -0
  482. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/lib/dry/logic/operators.rb +27 -0
  483. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/lib/dry/logic/predicates.rb +233 -0
  484. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/lib/dry/logic/result.rb +96 -0
  485. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/lib/dry/logic/rule/interface.rb +137 -0
  486. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/lib/dry/logic/rule/predicate.rb +34 -0
  487. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/lib/dry/logic/rule.rb +98 -0
  488. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/lib/dry/logic/rule_compiler.rb +81 -0
  489. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/lib/dry/logic/version.rb +7 -0
  490. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/lib/dry/logic.rb +25 -0
  491. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/lib/dry-logic.rb +3 -0
  492. data/vendor/bundle/ruby/3.3.0/gems/dry-struct-1.8.0/CHANGELOG.md +482 -0
  493. data/vendor/bundle/ruby/3.3.0/gems/dry-struct-1.8.0/LICENSE +20 -0
  494. data/vendor/bundle/ruby/3.3.0/gems/dry-struct-1.8.0/README.md +22 -0
  495. data/vendor/bundle/ruby/3.3.0/gems/dry-struct-1.8.0/dry-struct.gemspec +37 -0
  496. data/vendor/bundle/ruby/3.3.0/gems/dry-struct-1.8.0/lib/dry/struct/class_interface.rb +471 -0
  497. data/vendor/bundle/ruby/3.3.0/gems/dry-struct-1.8.0/lib/dry/struct/compiler.rb +19 -0
  498. data/vendor/bundle/ruby/3.3.0/gems/dry-struct-1.8.0/lib/dry/struct/constructor.rb +9 -0
  499. data/vendor/bundle/ruby/3.3.0/gems/dry-struct-1.8.0/lib/dry/struct/errors.rb +32 -0
  500. data/vendor/bundle/ruby/3.3.0/gems/dry-struct-1.8.0/lib/dry/struct/extensions/pretty_print.rb +22 -0
  501. data/vendor/bundle/ruby/3.3.0/gems/dry-struct-1.8.0/lib/dry/struct/extensions/super_diff.rb +10 -0
  502. data/vendor/bundle/ruby/3.3.0/gems/dry-struct-1.8.0/lib/dry/struct/extensions.rb +9 -0
  503. data/vendor/bundle/ruby/3.3.0/gems/dry-struct-1.8.0/lib/dry/struct/hashify.rb +23 -0
  504. data/vendor/bundle/ruby/3.3.0/gems/dry-struct-1.8.0/lib/dry/struct/printer.rb +23 -0
  505. data/vendor/bundle/ruby/3.3.0/gems/dry-struct-1.8.0/lib/dry/struct/struct_builder.rb +102 -0
  506. data/vendor/bundle/ruby/3.3.0/gems/dry-struct-1.8.0/lib/dry/struct/sum.rb +51 -0
  507. data/vendor/bundle/ruby/3.3.0/gems/dry-struct-1.8.0/lib/dry/struct/value.rb +37 -0
  508. data/vendor/bundle/ruby/3.3.0/gems/dry-struct-1.8.0/lib/dry/struct/version.rb +8 -0
  509. data/vendor/bundle/ruby/3.3.0/gems/dry-struct-1.8.0/lib/dry/struct.rb +230 -0
  510. data/vendor/bundle/ruby/3.3.0/gems/dry-struct-1.8.0/lib/dry-struct.rb +3 -0
  511. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/CHANGELOG.md +1145 -0
  512. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/LICENSE +20 -0
  513. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/README.md +17 -0
  514. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/dry-types.gemspec +45 -0
  515. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/any.rb +41 -0
  516. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/array/constructor.rb +24 -0
  517. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/array/member.rb +118 -0
  518. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/array.rb +32 -0
  519. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/builder.rb +221 -0
  520. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/builder_methods.rb +138 -0
  521. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/coercions/json.rb +57 -0
  522. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/coercions/params.rb +168 -0
  523. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/coercions.rb +105 -0
  524. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/compat.rb +1 -0
  525. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/compiler.rb +138 -0
  526. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/composition.rb +138 -0
  527. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/constrained/coercible.rb +59 -0
  528. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/constrained.rb +146 -0
  529. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/constraints.rb +30 -0
  530. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/constructor/function.rb +203 -0
  531. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/constructor/wrapper.rb +88 -0
  532. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/constructor.rb +195 -0
  533. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/container.rb +12 -0
  534. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/core.rb +106 -0
  535. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/decorator.rb +94 -0
  536. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/default.rb +122 -0
  537. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/enum.rb +121 -0
  538. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/errors.rb +138 -0
  539. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/extensions/maybe.rb +128 -0
  540. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/extensions/monads.rb +34 -0
  541. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/extensions.rb +9 -0
  542. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/fn_container.rb +37 -0
  543. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/hash/constructor.rb +25 -0
  544. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/hash.rb +134 -0
  545. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/implication.rb +64 -0
  546. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/inflector.rb +9 -0
  547. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/intersection.rb +102 -0
  548. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/json.rb +35 -0
  549. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/lax.rb +66 -0
  550. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/map.rb +134 -0
  551. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/meta.rb +53 -0
  552. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/module.rb +127 -0
  553. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/nominal.rb +201 -0
  554. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/options.rb +34 -0
  555. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/params.rb +38 -0
  556. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/predicate_inferrer.rb +235 -0
  557. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/predicate_registry.rb +32 -0
  558. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/primitive_inferrer.rb +75 -0
  559. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/printable.rb +14 -0
  560. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/printer/composition.rb +44 -0
  561. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/printer.rb +313 -0
  562. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/result.rb +72 -0
  563. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/schema/key.rb +138 -0
  564. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/schema.rb +408 -0
  565. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/spec/types.rb +164 -0
  566. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/sum.rb +105 -0
  567. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/type.rb +53 -0
  568. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/version.rb +7 -0
  569. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types.rb +259 -0
  570. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry-types.rb +3 -0
  571. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/.gitignore +37 -0
  572. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/.pelusa.yml +9 -0
  573. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/.rspec +5 -0
  574. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/.rubocop.yml +8 -0
  575. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/.ruby-gemset +1 -0
  576. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/.travis.yml +27 -0
  577. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/.yardopts +1 -0
  578. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/CONTRIBUTING.md +11 -0
  579. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/Gemfile +14 -0
  580. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/Gemfile.devtools +72 -0
  581. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/Guardfile +24 -0
  582. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/LICENSE +20 -0
  583. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/README.md +51 -0
  584. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/Rakefile +13 -0
  585. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/TODO +7 -0
  586. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/benchmarks/speed.rb +34 -0
  587. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/config/devtools.yml +2 -0
  588. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/config/flay.yml +3 -0
  589. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/config/flog.yml +2 -0
  590. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/config/mutant.yml +4 -0
  591. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/config/reek.yml +105 -0
  592. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/config/roodi.yml +16 -0
  593. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/config/rubocop.yml +114 -0
  594. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/config/yardstick.yml +2 -0
  595. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/ice_nine.gemspec +21 -0
  596. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/lib/ice_nine/core_ext/object.rb +42 -0
  597. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/lib/ice_nine/freezer/array.rb +28 -0
  598. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/lib/ice_nine/freezer/false_class.rb +10 -0
  599. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/lib/ice_nine/freezer/hash/state.rb +12 -0
  600. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/lib/ice_nine/freezer/hash.rb +46 -0
  601. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/lib/ice_nine/freezer/module.rb +10 -0
  602. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/lib/ice_nine/freezer/nil_class.rb +10 -0
  603. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/lib/ice_nine/freezer/no_freeze.rb +25 -0
  604. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/lib/ice_nine/freezer/numeric.rb +10 -0
  605. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/lib/ice_nine/freezer/object.rb +49 -0
  606. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/lib/ice_nine/freezer/range.rb +29 -0
  607. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/lib/ice_nine/freezer/rubinius.rb +10 -0
  608. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/lib/ice_nine/freezer/struct.rb +10 -0
  609. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/lib/ice_nine/freezer/symbol.rb +10 -0
  610. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/lib/ice_nine/freezer/true_class.rb +10 -0
  611. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/lib/ice_nine/freezer.rb +109 -0
  612. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/lib/ice_nine/support/recursion_guard.rb +57 -0
  613. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/lib/ice_nine/version.rb +8 -0
  614. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/lib/ice_nine.rb +62 -0
  615. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/spec/integration/ice_nine/class_methods/deep_freeze_bang_spec.rb +21 -0
  616. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/spec/integration/ice_nine/class_methods/deep_freeze_spec.rb +21 -0
  617. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/spec/shared/array_deep_freeze.rb +9 -0
  618. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/spec/shared/hash_deep_freeze.rb +23 -0
  619. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/spec/shared/ice_nine_deep_freeze.rb +262 -0
  620. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/spec/shared/no_freeze_deep_freeze.rb +21 -0
  621. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/spec/shared/object_deep_freeze.rb +19 -0
  622. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/spec/shared/range_deep_freeze.rb +13 -0
  623. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/spec/spec_helper.rb +28 -0
  624. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/spec/support/config_alias.rb +5 -0
  625. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/spec/unit/ice_nine/class_methods/deep_freeze_bang_spec.rb +24 -0
  626. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/spec/unit/ice_nine/class_methods/deep_freeze_spec.rb +34 -0
  627. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/spec/unit/ice_nine/core_ext/object/deep_freeze_bang_spec.rb +24 -0
  628. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/spec/unit/ice_nine/core_ext/object/deep_freeze_spec.rb +13 -0
  629. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/spec/unit/ice_nine/freezer/array/class_methods/deep_freeze_spec.rb +24 -0
  630. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/spec/unit/ice_nine/freezer/class_methods/element_reader_spec.rb +138 -0
  631. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/spec/unit/ice_nine/freezer/false_class/class_methods/deep_freeze_spec.rb +18 -0
  632. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/spec/unit/ice_nine/freezer/hash/class_methods/deep_freeze_spec.rb +64 -0
  633. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/spec/unit/ice_nine/freezer/module/class_methods/deep_freeze_spec.rb +18 -0
  634. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/spec/unit/ice_nine/freezer/nil_class/class_methods/deep_freeze_spec.rb +18 -0
  635. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/spec/unit/ice_nine/freezer/no_freeze/class_methods/deep_freeze_spec.rb +13 -0
  636. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/spec/unit/ice_nine/freezer/numeric/class_methods/deep_freeze_spec.rb +21 -0
  637. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/spec/unit/ice_nine/freezer/object/class_methods/deep_freeze_spec.rb +40 -0
  638. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/spec/unit/ice_nine/freezer/range/class_methods/deep_freeze_spec.rb +55 -0
  639. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/spec/unit/ice_nine/freezer/struct/class_methods/deep_freeze_spec.rb +17 -0
  640. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/spec/unit/ice_nine/freezer/symbol/class_methods/deep_freeze_spec.rb +18 -0
  641. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/spec/unit/ice_nine/freezer/true_class/class_methods/deep_freeze_spec.rb +19 -0
  642. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/spec/unit/ice_nine/recursion_guard/frozen/guard_spec.rb +28 -0
  643. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/spec/unit/ice_nine/recursion_guard/object_set/guard_spec.rb +31 -0
  644. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/spec/unit/object/deep_freeze_spec.rb +13 -0
  645. data/vendor/bundle/ruby/3.3.0/gems/logger-1.7.0/.document +4 -0
  646. data/vendor/bundle/ruby/3.3.0/gems/logger-1.7.0/.rdoc_options +3 -0
  647. data/vendor/bundle/ruby/3.3.0/gems/logger-1.7.0/BSDL +22 -0
  648. data/vendor/bundle/ruby/3.3.0/gems/logger-1.7.0/COPYING +56 -0
  649. data/vendor/bundle/ruby/3.3.0/gems/logger-1.7.0/README.md +104 -0
  650. data/vendor/bundle/ruby/3.3.0/gems/logger-1.7.0/lib/logger/errors.rb +9 -0
  651. data/vendor/bundle/ruby/3.3.0/gems/logger-1.7.0/lib/logger/formatter.rb +36 -0
  652. data/vendor/bundle/ruby/3.3.0/gems/logger-1.7.0/lib/logger/log_device.rb +265 -0
  653. data/vendor/bundle/ruby/3.3.0/gems/logger-1.7.0/lib/logger/period.rb +47 -0
  654. data/vendor/bundle/ruby/3.3.0/gems/logger-1.7.0/lib/logger/severity.rb +38 -0
  655. data/vendor/bundle/ruby/3.3.0/gems/logger-1.7.0/lib/logger/version.rb +5 -0
  656. data/vendor/bundle/ruby/3.3.0/gems/logger-1.7.0/lib/logger.rb +789 -0
  657. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/History.rdoc +2454 -0
  658. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/MIT-LICENSE +21 -0
  659. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/README.rdoc +155 -0
  660. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/doc/command_line_usage.rdoc +171 -0
  661. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/doc/example/Rakefile1 +38 -0
  662. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/doc/example/Rakefile2 +35 -0
  663. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/doc/example/a.c +6 -0
  664. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/doc/example/b.c +6 -0
  665. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/doc/example/main.c +11 -0
  666. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/doc/glossary.rdoc +42 -0
  667. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/doc/jamis.rb +592 -0
  668. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/doc/proto_rake.rdoc +127 -0
  669. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/doc/rake.1 +156 -0
  670. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/doc/rakefile.rdoc +622 -0
  671. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/doc/rational.rdoc +151 -0
  672. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/exe/rake +27 -0
  673. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/application.rb +854 -0
  674. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/backtrace.rb +25 -0
  675. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/clean.rb +78 -0
  676. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/cloneable.rb +17 -0
  677. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/cpu_counter.rb +122 -0
  678. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/default_loader.rb +15 -0
  679. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/dsl_definition.rb +196 -0
  680. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/early_time.rb +22 -0
  681. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/ext/core.rb +26 -0
  682. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/ext/string.rb +176 -0
  683. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/file_creation_task.rb +25 -0
  684. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/file_list.rb +435 -0
  685. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/file_task.rb +58 -0
  686. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/file_utils.rb +132 -0
  687. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/file_utils_ext.rb +134 -0
  688. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/invocation_chain.rb +57 -0
  689. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/invocation_exception_mixin.rb +17 -0
  690. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/late_time.rb +18 -0
  691. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/linked_list.rb +112 -0
  692. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/loaders/makefile.rb +54 -0
  693. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/multi_task.rb +14 -0
  694. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/name_space.rb +38 -0
  695. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/packagetask.rb +222 -0
  696. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/phony.rb +16 -0
  697. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/private_reader.rb +21 -0
  698. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/promise.rb +100 -0
  699. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/pseudo_status.rb +30 -0
  700. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/rake_module.rb +67 -0
  701. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/rake_test_loader.rb +27 -0
  702. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/rule_recursion_overflow_error.rb +20 -0
  703. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/scope.rb +43 -0
  704. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/task.rb +434 -0
  705. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/task_argument_error.rb +8 -0
  706. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/task_arguments.rb +113 -0
  707. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/task_manager.rb +331 -0
  708. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/tasklib.rb +12 -0
  709. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/testtask.rb +189 -0
  710. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/thread_history_display.rb +49 -0
  711. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/thread_pool.rb +157 -0
  712. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/trace_output.rb +23 -0
  713. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/version.rb +10 -0
  714. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/win32.rb +51 -0
  715. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake.rb +68 -0
  716. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/rake.gemspec +101 -0
  717. data/vendor/bundle/ruby/3.3.0/gems/rspec-3.13.2/LICENSE.md +27 -0
  718. data/vendor/bundle/ruby/3.3.0/gems/rspec-3.13.2/README.md +47 -0
  719. data/vendor/bundle/ruby/3.3.0/gems/rspec-3.13.2/lib/rspec/version.rb +5 -0
  720. data/vendor/bundle/ruby/3.3.0/gems/rspec-3.13.2/lib/rspec.rb +3 -0
  721. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/.document +5 -0
  722. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/.yardopts +8 -0
  723. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/Changelog.md +2447 -0
  724. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/LICENSE.md +26 -0
  725. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/README.md +389 -0
  726. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/exe/rspec +4 -0
  727. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/autorun.rb +3 -0
  728. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/backtrace_formatter.rb +65 -0
  729. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/bisect/coordinator.rb +62 -0
  730. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/bisect/example_minimizer.rb +173 -0
  731. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/bisect/fork_runner.rb +140 -0
  732. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/bisect/server.rb +61 -0
  733. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/bisect/shell_command.rb +126 -0
  734. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/bisect/shell_runner.rb +73 -0
  735. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/bisect/utilities.rb +69 -0
  736. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/configuration.rb +2419 -0
  737. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/configuration_options.rb +240 -0
  738. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/did_you_mean.rb +52 -0
  739. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/drb.rb +120 -0
  740. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/dsl.rb +98 -0
  741. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/example.rb +666 -0
  742. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/example_group.rb +912 -0
  743. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/example_status_persister.rb +235 -0
  744. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/filter_manager.rb +231 -0
  745. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/flat_map.rb +20 -0
  746. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/formatters/base_bisect_formatter.rb +45 -0
  747. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/formatters/base_formatter.rb +70 -0
  748. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/formatters/base_text_formatter.rb +75 -0
  749. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/formatters/bisect_drb_formatter.rb +29 -0
  750. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/formatters/bisect_progress_formatter.rb +157 -0
  751. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/formatters/console_codes.rb +76 -0
  752. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/formatters/deprecation_formatter.rb +223 -0
  753. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/formatters/documentation_formatter.rb +102 -0
  754. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/formatters/exception_presenter.rb +553 -0
  755. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/formatters/failure_list_formatter.rb +23 -0
  756. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/formatters/fallback_message_formatter.rb +28 -0
  757. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/formatters/helpers.rb +118 -0
  758. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/formatters/html_formatter.rb +153 -0
  759. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/formatters/html_printer.rb +412 -0
  760. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/formatters/html_snippet_extractor.rb +122 -0
  761. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/formatters/json_formatter.rb +103 -0
  762. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/formatters/profile_formatter.rb +68 -0
  763. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/formatters/progress_formatter.rb +29 -0
  764. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/formatters/protocol.rb +182 -0
  765. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/formatters/snippet_extractor.rb +134 -0
  766. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/formatters/syntax_highlighter.rb +91 -0
  767. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/formatters.rb +279 -0
  768. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/hooks.rb +646 -0
  769. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/invocations.rb +87 -0
  770. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/memoized_helpers.rb +580 -0
  771. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/metadata.rb +498 -0
  772. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/metadata_filter.rb +255 -0
  773. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/minitest_assertions_adapter.rb +31 -0
  774. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/mocking_adapters/flexmock.rb +31 -0
  775. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/mocking_adapters/mocha.rb +57 -0
  776. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/mocking_adapters/null.rb +14 -0
  777. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/mocking_adapters/rr.rb +31 -0
  778. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/mocking_adapters/rspec.rb +32 -0
  779. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/notifications.rb +523 -0
  780. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/option_parser.rb +325 -0
  781. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/ordering.rb +208 -0
  782. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/output_wrapper.rb +29 -0
  783. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/pending.rb +157 -0
  784. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/profiler.rb +34 -0
  785. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/project_initializer/.rspec +1 -0
  786. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/project_initializer/spec/spec_helper.rb +98 -0
  787. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/project_initializer.rb +48 -0
  788. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/rake_task.rb +190 -0
  789. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/reporter.rb +266 -0
  790. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/ruby_project.rb +53 -0
  791. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/runner.rb +216 -0
  792. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/sandbox.rb +37 -0
  793. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/set.rb +54 -0
  794. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/shared_context.rb +55 -0
  795. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/shared_example_group.rb +271 -0
  796. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/shell_escape.rb +49 -0
  797. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/test_unit_assertions_adapter.rb +30 -0
  798. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/version.rb +9 -0
  799. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/warnings.rb +40 -0
  800. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/world.rb +287 -0
  801. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core.rb +212 -0
  802. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/.document +5 -0
  803. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/.yardopts +6 -0
  804. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/Changelog.md +1366 -0
  805. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/LICENSE.md +25 -0
  806. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/README.md +326 -0
  807. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/expectations/block_snippet_extractor.rb +255 -0
  808. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/expectations/configuration.rb +244 -0
  809. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/expectations/expectation_target.rb +163 -0
  810. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/expectations/fail_with.rb +39 -0
  811. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/expectations/failure_aggregator.rb +236 -0
  812. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/expectations/handler.rb +181 -0
  813. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/expectations/minitest_integration.rb +58 -0
  814. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/expectations/syntax.rb +132 -0
  815. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/expectations/version.rb +8 -0
  816. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/expectations.rb +82 -0
  817. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/aliased_matcher.rb +116 -0
  818. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/all.rb +86 -0
  819. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/base_matcher.rb +225 -0
  820. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/be.rb +191 -0
  821. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/be_between.rb +77 -0
  822. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/be_instance_of.rb +26 -0
  823. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/be_kind_of.rb +20 -0
  824. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/be_within.rb +72 -0
  825. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/change.rb +452 -0
  826. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/compound.rb +293 -0
  827. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/contain_exactly.rb +312 -0
  828. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/count_expectation.rb +171 -0
  829. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/cover.rb +24 -0
  830. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/eq.rb +44 -0
  831. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/eql.rb +38 -0
  832. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/equal.rb +81 -0
  833. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/exist.rb +90 -0
  834. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/has.rb +194 -0
  835. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/have_attributes.rb +114 -0
  836. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/include.rb +218 -0
  837. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/match.rb +120 -0
  838. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/operators.rb +128 -0
  839. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/output.rb +207 -0
  840. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/raise_error.rb +275 -0
  841. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/respond_to.rb +200 -0
  842. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/satisfy.rb +62 -0
  843. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/start_or_end_with.rb +94 -0
  844. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/throw_symbol.rb +138 -0
  845. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/yield.rb +375 -0
  846. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in.rb +53 -0
  847. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/composable.rb +171 -0
  848. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/dsl.rb +546 -0
  849. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/english_phrasing.rb +60 -0
  850. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/fail_matchers.rb +42 -0
  851. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/generated_descriptions.rb +41 -0
  852. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/matcher_delegator.rb +61 -0
  853. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/matcher_protocol.rb +105 -0
  854. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/multi_matcher_diff.rb +82 -0
  855. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers.rb +1046 -0
  856. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/.document +5 -0
  857. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/.yardopts +6 -0
  858. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/Changelog.md +1343 -0
  859. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/LICENSE.md +25 -0
  860. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/README.md +465 -0
  861. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/any_instance/chain.rb +111 -0
  862. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/any_instance/error_generator.rb +31 -0
  863. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/any_instance/expect_chain_chain.rb +31 -0
  864. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/any_instance/expectation_chain.rb +50 -0
  865. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/any_instance/message_chains.rb +83 -0
  866. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/any_instance/proxy.rb +125 -0
  867. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/any_instance/recorder.rb +299 -0
  868. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/any_instance/stub_chain.rb +51 -0
  869. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/any_instance/stub_chain_chain.rb +23 -0
  870. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/any_instance.rb +11 -0
  871. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/argument_list_matcher.rb +117 -0
  872. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/argument_matchers.rb +366 -0
  873. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/configuration.rb +212 -0
  874. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/error_generator.rb +390 -0
  875. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/example_methods.rb +434 -0
  876. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/instance_method_stasher.rb +146 -0
  877. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/marshal_extension.rb +41 -0
  878. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/matchers/expectation_customization.rb +20 -0
  879. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/matchers/have_received.rb +134 -0
  880. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/matchers/receive.rb +134 -0
  881. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/matchers/receive_message_chain.rb +82 -0
  882. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/matchers/receive_messages.rb +77 -0
  883. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/message_chain.rb +87 -0
  884. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/message_expectation.rb +856 -0
  885. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/method_double.rb +316 -0
  886. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/method_reference.rb +214 -0
  887. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/minitest_integration.rb +68 -0
  888. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/mutate_const.rb +339 -0
  889. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/object_reference.rb +149 -0
  890. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/order_group.rb +81 -0
  891. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/proxy.rb +517 -0
  892. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/space.rb +238 -0
  893. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/standalone.rb +3 -0
  894. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/syntax.rb +325 -0
  895. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/targets.rb +124 -0
  896. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/test_double.rb +174 -0
  897. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/verifying_double.rb +125 -0
  898. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/verifying_message_expectation.rb +55 -0
  899. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/verifying_proxy.rb +221 -0
  900. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/version.rb +9 -0
  901. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks.rb +133 -0
  902. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/Changelog.md +444 -0
  903. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/LICENSE.md +23 -0
  904. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/README.md +40 -0
  905. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/caller_filter.rb +85 -0
  906. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/comparable_version.rb +48 -0
  907. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/differ.rb +216 -0
  908. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/directory_maker.rb +65 -0
  909. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/encoded_string.rb +163 -0
  910. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/fuzzy_matcher.rb +53 -0
  911. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/hunk_generator.rb +49 -0
  912. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/matcher_definition.rb +44 -0
  913. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/method_signature_verifier.rb +467 -0
  914. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/mutex.rb +75 -0
  915. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/object_formatter.rb +279 -0
  916. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/recursive_const_methods.rb +78 -0
  917. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/reentrant_mutex.rb +80 -0
  918. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/ruby_features.rb +221 -0
  919. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/source/location.rb +23 -0
  920. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/source/node.rb +112 -0
  921. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/source/token.rb +96 -0
  922. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/source.rb +87 -0
  923. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/spec/deprecation_helpers.rb +50 -0
  924. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/spec/diff_helpers.rb +45 -0
  925. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/spec/formatting_support.rb +11 -0
  926. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/spec/in_sub_process.rb +73 -0
  927. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/spec/library_wide_checks.rb +152 -0
  928. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/spec/shell_out.rb +115 -0
  929. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/spec/stderr_splitter.rb +77 -0
  930. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/spec/string_matcher.rb +47 -0
  931. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/spec/with_isolated_directory.rb +15 -0
  932. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/spec/with_isolated_stderr.rb +15 -0
  933. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/spec.rb +84 -0
  934. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/version.rb +9 -0
  935. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/warnings.rb +41 -0
  936. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/with_keywords_when_needed.rb +35 -0
  937. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support.rb +163 -0
  938. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/CHANGELOG.md +191 -0
  939. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/LICENSE +20 -0
  940. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/README.md +974 -0
  941. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/doc/alternate-formatters.md +71 -0
  942. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/doc/commercial-services.md +25 -0
  943. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/doc/editor-integration.md +18 -0
  944. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/minitest/simplecov_plugin.rb +15 -0
  945. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/combine/branches_combiner.rb +32 -0
  946. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/combine/files_combiner.rb +24 -0
  947. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/combine/lines_combiner.rb +43 -0
  948. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/combine/results_combiner.rb +60 -0
  949. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/combine.rb +30 -0
  950. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/command_guesser.rb +64 -0
  951. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/configuration.rb +500 -0
  952. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/coverage_statistics.rb +56 -0
  953. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/default_formatter.rb +20 -0
  954. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/defaults.rb +53 -0
  955. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/exit_codes/exit_code_handling.rb +29 -0
  956. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/exit_codes/maximum_coverage_drop_check.rb +83 -0
  957. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/exit_codes/minimum_coverage_by_file_check.rb +54 -0
  958. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/exit_codes/minimum_overall_coverage_check.rb +53 -0
  959. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/exit_codes.rb +15 -0
  960. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/file_list.rb +120 -0
  961. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/filter.rb +94 -0
  962. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/formatter/multi_formatter.rb +32 -0
  963. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/formatter/simple_formatter.rb +25 -0
  964. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/formatter.rb +10 -0
  965. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/last_run.rb +28 -0
  966. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/lines_classifier.rb +48 -0
  967. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/load_global_config.rb +8 -0
  968. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/no_defaults.rb +4 -0
  969. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/process.rb +19 -0
  970. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/profiles/bundler_filter.rb +5 -0
  971. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/profiles/hidden_filter.rb +5 -0
  972. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/profiles/rails.rb +18 -0
  973. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/profiles/root_filter.rb +10 -0
  974. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/profiles/test_frameworks.rb +8 -0
  975. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/profiles.rb +35 -0
  976. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/result.rb +94 -0
  977. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/result_adapter.rb +30 -0
  978. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/result_merger.rb +194 -0
  979. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/simulate_coverage.rb +29 -0
  980. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/source_file/branch.rb +84 -0
  981. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/source_file/line.rb +72 -0
  982. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/source_file.rb +355 -0
  983. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/useless_results_remover.rb +18 -0
  984. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/version.rb +5 -0
  985. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov.rb +470 -0
  986. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/.document +5 -0
  987. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/CHANGELOG.md +114 -0
  988. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/LICENSE +20 -0
  989. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/README.md +30 -0
  990. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/Rakefile +55 -0
  991. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/lib/simplecov-html/version.rb +9 -0
  992. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/lib/simplecov-html.rb +165 -0
  993. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/DataTables-1.10.20/images/sort_asc.png +0 -0
  994. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/DataTables-1.10.20/images/sort_asc_disabled.png +0 -0
  995. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/DataTables-1.10.20/images/sort_both.png +0 -0
  996. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/DataTables-1.10.20/images/sort_desc.png +0 -0
  997. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/DataTables-1.10.20/images/sort_desc_disabled.png +0 -0
  998. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/application.css +1 -0
  999. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/application.js +7 -0
  1000. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/colorbox/border.png +0 -0
  1001. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/colorbox/controls.png +0 -0
  1002. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/colorbox/loading.gif +0 -0
  1003. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/colorbox/loading_background.png +0 -0
  1004. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/favicon_green.png +0 -0
  1005. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/favicon_red.png +0 -0
  1006. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/favicon_yellow.png +0 -0
  1007. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  1008. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  1009. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  1010. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  1011. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  1012. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  1013. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  1014. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  1015. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/images/ui-icons_222222_256x240.png +0 -0
  1016. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/images/ui-icons_2e83ff_256x240.png +0 -0
  1017. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/images/ui-icons_454545_256x240.png +0 -0
  1018. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/images/ui-icons_888888_256x240.png +0 -0
  1019. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/images/ui-icons_cd0a0a_256x240.png +0 -0
  1020. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/loading.gif +0 -0
  1021. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/magnify.png +0 -0
  1022. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/views/covered_percent.erb +3 -0
  1023. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/views/file_list.erb +78 -0
  1024. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/views/layout.erb +40 -0
  1025. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/views/source_file.erb +57 -0
  1026. data/vendor/bundle/ruby/3.3.0/gems/simplecov_json_formatter-0.1.4/CHANGELOG.md +13 -0
  1027. data/vendor/bundle/ruby/3.3.0/gems/simplecov_json_formatter-0.1.4/README.md +29 -0
  1028. data/vendor/bundle/ruby/3.3.0/gems/simplecov_json_formatter-0.1.4/lib/simplecov_json_formatter/result_exporter.rb +27 -0
  1029. data/vendor/bundle/ruby/3.3.0/gems/simplecov_json_formatter-0.1.4/lib/simplecov_json_formatter/result_hash_formatter.rb +52 -0
  1030. data/vendor/bundle/ruby/3.3.0/gems/simplecov_json_formatter-0.1.4/lib/simplecov_json_formatter/source_file_formatter.rb +65 -0
  1031. data/vendor/bundle/ruby/3.3.0/gems/simplecov_json_formatter-0.1.4/lib/simplecov_json_formatter/version.rb +5 -0
  1032. data/vendor/bundle/ruby/3.3.0/gems/simplecov_json_formatter-0.1.4/lib/simplecov_json_formatter.rb +36 -0
  1033. data/vendor/bundle/ruby/3.3.0/gems/terraform-synthesizer-0.0.28/.gitignore +9 -0
  1034. data/vendor/bundle/ruby/3.3.0/gems/terraform-synthesizer-0.0.28/.rubocop.yml +53 -0
  1035. data/vendor/bundle/ruby/3.3.0/gems/terraform-synthesizer-0.0.28/.ruby-gemset +1 -0
  1036. data/vendor/bundle/ruby/3.3.0/gems/terraform-synthesizer-0.0.28/.ruby-version +1 -0
  1037. data/vendor/bundle/ruby/3.3.0/gems/terraform-synthesizer-0.0.28/CHANGELOG.md +46 -0
  1038. data/vendor/bundle/ruby/3.3.0/gems/terraform-synthesizer-0.0.28/CONTRIBUTING.md +96 -0
  1039. data/vendor/bundle/ruby/3.3.0/gems/terraform-synthesizer-0.0.28/Gemfile +2 -0
  1040. data/vendor/bundle/ruby/3.3.0/gems/terraform-synthesizer-0.0.28/Gemfile.lock +68 -0
  1041. data/vendor/bundle/ruby/3.3.0/gems/terraform-synthesizer-0.0.28/LICENSE +201 -0
  1042. data/vendor/bundle/ruby/3.3.0/gems/terraform-synthesizer-0.0.28/README.md +777 -0
  1043. data/vendor/bundle/ruby/3.3.0/gems/terraform-synthesizer-0.0.28/Rakefile +10 -0
  1044. data/vendor/bundle/ruby/3.3.0/gems/terraform-synthesizer-0.0.28/examples/README.md +51 -0
  1045. data/vendor/bundle/ruby/3.3.0/gems/terraform-synthesizer-0.0.28/examples/basic_vpc.rb +172 -0
  1046. data/vendor/bundle/ruby/3.3.0/gems/terraform-synthesizer-0.0.28/examples/complete_web_app.rb +626 -0
  1047. data/vendor/bundle/ruby/3.3.0/gems/terraform-synthesizer-0.0.28/examples/kubernetes_microservices.rb +873 -0
  1048. data/vendor/bundle/ruby/3.3.0/gems/terraform-synthesizer-0.0.28/examples/multi_cloud_backup.rb +456 -0
  1049. data/vendor/bundle/ruby/3.3.0/gems/terraform-synthesizer-0.0.28/flake.lock +835 -0
  1050. data/vendor/bundle/ruby/3.3.0/gems/terraform-synthesizer-0.0.28/flake.nix +62 -0
  1051. data/vendor/bundle/ruby/3.3.0/gems/terraform-synthesizer-0.0.28/gemset.nix +250 -0
  1052. data/vendor/bundle/ruby/3.3.0/gems/terraform-synthesizer-0.0.28/lib/terraform-synthesizer/version.rb +3 -0
  1053. data/vendor/bundle/ruby/3.3.0/gems/terraform-synthesizer-0.0.28/lib/terraform-synthesizer.rb +21 -0
  1054. data/vendor/bundle/ruby/3.3.0/gems/terraform-synthesizer-0.0.28/terraform-synthesizer.gemspec +32 -0
  1055. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.5/MIT-LICENSE +20 -0
  1056. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.5/README.md +1477 -0
  1057. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.5/lib/zeitwerk/core_ext/kernel.rb +64 -0
  1058. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.5/lib/zeitwerk/core_ext/module.rb +20 -0
  1059. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.5/lib/zeitwerk/cref/map.rb +159 -0
  1060. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.5/lib/zeitwerk/cref.rb +69 -0
  1061. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.5/lib/zeitwerk/error.rb +23 -0
  1062. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.5/lib/zeitwerk/gem_inflector.rb +17 -0
  1063. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.5/lib/zeitwerk/gem_loader.rb +68 -0
  1064. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.5/lib/zeitwerk/inflector.rb +46 -0
  1065. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.5/lib/zeitwerk/internal.rb +13 -0
  1066. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.5/lib/zeitwerk/loader/callbacks.rb +96 -0
  1067. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.5/lib/zeitwerk/loader/config.rb +357 -0
  1068. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.5/lib/zeitwerk/loader/eager_load.rb +230 -0
  1069. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.5/lib/zeitwerk/loader/file_system.rb +165 -0
  1070. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.5/lib/zeitwerk/loader/helpers.rb +46 -0
  1071. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.5/lib/zeitwerk/loader.rb +643 -0
  1072. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.5/lib/zeitwerk/null_inflector.rb +6 -0
  1073. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.5/lib/zeitwerk/real_mod_name.rb +19 -0
  1074. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.5/lib/zeitwerk/registry/autoloads.rb +38 -0
  1075. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.5/lib/zeitwerk/registry/explicit_namespaces.rb +61 -0
  1076. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.5/lib/zeitwerk/registry/inceptions.rb +31 -0
  1077. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.5/lib/zeitwerk/registry/loaders.rb +33 -0
  1078. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.5/lib/zeitwerk/registry.rb +89 -0
  1079. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.5/lib/zeitwerk/version.rb +6 -0
  1080. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.5/lib/zeitwerk.rb +29 -0
  1081. data/vendor/bundle/ruby/3.3.0/specifications/abstract-synthesizer-0.0.15.gemspec +36 -0
  1082. data/vendor/bundle/ruby/3.3.0/specifications/base64-0.3.0.gemspec +23 -0
  1083. data/vendor/bundle/ruby/3.3.0/specifications/bigdecimal-4.0.1.gemspec +25 -0
  1084. data/vendor/bundle/ruby/3.3.0/specifications/concurrent-ruby-1.3.6.gemspec +24 -0
  1085. data/vendor/bundle/ruby/3.3.0/specifications/diff-lcs-1.6.2.gemspec +46 -0
  1086. data/vendor/bundle/ruby/3.3.0/specifications/docile-1.4.1.gemspec +22 -0
  1087. data/vendor/bundle/ruby/3.3.0/specifications/dry-core-1.2.0.gemspec +44 -0
  1088. data/vendor/bundle/ruby/3.3.0/specifications/dry-inflector-1.3.1.gemspec +38 -0
  1089. data/vendor/bundle/ruby/3.3.0/specifications/dry-logic-1.6.0.gemspec +38 -0
  1090. data/vendor/bundle/ruby/3.3.0/specifications/dry-struct-1.8.0.gemspec +38 -0
  1091. data/vendor/bundle/ruby/3.3.0/specifications/dry-types-1.9.1.gemspec +53 -0
  1092. data/vendor/bundle/ruby/3.3.0/specifications/ice_nine-0.11.2.gemspec +32 -0
  1093. data/vendor/bundle/ruby/3.3.0/specifications/logger-1.7.0.gemspec +22 -0
  1094. data/vendor/bundle/ruby/3.3.0/specifications/rake-13.3.1.gemspec +26 -0
  1095. data/vendor/bundle/ruby/3.3.0/specifications/rspec-3.13.2.gemspec +39 -0
  1096. data/vendor/bundle/ruby/3.3.0/specifications/rspec-core-3.13.6.gemspec +37 -0
  1097. data/vendor/bundle/ruby/3.3.0/specifications/rspec-expectations-3.13.5.gemspec +36 -0
  1098. data/vendor/bundle/ruby/3.3.0/specifications/rspec-mocks-3.13.7.gemspec +36 -0
  1099. data/vendor/bundle/ruby/3.3.0/specifications/rspec-support-3.13.7.gemspec +36 -0
  1100. data/vendor/bundle/ruby/3.3.0/specifications/simplecov-0.22.0.gemspec +36 -0
  1101. data/vendor/bundle/ruby/3.3.0/specifications/simplecov-html-0.13.2.gemspec +22 -0
  1102. data/vendor/bundle/ruby/3.3.0/specifications/simplecov_json_formatter-0.1.4.gemspec +21 -0
  1103. data/vendor/bundle/ruby/3.3.0/specifications/terraform-synthesizer-0.0.28.gemspec +38 -0
  1104. data/vendor/bundle/ruby/3.3.0/specifications/zeitwerk-2.7.5.gemspec +22 -0
  1105. metadata +1094 -10
@@ -0,0 +1,588 @@
1
+ require 'concurrent/configuration'
2
+ require 'concurrent/atomic/atomic_reference'
3
+ require 'concurrent/atomic/count_down_latch'
4
+ require 'concurrent/atomic/thread_local_var'
5
+ require 'concurrent/collection/copy_on_write_observer_set'
6
+ require 'concurrent/concern/observable'
7
+ require 'concurrent/synchronization/lockable_object'
8
+
9
+ module Concurrent
10
+
11
+ # `Agent` is inspired by Clojure's [agent](http://clojure.org/agents)
12
+ # function. An agent is a shared, mutable variable providing independent,
13
+ # uncoordinated, *asynchronous* change of individual values. Best used when
14
+ # the value will undergo frequent, complex updates. Suitable when the result
15
+ # of an update does not need to be known immediately. `Agent` is (mostly)
16
+ # functionally equivalent to Clojure's agent, except where the runtime
17
+ # prevents parity.
18
+ #
19
+ # Agents are reactive, not autonomous - there is no imperative message loop
20
+ # and no blocking receive. The state of an Agent should be itself immutable
21
+ # and the `#value` of an Agent is always immediately available for reading by
22
+ # any thread without any messages, i.e. observation does not require
23
+ # cooperation or coordination.
24
+ #
25
+ # Agent action dispatches are made using the various `#send` methods. These
26
+ # methods always return immediately. At some point later, in another thread,
27
+ # the following will happen:
28
+ #
29
+ # 1. The given `action` will be applied to the state of the Agent and the
30
+ # `args`, if any were supplied.
31
+ # 2. The return value of `action` will be passed to the validator lambda,
32
+ # if one has been set on the Agent.
33
+ # 3. If the validator succeeds or if no validator was given, the return value
34
+ # of the given `action` will become the new `#value` of the Agent. See
35
+ # `#initialize` for details.
36
+ # 4. If any observers were added to the Agent, they will be notified. See
37
+ # `#add_observer` for details.
38
+ # 5. If during the `action` execution any other dispatches are made (directly
39
+ # or indirectly), they will be held until after the `#value` of the Agent
40
+ # has been changed.
41
+ #
42
+ # If any exceptions are thrown by an action function, no nested dispatches
43
+ # will occur, and the exception will be cached in the Agent itself. When an
44
+ # Agent has errors cached, any subsequent interactions will immediately throw
45
+ # an exception, until the agent's errors are cleared. Agent errors can be
46
+ # examined with `#error` and the agent restarted with `#restart`.
47
+ #
48
+ # The actions of all Agents get interleaved amongst threads in a thread pool.
49
+ # At any point in time, at most one action for each Agent is being executed.
50
+ # Actions dispatched to an agent from another single agent or thread will
51
+ # occur in the order they were sent, potentially interleaved with actions
52
+ # dispatched to the same agent from other sources. The `#send` method should
53
+ # be used for actions that are CPU limited, while the `#send_off` method is
54
+ # appropriate for actions that may block on IO.
55
+ #
56
+ # Unlike in Clojure, `Agent` cannot participate in `Concurrent::TVar` transactions.
57
+ #
58
+ # ## Example
59
+ #
60
+ # ```
61
+ # def next_fibonacci(set = nil)
62
+ # return [0, 1] if set.nil?
63
+ # set + [set[-2..-1].reduce{|sum,x| sum + x }]
64
+ # end
65
+ #
66
+ # # create an agent with an initial value
67
+ # agent = Concurrent::Agent.new(next_fibonacci)
68
+ #
69
+ # # send a few update requests
70
+ # 5.times do
71
+ # agent.send{|set| next_fibonacci(set) }
72
+ # end
73
+ #
74
+ # # wait for them to complete
75
+ # agent.await
76
+ #
77
+ # # get the current value
78
+ # agent.value #=> [0, 1, 1, 2, 3, 5, 8]
79
+ # ```
80
+ #
81
+ # ## Observation
82
+ #
83
+ # Agents support observers through the {Concurrent::Observable} mixin module.
84
+ # Notification of observers occurs every time an action dispatch returns and
85
+ # the new value is successfully validated. Observation will *not* occur if the
86
+ # action raises an exception, if validation fails, or when a {#restart} occurs.
87
+ #
88
+ # When notified the observer will receive three arguments: `time`, `old_value`,
89
+ # and `new_value`. The `time` argument is the time at which the value change
90
+ # occurred. The `old_value` is the value of the Agent when the action began
91
+ # processing. The `new_value` is the value to which the Agent was set when the
92
+ # action completed. Note that `old_value` and `new_value` may be the same.
93
+ # This is not an error. It simply means that the action returned the same
94
+ # value.
95
+ #
96
+ # ## Nested Actions
97
+ #
98
+ # It is possible for an Agent action to post further actions back to itself.
99
+ # The nested actions will be enqueued normally then processed *after* the
100
+ # outer action completes, in the order they were sent, possibly interleaved
101
+ # with action dispatches from other threads. Nested actions never deadlock
102
+ # with one another and a failure in a nested action will never affect the
103
+ # outer action.
104
+ #
105
+ # Nested actions can be called using the Agent reference from the enclosing
106
+ # scope or by passing the reference in as a "send" argument. Nested actions
107
+ # cannot be post using `self` from within the action block/proc/lambda; `self`
108
+ # in this context will not reference the Agent. The preferred method for
109
+ # dispatching nested actions is to pass the Agent as an argument. This allows
110
+ # Ruby to more effectively manage the closing scope.
111
+ #
112
+ # Prefer this:
113
+ #
114
+ # ```
115
+ # agent = Concurrent::Agent.new(0)
116
+ # agent.send(agent) do |value, this|
117
+ # this.send {|v| v + 42 }
118
+ # 3.14
119
+ # end
120
+ # agent.value #=> 45.14
121
+ # ```
122
+ #
123
+ # Over this:
124
+ #
125
+ # ```
126
+ # agent = Concurrent::Agent.new(0)
127
+ # agent.send do |value|
128
+ # agent.send {|v| v + 42 }
129
+ # 3.14
130
+ # end
131
+ # ```
132
+ #
133
+ # @!macro agent_await_warning
134
+ #
135
+ # **NOTE** Never, *under any circumstances*, call any of the "await" methods
136
+ # ({#await}, {#await_for}, {#await_for!}, and {#wait}) from within an action
137
+ # block/proc/lambda. The call will block the Agent and will always fail.
138
+ # Calling either {#await} or {#wait} (with a timeout of `nil`) will
139
+ # hopelessly deadlock the Agent with no possibility of recovery.
140
+ #
141
+ # @!macro thread_safe_variable_comparison
142
+ #
143
+ # @see http://clojure.org/Agents Clojure Agents
144
+ # @see http://clojure.org/state Values and Change - Clojure's approach to Identity and State
145
+ class Agent < Synchronization::LockableObject
146
+ include Concern::Observable
147
+
148
+ ERROR_MODES = [:continue, :fail].freeze
149
+ private_constant :ERROR_MODES
150
+
151
+ AWAIT_FLAG = ::Object.new
152
+ private_constant :AWAIT_FLAG
153
+
154
+ AWAIT_ACTION = ->(value, latch) { latch.count_down; AWAIT_FLAG }
155
+ private_constant :AWAIT_ACTION
156
+
157
+ DEFAULT_ERROR_HANDLER = ->(agent, error) { nil }
158
+ private_constant :DEFAULT_ERROR_HANDLER
159
+
160
+ DEFAULT_VALIDATOR = ->(value) { true }
161
+ private_constant :DEFAULT_VALIDATOR
162
+
163
+ Job = Struct.new(:action, :args, :executor, :caller)
164
+ private_constant :Job
165
+
166
+ # Raised during action processing or any other time in an Agent's lifecycle.
167
+ class Error < StandardError
168
+ def initialize(message = nil)
169
+ message ||= 'agent must be restarted before jobs can post'
170
+ super(message)
171
+ end
172
+ end
173
+
174
+ # Raised when a new value obtained during action processing or at `#restart`
175
+ # fails validation.
176
+ class ValidationError < Error
177
+ def initialize(message = nil)
178
+ message ||= 'invalid value'
179
+ super(message)
180
+ end
181
+ end
182
+
183
+ # The error mode this Agent is operating in. See {#initialize} for details.
184
+ attr_reader :error_mode
185
+
186
+ # Create a new `Agent` with the given initial value and options.
187
+ #
188
+ # The `:validator` option must be `nil` or a side-effect free proc/lambda
189
+ # which takes one argument. On any intended value change the validator, if
190
+ # provided, will be called. If the new value is invalid the validator should
191
+ # return `false` or raise an error.
192
+ #
193
+ # The `:error_handler` option must be `nil` or a proc/lambda which takes two
194
+ # arguments. When an action raises an error or validation fails, either by
195
+ # returning false or raising an error, the error handler will be called. The
196
+ # arguments to the error handler will be a reference to the agent itself and
197
+ # the error object which was raised.
198
+ #
199
+ # The `:error_mode` may be either `:continue` (the default if an error
200
+ # handler is given) or `:fail` (the default if error handler nil or not
201
+ # given).
202
+ #
203
+ # If an action being run by the agent throws an error or doesn't pass
204
+ # validation the error handler, if present, will be called. After the
205
+ # handler executes if the error mode is `:continue` the Agent will continue
206
+ # as if neither the action that caused the error nor the error itself ever
207
+ # happened.
208
+ #
209
+ # If the mode is `:fail` the Agent will become {#failed?} and will stop
210
+ # accepting new action dispatches. Any previously queued actions will be
211
+ # held until {#restart} is called. The {#value} method will still work,
212
+ # returning the value of the Agent before the error.
213
+ #
214
+ # @param [Object] initial the initial value
215
+ # @param [Hash] opts the configuration options
216
+ #
217
+ # @option opts [Symbol] :error_mode either `:continue` or `:fail`
218
+ # @option opts [nil, Proc] :error_handler the (optional) error handler
219
+ # @option opts [nil, Proc] :validator the (optional) validation procedure
220
+ def initialize(initial, opts = {})
221
+ super()
222
+ synchronize { ns_initialize(initial, opts) }
223
+ end
224
+
225
+ # The current value (state) of the Agent, irrespective of any pending or
226
+ # in-progress actions. The value is always available and is non-blocking.
227
+ #
228
+ # @return [Object] the current value
229
+ def value
230
+ @current.value # TODO (pitr 12-Sep-2015): broken unsafe read?
231
+ end
232
+
233
+ alias_method :deref, :value
234
+
235
+ # When {#failed?} and {#error_mode} is `:fail`, returns the error object
236
+ # which caused the failure, else `nil`. When {#error_mode} is `:continue`
237
+ # will *always* return `nil`.
238
+ #
239
+ # @return [nil, Error] the error which caused the failure when {#failed?}
240
+ def error
241
+ @error.value
242
+ end
243
+
244
+ alias_method :reason, :error
245
+
246
+ # @!macro agent_send
247
+ #
248
+ # Dispatches an action to the Agent and returns immediately. Subsequently,
249
+ # in a thread from a thread pool, the {#value} will be set to the return
250
+ # value of the action. Action dispatches are only allowed when the Agent
251
+ # is not {#failed?}.
252
+ #
253
+ # The action must be a block/proc/lambda which takes 1 or more arguments.
254
+ # The first argument is the current {#value} of the Agent. Any arguments
255
+ # passed to the send method via the `args` parameter will be passed to the
256
+ # action as the remaining arguments. The action must return the new value
257
+ # of the Agent.
258
+ #
259
+ # * {#send} and {#send!} should be used for actions that are CPU limited
260
+ # * {#send_off}, {#send_off!}, and {#<<} are appropriate for actions that
261
+ # may block on IO
262
+ # * {#send_via} and {#send_via!} are used when a specific executor is to
263
+ # be used for the action
264
+ #
265
+ # @param [Array<Object>] args zero or more arguments to be passed to
266
+ # the action
267
+ # @param [Proc] action the action dispatch to be enqueued
268
+ #
269
+ # @yield [agent, value, *args] process the old value and return the new
270
+ # @yieldparam [Object] value the current {#value} of the Agent
271
+ # @yieldparam [Array<Object>] args zero or more arguments to pass to the
272
+ # action
273
+ # @yieldreturn [Object] the new value of the Agent
274
+ #
275
+ # @!macro send_return
276
+ # @return [Boolean] true if the action is successfully enqueued, false if
277
+ # the Agent is {#failed?}
278
+ def send(*args, &action)
279
+ enqueue_action_job(action, args, Concurrent.global_fast_executor)
280
+ end
281
+
282
+ # @!macro agent_send
283
+ #
284
+ # @!macro send_bang_return_and_raise
285
+ # @return [Boolean] true if the action is successfully enqueued
286
+ # @raise [Concurrent::Agent::Error] if the Agent is {#failed?}
287
+ def send!(*args, &action)
288
+ raise Error.new unless send(*args, &action)
289
+ true
290
+ end
291
+
292
+ # @!macro agent_send
293
+ # @!macro send_return
294
+ def send_off(*args, &action)
295
+ enqueue_action_job(action, args, Concurrent.global_io_executor)
296
+ end
297
+
298
+ alias_method :post, :send_off
299
+
300
+ # @!macro agent_send
301
+ # @!macro send_bang_return_and_raise
302
+ def send_off!(*args, &action)
303
+ raise Error.new unless send_off(*args, &action)
304
+ true
305
+ end
306
+
307
+ # @!macro agent_send
308
+ # @!macro send_return
309
+ # @param [Concurrent::ExecutorService] executor the executor on which the
310
+ # action is to be dispatched
311
+ def send_via(executor, *args, &action)
312
+ enqueue_action_job(action, args, executor)
313
+ end
314
+
315
+ # @!macro agent_send
316
+ # @!macro send_bang_return_and_raise
317
+ # @param [Concurrent::ExecutorService] executor the executor on which the
318
+ # action is to be dispatched
319
+ def send_via!(executor, *args, &action)
320
+ raise Error.new unless send_via(executor, *args, &action)
321
+ true
322
+ end
323
+
324
+ # Dispatches an action to the Agent and returns immediately. Subsequently,
325
+ # in a thread from a thread pool, the {#value} will be set to the return
326
+ # value of the action. Appropriate for actions that may block on IO.
327
+ #
328
+ # @param [Proc] action the action dispatch to be enqueued
329
+ # @return [Concurrent::Agent] self
330
+ # @see #send_off
331
+ def <<(action)
332
+ send_off(&action)
333
+ self
334
+ end
335
+
336
+ # Blocks the current thread (indefinitely!) until all actions dispatched
337
+ # thus far, from this thread or nested by the Agent, have occurred. Will
338
+ # block when {#failed?}. Will never return if a failed Agent is {#restart}
339
+ # with `:clear_actions` true.
340
+ #
341
+ # Returns a reference to `self` to support method chaining:
342
+ #
343
+ # ```
344
+ # current_value = agent.await.value
345
+ # ```
346
+ #
347
+ # @return [Boolean] self
348
+ #
349
+ # @!macro agent_await_warning
350
+ def await
351
+ wait(nil)
352
+ self
353
+ end
354
+
355
+ # Blocks the current thread until all actions dispatched thus far, from this
356
+ # thread or nested by the Agent, have occurred, or the timeout (in seconds)
357
+ # has elapsed.
358
+ #
359
+ # @param [Float] timeout the maximum number of seconds to wait
360
+ # @return [Boolean] true if all actions complete before timeout else false
361
+ #
362
+ # @!macro agent_await_warning
363
+ def await_for(timeout)
364
+ wait(timeout.to_f)
365
+ end
366
+
367
+ # Blocks the current thread until all actions dispatched thus far, from this
368
+ # thread or nested by the Agent, have occurred, or the timeout (in seconds)
369
+ # has elapsed.
370
+ #
371
+ # @param [Float] timeout the maximum number of seconds to wait
372
+ # @return [Boolean] true if all actions complete before timeout
373
+ #
374
+ # @raise [Concurrent::TimeoutError] when timeout is reached
375
+ #
376
+ # @!macro agent_await_warning
377
+ def await_for!(timeout)
378
+ raise Concurrent::TimeoutError unless wait(timeout.to_f)
379
+ true
380
+ end
381
+
382
+ # Blocks the current thread until all actions dispatched thus far, from this
383
+ # thread or nested by the Agent, have occurred, or the timeout (in seconds)
384
+ # has elapsed. Will block indefinitely when timeout is nil or not given.
385
+ #
386
+ # Provided mainly for consistency with other classes in this library. Prefer
387
+ # the various `await` methods instead.
388
+ #
389
+ # @param [Float] timeout the maximum number of seconds to wait
390
+ # @return [Boolean] true if all actions complete before timeout else false
391
+ #
392
+ # @!macro agent_await_warning
393
+ def wait(timeout = nil)
394
+ latch = Concurrent::CountDownLatch.new(1)
395
+ enqueue_await_job(latch)
396
+ latch.wait(timeout)
397
+ end
398
+
399
+ # Is the Agent in a failed state?
400
+ #
401
+ # @see #restart
402
+ def failed?
403
+ !@error.value.nil?
404
+ end
405
+
406
+ alias_method :stopped?, :failed?
407
+
408
+ # When an Agent is {#failed?}, changes the Agent {#value} to `new_value`
409
+ # then un-fails the Agent so that action dispatches are allowed again. If
410
+ # the `:clear_actions` option is give and true, any actions queued on the
411
+ # Agent that were being held while it was failed will be discarded,
412
+ # otherwise those held actions will proceed. The `new_value` must pass the
413
+ # validator if any, or `restart` will raise an exception and the Agent will
414
+ # remain failed with its old {#value} and {#error}. Observers, if any, will
415
+ # not be notified of the new state.
416
+ #
417
+ # @param [Object] new_value the new value for the Agent once restarted
418
+ # @param [Hash] opts the configuration options
419
+ # @option opts [Symbol] :clear_actions true if all enqueued but unprocessed
420
+ # actions should be discarded on restart, else false (default: false)
421
+ # @return [Boolean] true
422
+ #
423
+ # @raise [Concurrent:AgentError] when not failed
424
+ def restart(new_value, opts = {})
425
+ clear_actions = opts.fetch(:clear_actions, false)
426
+ synchronize do
427
+ raise Error.new('agent is not failed') unless failed?
428
+ raise ValidationError unless ns_validate(new_value)
429
+ @current.value = new_value
430
+ @error.value = nil
431
+ @queue.clear if clear_actions
432
+ ns_post_next_job unless @queue.empty?
433
+ end
434
+ true
435
+ end
436
+
437
+ class << self
438
+
439
+ # Blocks the current thread (indefinitely!) until all actions dispatched
440
+ # thus far to all the given Agents, from this thread or nested by the
441
+ # given Agents, have occurred. Will block when any of the agents are
442
+ # failed. Will never return if a failed Agent is restart with
443
+ # `:clear_actions` true.
444
+ #
445
+ # @param [Array<Concurrent::Agent>] agents the Agents on which to wait
446
+ # @return [Boolean] true
447
+ #
448
+ # @!macro agent_await_warning
449
+ def await(*agents)
450
+ agents.each { |agent| agent.await }
451
+ true
452
+ end
453
+
454
+ # Blocks the current thread until all actions dispatched thus far to all
455
+ # the given Agents, from this thread or nested by the given Agents, have
456
+ # occurred, or the timeout (in seconds) has elapsed.
457
+ #
458
+ # @param [Float] timeout the maximum number of seconds to wait
459
+ # @param [Array<Concurrent::Agent>] agents the Agents on which to wait
460
+ # @return [Boolean] true if all actions complete before timeout else false
461
+ #
462
+ # @!macro agent_await_warning
463
+ def await_for(timeout, *agents)
464
+ end_at = Concurrent.monotonic_time + timeout.to_f
465
+ ok = agents.length.times do |i|
466
+ break false if (delay = end_at - Concurrent.monotonic_time) < 0
467
+ break false unless agents[i].await_for(delay)
468
+ end
469
+ !!ok
470
+ end
471
+
472
+ # Blocks the current thread until all actions dispatched thus far to all
473
+ # the given Agents, from this thread or nested by the given Agents, have
474
+ # occurred, or the timeout (in seconds) has elapsed.
475
+ #
476
+ # @param [Float] timeout the maximum number of seconds to wait
477
+ # @param [Array<Concurrent::Agent>] agents the Agents on which to wait
478
+ # @return [Boolean] true if all actions complete before timeout
479
+ #
480
+ # @raise [Concurrent::TimeoutError] when timeout is reached
481
+ # @!macro agent_await_warning
482
+ def await_for!(timeout, *agents)
483
+ raise Concurrent::TimeoutError unless await_for(timeout, *agents)
484
+ true
485
+ end
486
+ end
487
+
488
+ private
489
+
490
+ def ns_initialize(initial, opts)
491
+ @error_mode = opts[:error_mode]
492
+ @error_handler = opts[:error_handler]
493
+
494
+ if @error_mode && !ERROR_MODES.include?(@error_mode)
495
+ raise ArgumentError.new('unrecognized error mode')
496
+ elsif @error_mode.nil?
497
+ @error_mode = @error_handler ? :continue : :fail
498
+ end
499
+
500
+ @error_handler ||= DEFAULT_ERROR_HANDLER
501
+ @validator = opts.fetch(:validator, DEFAULT_VALIDATOR)
502
+ @current = Concurrent::AtomicReference.new(initial)
503
+ @error = Concurrent::AtomicReference.new(nil)
504
+ @caller = Concurrent::ThreadLocalVar.new(nil)
505
+ @queue = []
506
+
507
+ self.observers = Collection::CopyOnNotifyObserverSet.new
508
+ end
509
+
510
+ def enqueue_action_job(action, args, executor)
511
+ raise ArgumentError.new('no action given') unless action
512
+ job = Job.new(action, args, executor, @caller.value || Thread.current.object_id)
513
+ synchronize { ns_enqueue_job(job) }
514
+ end
515
+
516
+ def enqueue_await_job(latch)
517
+ synchronize do
518
+ if (index = ns_find_last_job_for_thread)
519
+ job = Job.new(AWAIT_ACTION, [latch], Concurrent.global_immediate_executor,
520
+ Thread.current.object_id)
521
+ ns_enqueue_job(job, index+1)
522
+ else
523
+ latch.count_down
524
+ true
525
+ end
526
+ end
527
+ end
528
+
529
+ def ns_enqueue_job(job, index = nil)
530
+ # a non-nil index means this is an await job
531
+ return false if index.nil? && failed?
532
+ index ||= @queue.length
533
+ @queue.insert(index, job)
534
+ # if this is the only job, post to executor
535
+ ns_post_next_job if @queue.length == 1
536
+ true
537
+ end
538
+
539
+ def ns_post_next_job
540
+ @queue.first.executor.post { execute_next_job }
541
+ end
542
+
543
+ def execute_next_job
544
+ job = synchronize { @queue.first }
545
+ old_value = @current.value
546
+
547
+ @caller.value = job.caller # for nested actions
548
+ new_value = job.action.call(old_value, *job.args)
549
+ @caller.value = nil
550
+
551
+ return if new_value == AWAIT_FLAG
552
+
553
+ if ns_validate(new_value)
554
+ @current.value = new_value
555
+ observers.notify_observers(Time.now, old_value, new_value)
556
+ else
557
+ handle_error(ValidationError.new)
558
+ end
559
+ rescue => error
560
+ handle_error(error)
561
+ ensure
562
+ synchronize do
563
+ @queue.shift
564
+ unless failed? || @queue.empty?
565
+ ns_post_next_job
566
+ end
567
+ end
568
+ end
569
+
570
+ def ns_validate(value)
571
+ @validator.call(value)
572
+ rescue
573
+ false
574
+ end
575
+
576
+ def handle_error(error)
577
+ # stop new jobs from posting
578
+ @error.value = error if @error_mode == :fail
579
+ @error_handler.call(self, error)
580
+ rescue
581
+ # do nothing
582
+ end
583
+
584
+ def ns_find_last_job_for_thread
585
+ @queue.rindex { |job| job.caller == Thread.current.object_id }
586
+ end
587
+ end
588
+ end
@@ -0,0 +1,56 @@
1
+ require 'concurrent/utility/engine'
2
+ require 'concurrent/thread_safe/util'
3
+
4
+ module Concurrent
5
+
6
+ # @!macro concurrent_array
7
+ #
8
+ # A thread-safe subclass of Array. This version locks against the object
9
+ # itself for every method call, ensuring only one thread can be reading
10
+ # or writing at a time. This includes iteration methods like `#each`.
11
+ #
12
+ # @note `a += b` is **not** a **thread-safe** operation on
13
+ # `Concurrent::Array`. It reads array `a`, then it creates new `Concurrent::Array`
14
+ # which is concatenation of `a` and `b`, then it writes the concatenation to `a`.
15
+ # The read and write are independent operations they do not form a single atomic
16
+ # operation therefore when two `+=` operations are executed concurrently updates
17
+ # may be lost. Use `#concat` instead.
18
+ #
19
+ # @see http://ruby-doc.org/core/Array.html Ruby standard library `Array`
20
+
21
+ # @!macro internal_implementation_note
22
+ ArrayImplementation = case
23
+ when Concurrent.on_cruby?
24
+ # Array is not fully thread-safe on CRuby, see
25
+ # https://github.com/ruby-concurrency/concurrent-ruby/issues/929
26
+ # So we will need to add synchronization here
27
+ ::Array
28
+
29
+ when Concurrent.on_jruby?
30
+ require 'jruby/synchronized'
31
+
32
+ class JRubyArray < ::Array
33
+ include JRuby::Synchronized
34
+ end
35
+ JRubyArray
36
+
37
+ when Concurrent.on_truffleruby?
38
+ require 'concurrent/thread_safe/util/data_structures'
39
+
40
+ class TruffleRubyArray < ::Array
41
+ end
42
+
43
+ ThreadSafe::Util.make_synchronized_on_truffleruby TruffleRubyArray
44
+ TruffleRubyArray
45
+
46
+ else
47
+ warn 'Possibly unsupported Ruby implementation'
48
+ ::Array
49
+ end
50
+ private_constant :ArrayImplementation
51
+
52
+ # @!macro concurrent_array
53
+ class Array < ArrayImplementation
54
+ end
55
+
56
+ end