pangea-core 0.1.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 (1124) 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 +12 -42
  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/component_registry.rb +44 -0
  29. data/lib/pangea/components/base.rb +73 -0
  30. data/lib/pangea/contracts/architecture_result.rb +106 -0
  31. data/lib/pangea/contracts/cluster_result.rb +94 -0
  32. data/lib/pangea/contracts/errors.rb +21 -0
  33. data/lib/pangea/contracts/iam_result.rb +73 -0
  34. data/lib/pangea/contracts/network_result.rb +140 -0
  35. data/lib/pangea/contracts/security_group_accessor.rb +28 -0
  36. data/lib/pangea/contracts.rb +26 -0
  37. data/lib/pangea/entities/module_definition.rb +120 -0
  38. data/lib/pangea/entities/namespace.rb +144 -0
  39. data/lib/pangea/entities/project.rb +84 -0
  40. data/lib/pangea/entities/template.rb +103 -0
  41. data/lib/pangea/entities.rb +26 -0
  42. data/lib/pangea/errors.rb +124 -0
  43. data/lib/pangea/logging/formatters.rb +90 -0
  44. data/lib/pangea/logging/structured_logger.rb +186 -0
  45. data/lib/pangea/logging.rb +22 -0
  46. data/lib/pangea/magma/chain.rb +199 -0
  47. data/lib/pangea/magma/distribution.rb +107 -0
  48. data/lib/pangea/magma/matchers.rb +176 -0
  49. data/lib/pangea/magma/migration.rb +195 -0
  50. data/lib/pangea/magma/optimization.rb +88 -0
  51. data/lib/pangea/magma/orchestrator.rb +96 -0
  52. data/lib/pangea/magma/runner.rb +99 -0
  53. data/lib/pangea/magma/stack.rb +159 -0
  54. data/lib/pangea/magma/test_support.rb +177 -0
  55. data/lib/pangea/magma/workspace.rb +127 -0
  56. data/lib/pangea/magma.rb +156 -0
  57. data/lib/pangea/outputs.rb +91 -0
  58. data/lib/pangea/presets.rb +67 -0
  59. data/lib/pangea/provider_contract.rb +61 -0
  60. data/lib/pangea/remote_state.rb +175 -0
  61. data/lib/pangea/resource_registry.rb +24 -15
  62. data/lib/pangea/resources/base_attributes.rb +24 -1
  63. data/lib/pangea/resources/builders/output_builder.rb +113 -0
  64. data/lib/pangea/resources/reference.rb +9 -4
  65. data/lib/pangea/resources/reference_generator.rb +32 -0
  66. data/lib/pangea/resources/resource_builder.rb +144 -0
  67. data/lib/pangea/resources/resource_input.rb +149 -0
  68. data/lib/pangea/resources/types/coercions.rb +43 -0
  69. data/lib/pangea/resources/types/core.rb +23 -0
  70. data/lib/pangea/resources/types/index.rb +3 -0
  71. data/lib/pangea/resources/validators/common.rb +41 -0
  72. data/lib/pangea/resources/validators/format_validators.rb +58 -0
  73. data/lib/pangea/resources/validators/network_validators.rb +81 -0
  74. data/lib/pangea/secrets.rb +136 -0
  75. data/lib/pangea/tagging/fingerprint.rb +116 -0
  76. data/lib/pangea/tagging/policy.rb +92 -0
  77. data/lib/pangea/tagging/tag_adapter.rb +84 -0
  78. data/lib/pangea/tagging/tag_set.rb +201 -0
  79. data/lib/pangea/tagging.rb +6 -0
  80. data/lib/pangea/testing/architecture_spec_generator.rb +237 -0
  81. data/lib/pangea/testing/assertions.rb +51 -0
  82. data/lib/pangea/testing/indifferent_hash.rb +69 -0
  83. data/lib/pangea/testing/mock_resource_reference.rb +70 -0
  84. data/lib/pangea/testing/mock_terraform_synthesizer.rb +75 -0
  85. data/lib/pangea/testing/resource_examples.rb +53 -0
  86. data/lib/pangea/testing/spec_generator.rb +176 -0
  87. data/lib/pangea/testing/spec_setup.rb +61 -0
  88. data/lib/pangea/testing/synthesis_test_helpers.rb +171 -0
  89. data/lib/pangea/testing/type_purity.rb +132 -0
  90. data/lib/pangea/testing.rb +25 -0
  91. data/lib/pangea/types/base_types.rb +53 -0
  92. data/lib/pangea/types/domain_types.rb +114 -0
  93. data/lib/pangea/types/registry.rb +70 -0
  94. data/lib/pangea/validation.rb +137 -0
  95. data/lib/pangea-core/version.rb +1 -1
  96. data/lib/pangea-core.rb +57 -1
  97. data/pangea-core.gemspec +4 -2
  98. data/vendor/bundle/ruby/3.3.0/bin/htmldiff +29 -0
  99. data/vendor/bundle/ruby/3.3.0/bin/ldiff +29 -0
  100. data/vendor/bundle/ruby/3.3.0/bin/pangea +29 -0
  101. data/vendor/bundle/ruby/3.3.0/bin/rake +29 -0
  102. data/vendor/bundle/ruby/3.3.0/bin/rspec +29 -0
  103. data/vendor/bundle/ruby/3.3.0/extensions/arm64-darwin-25/3.3.0/bigdecimal-4.0.1/bigdecimal.bundle +0 -0
  104. data/vendor/bundle/ruby/3.3.0/extensions/arm64-darwin-25/3.3.0/bigdecimal-4.0.1/gem.build_complete +0 -0
  105. data/vendor/bundle/ruby/3.3.0/extensions/arm64-darwin-25/3.3.0/bigdecimal-4.0.1/gem_make.out +33 -0
  106. data/vendor/bundle/ruby/3.3.0/extensions/arm64-darwin-25/3.3.0/bigdecimal-4.0.1/mkmf.log +453 -0
  107. data/vendor/bundle/ruby/3.3.0/gems/abstract-synthesizer-0.0.15/.gitignore +17 -0
  108. data/vendor/bundle/ruby/3.3.0/gems/abstract-synthesizer-0.0.15/.nix_shell_env.sh +2134 -0
  109. data/vendor/bundle/ruby/3.3.0/gems/abstract-synthesizer-0.0.15/.rubocop.yml +54 -0
  110. data/vendor/bundle/ruby/3.3.0/gems/abstract-synthesizer-0.0.15/CHANGELOG.md +40 -0
  111. data/vendor/bundle/ruby/3.3.0/gems/abstract-synthesizer-0.0.15/CONTRIBUTING.md +114 -0
  112. data/vendor/bundle/ruby/3.3.0/gems/abstract-synthesizer-0.0.15/Gemfile +2 -0
  113. data/vendor/bundle/ruby/3.3.0/gems/abstract-synthesizer-0.0.15/Gemfile.lock +66 -0
  114. data/vendor/bundle/ruby/3.3.0/gems/abstract-synthesizer-0.0.15/LICENSE +21 -0
  115. data/vendor/bundle/ruby/3.3.0/gems/abstract-synthesizer-0.0.15/README.md +621 -0
  116. data/vendor/bundle/ruby/3.3.0/gems/abstract-synthesizer-0.0.15/Rakefile +11 -0
  117. data/vendor/bundle/ruby/3.3.0/gems/abstract-synthesizer-0.0.15/abstract-synthesizer.gemspec +28 -0
  118. data/vendor/bundle/ruby/3.3.0/gems/abstract-synthesizer-0.0.15/docs/overview.md +69 -0
  119. data/vendor/bundle/ruby/3.3.0/gems/abstract-synthesizer-0.0.15/docs/usage.md +468 -0
  120. data/vendor/bundle/ruby/3.3.0/gems/abstract-synthesizer-0.0.15/examples/README.md +230 -0
  121. data/vendor/bundle/ruby/3.3.0/gems/abstract-synthesizer-0.0.15/examples/api/rest_api_dsl.rb +269 -0
  122. data/vendor/bundle/ruby/3.3.0/gems/abstract-synthesizer-0.0.15/examples/build_system/ci_cd_pipeline.rb +443 -0
  123. data/vendor/bundle/ruby/3.3.0/gems/abstract-synthesizer-0.0.15/examples/configuration_management/app_config_dsl.rb +437 -0
  124. data/vendor/bundle/ruby/3.3.0/gems/abstract-synthesizer-0.0.15/examples/infrastructure/kubernetes_deployment.rb +152 -0
  125. data/vendor/bundle/ruby/3.3.0/gems/abstract-synthesizer-0.0.15/flake.lock +835 -0
  126. data/vendor/bundle/ruby/3.3.0/gems/abstract-synthesizer-0.0.15/flake.nix +62 -0
  127. data/vendor/bundle/ruby/3.3.0/gems/abstract-synthesizer-0.0.15/gemset.nix +239 -0
  128. data/vendor/bundle/ruby/3.3.0/gems/abstract-synthesizer-0.0.15/lib/abstract-synthesizer/errors/invalid_synthesizer_key_error.rb +3 -0
  129. data/vendor/bundle/ruby/3.3.0/gems/abstract-synthesizer-0.0.15/lib/abstract-synthesizer/errors/too_many_field_values.rb +1 -0
  130. data/vendor/bundle/ruby/3.3.0/gems/abstract-synthesizer-0.0.15/lib/abstract-synthesizer/primitives/bury.rb +21 -0
  131. data/vendor/bundle/ruby/3.3.0/gems/abstract-synthesizer-0.0.15/lib/abstract-synthesizer/version.rb +3 -0
  132. data/vendor/bundle/ruby/3.3.0/gems/abstract-synthesizer-0.0.15/lib/abstract-synthesizer.rb +121 -0
  133. data/vendor/bundle/ruby/3.3.0/gems/base64-0.3.0/BSDL +22 -0
  134. data/vendor/bundle/ruby/3.3.0/gems/base64-0.3.0/COPYING +56 -0
  135. data/vendor/bundle/ruby/3.3.0/gems/base64-0.3.0/LEGAL +60 -0
  136. data/vendor/bundle/ruby/3.3.0/gems/base64-0.3.0/README.md +48 -0
  137. data/vendor/bundle/ruby/3.3.0/gems/base64-0.3.0/lib/base64.rb +381 -0
  138. data/vendor/bundle/ruby/3.3.0/gems/base64-0.3.0/sig/base64.rbs +355 -0
  139. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-4.0.1/LICENSE +56 -0
  140. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-4.0.1/bigdecimal.gemspec +57 -0
  141. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-4.0.1/ext/bigdecimal/.sitearchdir.time +0 -0
  142. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-4.0.1/ext/bigdecimal/Makefile +271 -0
  143. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-4.0.1/ext/bigdecimal/bigdecimal.bundle +0 -0
  144. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-4.0.1/ext/bigdecimal/bigdecimal.c +6206 -0
  145. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-4.0.1/ext/bigdecimal/bigdecimal.h +292 -0
  146. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-4.0.1/ext/bigdecimal/bigdecimal.o +0 -0
  147. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-4.0.1/ext/bigdecimal/bits.h +144 -0
  148. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-4.0.1/ext/bigdecimal/extconf.rb +60 -0
  149. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-4.0.1/ext/bigdecimal/feature.h +68 -0
  150. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-4.0.1/ext/bigdecimal/missing/dtoa.c +3462 -0
  151. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-4.0.1/ext/bigdecimal/missing.c +28 -0
  152. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-4.0.1/ext/bigdecimal/missing.h +104 -0
  153. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-4.0.1/ext/bigdecimal/missing.o +0 -0
  154. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-4.0.1/ext/bigdecimal/static_assert.h +54 -0
  155. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-4.0.1/lib/bigdecimal/jacobian.rb +92 -0
  156. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-4.0.1/lib/bigdecimal/ludcmp.rb +91 -0
  157. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-4.0.1/lib/bigdecimal/math.rb +948 -0
  158. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-4.0.1/lib/bigdecimal/newton.rb +82 -0
  159. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-4.0.1/lib/bigdecimal/util.rb +186 -0
  160. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-4.0.1/lib/bigdecimal.bundle +0 -0
  161. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-4.0.1/lib/bigdecimal.rb +360 -0
  162. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-4.0.1/sample/linear.rb +74 -0
  163. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-4.0.1/sample/nlsolve.rb +40 -0
  164. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-4.0.1/sample/pi.rb +21 -0
  165. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/CHANGELOG.md +609 -0
  166. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/Gemfile +36 -0
  167. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/LICENSE.txt +21 -0
  168. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/README.md +409 -0
  169. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/Rakefile +344 -0
  170. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/ext/concurrent-ruby/ConcurrentRubyService.java +17 -0
  171. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/ext/concurrent-ruby/com/concurrent_ruby/ext/AtomicReferenceLibrary.java +175 -0
  172. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/ext/concurrent-ruby/com/concurrent_ruby/ext/JRubyMapBackendLibrary.java +248 -0
  173. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/ext/concurrent-ruby/com/concurrent_ruby/ext/JavaAtomicBooleanLibrary.java +93 -0
  174. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/ext/concurrent-ruby/com/concurrent_ruby/ext/JavaAtomicFixnumLibrary.java +113 -0
  175. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/ext/concurrent-ruby/com/concurrent_ruby/ext/JavaSemaphoreLibrary.java +189 -0
  176. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/ext/concurrent-ruby/com/concurrent_ruby/ext/SynchronizationLibrary.java +292 -0
  177. 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
  178. 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
  179. 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
  180. 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
  181. 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
  182. 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
  183. 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
  184. 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
  185. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/agent.rb +588 -0
  186. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/array.rb +56 -0
  187. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/async.rb +449 -0
  188. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/atom.rb +222 -0
  189. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/atomic/atomic_boolean.rb +127 -0
  190. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/atomic/atomic_fixnum.rb +144 -0
  191. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/atomic/atomic_markable_reference.rb +167 -0
  192. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/atomic/atomic_reference.rb +135 -0
  193. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/atomic/count_down_latch.rb +100 -0
  194. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/atomic/cyclic_barrier.rb +128 -0
  195. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/atomic/event.rb +109 -0
  196. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/atomic/fiber_local_var.rb +109 -0
  197. 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
  198. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/atomic/locals.rb +189 -0
  199. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/atomic/lock_local_var.rb +29 -0
  200. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/atomic/mutex_atomic_boolean.rb +68 -0
  201. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/atomic/mutex_atomic_fixnum.rb +81 -0
  202. 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
  203. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/atomic/mutex_semaphore.rb +131 -0
  204. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/atomic/read_write_lock.rb +255 -0
  205. 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
  206. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/atomic/semaphore.rb +163 -0
  207. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/atomic/thread_local_var.rb +111 -0
  208. 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
  209. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/atomic_reference/mutex_atomic.rb +67 -0
  210. 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
  211. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/atomics.rb +10 -0
  212. 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
  213. 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
  214. 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
  215. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/collection/lock_free_stack.rb +160 -0
  216. 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
  217. 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
  218. 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
  219. 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
  220. 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
  221. 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
  222. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/collection/ruby_timeout_queue.rb +55 -0
  223. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/collection/timeout_queue.rb +18 -0
  224. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/concern/deprecation.rb +34 -0
  225. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/concern/dereferenceable.rb +73 -0
  226. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/concern/logging.rb +121 -0
  227. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/concern/obligation.rb +220 -0
  228. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/concern/observable.rb +110 -0
  229. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/concurrent_ruby.jar +0 -0
  230. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/configuration.rb +105 -0
  231. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/constants.rb +8 -0
  232. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/dataflow.rb +81 -0
  233. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/delay.rb +199 -0
  234. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/errors.rb +74 -0
  235. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/exchanger.rb +353 -0
  236. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/executor/abstract_executor_service.rb +131 -0
  237. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/executor/cached_thread_pool.rb +62 -0
  238. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/executor/executor_service.rb +185 -0
  239. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/executor/fixed_thread_pool.rb +222 -0
  240. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/executor/immediate_executor.rb +66 -0
  241. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/executor/indirect_immediate_executor.rb +44 -0
  242. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/executor/java_executor_service.rb +101 -0
  243. 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
  244. 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
  245. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/executor/ruby_executor_service.rb +82 -0
  246. 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
  247. 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
  248. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/executor/safe_task_executor.rb +35 -0
  249. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/executor/serial_executor_service.rb +34 -0
  250. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/executor/serialized_execution.rb +107 -0
  251. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/executor/serialized_execution_delegator.rb +28 -0
  252. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/executor/simple_executor_service.rb +103 -0
  253. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/executor/single_thread_executor.rb +57 -0
  254. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/executor/thread_pool_executor.rb +88 -0
  255. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/executor/timer_set.rb +179 -0
  256. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/executors.rb +19 -0
  257. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/future.rb +141 -0
  258. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/hash.rb +52 -0
  259. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/immutable_struct.rb +101 -0
  260. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/ivar.rb +208 -0
  261. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/map.rb +350 -0
  262. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/maybe.rb +229 -0
  263. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/mutable_struct.rb +239 -0
  264. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/mvar.rb +242 -0
  265. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/options.rb +42 -0
  266. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/promise.rb +580 -0
  267. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/promises.rb +2178 -0
  268. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/re_include.rb +60 -0
  269. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/scheduled_task.rb +331 -0
  270. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/set.rb +64 -0
  271. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/settable_struct.rb +139 -0
  272. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/synchronization/abstract_lockable_object.rb +102 -0
  273. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/synchronization/abstract_object.rb +22 -0
  274. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/synchronization/abstract_struct.rb +171 -0
  275. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/synchronization/condition.rb +62 -0
  276. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/synchronization/full_memory_barrier.rb +29 -0
  277. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/synchronization/jruby_lockable_object.rb +15 -0
  278. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/synchronization/lock.rb +38 -0
  279. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/synchronization/lockable_object.rb +75 -0
  280. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/synchronization/mutex_lockable_object.rb +89 -0
  281. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/synchronization/object.rb +151 -0
  282. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/synchronization/safe_initialization.rb +36 -0
  283. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/synchronization/volatile.rb +101 -0
  284. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/synchronization.rb +13 -0
  285. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/thread_safe/synchronized_delegator.rb +47 -0
  286. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/thread_safe/util/adder.rb +74 -0
  287. 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
  288. 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
  289. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/thread_safe/util/striped64.rb +246 -0
  290. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/thread_safe/util/volatile.rb +75 -0
  291. 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
  292. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/thread_safe/util.rb +16 -0
  293. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/timer_task.rb +366 -0
  294. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/tuple.rb +82 -0
  295. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/tvar.rb +222 -0
  296. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/utility/engine.rb +45 -0
  297. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/utility/monotonic_time.rb +19 -0
  298. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/utility/native_extension_loader.rb +77 -0
  299. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/utility/native_integer.rb +54 -0
  300. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/utility/processor_counter.rb +220 -0
  301. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/version.rb +3 -0
  302. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent-ruby.rb +5 -0
  303. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent.rb +134 -0
  304. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/.rspec +1 -0
  305. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/CHANGELOG.md +518 -0
  306. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/CODE_OF_CONDUCT.md +128 -0
  307. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/CONTRIBUTING.md +71 -0
  308. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/CONTRIBUTORS.md +49 -0
  309. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/LICENCE.md +40 -0
  310. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/Manifest.txt +115 -0
  311. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/README.md +92 -0
  312. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/Rakefile +115 -0
  313. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/SECURITY.md +41 -0
  314. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/bin/htmldiff +35 -0
  315. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/bin/ldiff +9 -0
  316. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/docs/COPYING.txt +339 -0
  317. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/docs/artistic.txt +127 -0
  318. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/lib/diff/lcs/array.rb +7 -0
  319. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/lib/diff/lcs/backports.rb +13 -0
  320. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/lib/diff/lcs/block.rb +37 -0
  321. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/lib/diff/lcs/callbacks.rb +327 -0
  322. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/lib/diff/lcs/change.rb +174 -0
  323. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/lib/diff/lcs/htmldiff.rb +160 -0
  324. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/lib/diff/lcs/hunk.rb +379 -0
  325. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/lib/diff/lcs/internals.rb +308 -0
  326. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/lib/diff/lcs/ldiff.rb +189 -0
  327. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/lib/diff/lcs/string.rb +5 -0
  328. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/lib/diff/lcs/version.rb +7 -0
  329. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/lib/diff/lcs.rb +742 -0
  330. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/lib/diff-lcs.rb +3 -0
  331. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/mise.toml +5 -0
  332. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/change_spec.rb +89 -0
  333. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/diff_spec.rb +51 -0
  334. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/123_x +2 -0
  335. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/456_x +2 -0
  336. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/aX +1 -0
  337. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/bXaX +1 -0
  338. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ds1.csv +50 -0
  339. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ds2.csv +51 -0
  340. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/empty +0 -0
  341. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/file1.bin +0 -0
  342. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/file2.bin +0 -0
  343. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/four_lines +4 -0
  344. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/four_lines_with_missing_new_line +4 -0
  345. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/diff.missing_new_line1-e +1 -0
  346. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/diff.missing_new_line1-f +1 -0
  347. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/diff.missing_new_line2-e +1 -0
  348. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/diff.missing_new_line2-f +1 -0
  349. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/error.diff.chef-e +2 -0
  350. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/error.diff.chef-f +2 -0
  351. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/error.diff.missing_new_line1-e +1 -0
  352. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/error.diff.missing_new_line1-f +1 -0
  353. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/error.diff.missing_new_line2-e +1 -0
  354. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/error.diff.missing_new_line2-f +1 -0
  355. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff +4 -0
  356. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff-c +7 -0
  357. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff-e +3 -0
  358. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff-f +3 -0
  359. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff-u +5 -0
  360. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.bin1 +0 -0
  361. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.bin1-c +0 -0
  362. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.bin1-e +0 -0
  363. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.bin1-f +0 -0
  364. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.bin1-u +0 -0
  365. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.bin2 +1 -0
  366. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.bin2-c +1 -0
  367. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.bin2-e +1 -0
  368. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.bin2-f +1 -0
  369. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.bin2-u +1 -0
  370. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.chef +4 -0
  371. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.chef-c +15 -0
  372. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.chef-e +3 -0
  373. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.chef-f +3 -0
  374. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.chef-u +9 -0
  375. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.chef2 +7 -0
  376. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.chef2-c +20 -0
  377. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.chef2-d +7 -0
  378. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.chef2-e +7 -0
  379. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.chef2-f +7 -0
  380. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.chef2-u +16 -0
  381. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.empty.vs.four_lines +5 -0
  382. 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
  383. 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
  384. 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
  385. 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
  386. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.four_lines.vs.empty +5 -0
  387. 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
  388. 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
  389. 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
  390. 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
  391. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.issue95_trailing_context +4 -0
  392. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.issue95_trailing_context-c +9 -0
  393. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.issue95_trailing_context-e +3 -0
  394. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.issue95_trailing_context-f +3 -0
  395. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.issue95_trailing_context-u +6 -0
  396. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.missing_new_line1 +5 -0
  397. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.missing_new_line1-c +14 -0
  398. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.missing_new_line1-e +0 -0
  399. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.missing_new_line1-f +0 -0
  400. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.missing_new_line1-u +9 -0
  401. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.missing_new_line2 +5 -0
  402. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.missing_new_line2-c +14 -0
  403. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.missing_new_line2-e +0 -0
  404. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.missing_new_line2-f +0 -0
  405. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/ldiff/output.diff.missing_new_line2-u +9 -0
  406. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/new-chef +4 -0
  407. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/new-chef2 +17 -0
  408. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/old-chef +4 -0
  409. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/fixtures/old-chef2 +14 -0
  410. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/hunk_spec.rb +83 -0
  411. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/issues_spec.rb +160 -0
  412. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/lcs_spec.rb +56 -0
  413. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/ldiff_spec.rb +100 -0
  414. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/patch_spec.rb +416 -0
  415. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/sdiff_spec.rb +216 -0
  416. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/spec_helper.rb +376 -0
  417. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/traverse_balanced_spec.rb +312 -0
  418. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/spec/traverse_sequences_spec.rb +137 -0
  419. data/vendor/bundle/ruby/3.3.0/gems/docile-1.4.1/.github/dependabot.yml +15 -0
  420. data/vendor/bundle/ruby/3.3.0/gems/docile-1.4.1/.github/workflows/main.yml +42 -0
  421. data/vendor/bundle/ruby/3.3.0/gems/docile-1.4.1/.gitignore +11 -0
  422. data/vendor/bundle/ruby/3.3.0/gems/docile-1.4.1/.rspec +2 -0
  423. data/vendor/bundle/ruby/3.3.0/gems/docile-1.4.1/.rubocop.yml +5 -0
  424. data/vendor/bundle/ruby/3.3.0/gems/docile-1.4.1/.yardopts +7 -0
  425. data/vendor/bundle/ruby/3.3.0/gems/docile-1.4.1/Gemfile +26 -0
  426. data/vendor/bundle/ruby/3.3.0/gems/docile-1.4.1/HISTORY.md +134 -0
  427. data/vendor/bundle/ruby/3.3.0/gems/docile-1.4.1/LICENSE +21 -0
  428. data/vendor/bundle/ruby/3.3.0/gems/docile-1.4.1/README.md +409 -0
  429. data/vendor/bundle/ruby/3.3.0/gems/docile-1.4.1/Rakefile +14 -0
  430. data/vendor/bundle/ruby/3.3.0/gems/docile-1.4.1/SECURITY.md +19 -0
  431. data/vendor/bundle/ruby/3.3.0/gems/docile-1.4.1/docile.gemspec +36 -0
  432. data/vendor/bundle/ruby/3.3.0/gems/docile-1.4.1/lib/docile/backtrace_filter.rb +24 -0
  433. data/vendor/bundle/ruby/3.3.0/gems/docile-1.4.1/lib/docile/chaining_fallback_context_proxy.rb +27 -0
  434. data/vendor/bundle/ruby/3.3.0/gems/docile-1.4.1/lib/docile/execution.rb +53 -0
  435. data/vendor/bundle/ruby/3.3.0/gems/docile-1.4.1/lib/docile/fallback_context_proxy.rb +107 -0
  436. data/vendor/bundle/ruby/3.3.0/gems/docile-1.4.1/lib/docile/version.rb +6 -0
  437. data/vendor/bundle/ruby/3.3.0/gems/docile-1.4.1/lib/docile.rb +134 -0
  438. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/CHANGELOG.md +351 -0
  439. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/LICENSE +21 -0
  440. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/README.md +17 -0
  441. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/dry-core.gemspec +41 -0
  442. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core/basic_object.rb +143 -0
  443. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core/cache.rb +69 -0
  444. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core/class_attributes.rb +103 -0
  445. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core/class_builder.rb +103 -0
  446. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core/constants.rb +115 -0
  447. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core/container/config.rb +34 -0
  448. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core/container/configuration.rb +37 -0
  449. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core/container/item/callable.rb +22 -0
  450. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core/container/item/factory.rb +29 -0
  451. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core/container/item/memoizable.rb +49 -0
  452. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core/container/item.rb +56 -0
  453. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core/container/mixin.rb +311 -0
  454. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core/container/namespace.rb +47 -0
  455. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core/container/namespace_dsl.rb +63 -0
  456. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core/container/registry.rb +52 -0
  457. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core/container/resolver.rb +90 -0
  458. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core/container/stub.rb +57 -0
  459. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core/container.rb +27 -0
  460. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core/deprecations.rb +237 -0
  461. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core/descendants_tracker.rb +78 -0
  462. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core/equalizer.rb +156 -0
  463. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core/errors.rb +13 -0
  464. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core/extensions.rb +61 -0
  465. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core/inflector.rb +143 -0
  466. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core/memoizable.rb +235 -0
  467. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core/version.rb +7 -0
  468. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry/core.rb +56 -0
  469. data/vendor/bundle/ruby/3.3.0/gems/dry-core-1.2.0/lib/dry-core.rb +3 -0
  470. data/vendor/bundle/ruby/3.3.0/gems/dry-inflector-1.3.1/CHANGELOG.md +153 -0
  471. data/vendor/bundle/ruby/3.3.0/gems/dry-inflector-1.3.1/LICENSE +20 -0
  472. data/vendor/bundle/ruby/3.3.0/gems/dry-inflector-1.3.1/README.md +17 -0
  473. data/vendor/bundle/ruby/3.3.0/gems/dry-inflector-1.3.1/dry-inflector.gemspec +38 -0
  474. data/vendor/bundle/ruby/3.3.0/gems/dry-inflector-1.3.1/lib/dry/inflector/acronyms.rb +42 -0
  475. data/vendor/bundle/ruby/3.3.0/gems/dry-inflector-1.3.1/lib/dry/inflector/inflections/defaults.rb +129 -0
  476. data/vendor/bundle/ruby/3.3.0/gems/dry-inflector-1.3.1/lib/dry/inflector/inflections.rb +259 -0
  477. data/vendor/bundle/ruby/3.3.0/gems/dry-inflector-1.3.1/lib/dry/inflector/rules.rb +34 -0
  478. data/vendor/bundle/ruby/3.3.0/gems/dry-inflector-1.3.1/lib/dry/inflector/version.rb +8 -0
  479. data/vendor/bundle/ruby/3.3.0/gems/dry-inflector-1.3.1/lib/dry/inflector.rb +343 -0
  480. data/vendor/bundle/ruby/3.3.0/gems/dry-inflector-1.3.1/lib/dry-inflector.rb +3 -0
  481. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/CHANGELOG.md +375 -0
  482. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/LICENSE +20 -0
  483. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/README.md +22 -0
  484. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/dry-logic.gemspec +37 -0
  485. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/lib/dry/logic/appliable.rb +35 -0
  486. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/lib/dry/logic/builder.rb +88 -0
  487. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/lib/dry/logic/evaluator.rb +48 -0
  488. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/lib/dry/logic/operations/abstract.rb +42 -0
  489. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/lib/dry/logic/operations/and.rb +44 -0
  490. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/lib/dry/logic/operations/attr.rb +17 -0
  491. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/lib/dry/logic/operations/binary.rb +27 -0
  492. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/lib/dry/logic/operations/check.rb +50 -0
  493. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/lib/dry/logic/operations/each.rb +31 -0
  494. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/lib/dry/logic/operations/implication.rb +36 -0
  495. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/lib/dry/logic/operations/key.rb +64 -0
  496. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/lib/dry/logic/operations/negation.rb +21 -0
  497. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/lib/dry/logic/operations/or.rb +34 -0
  498. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/lib/dry/logic/operations/set.rb +34 -0
  499. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/lib/dry/logic/operations/unary.rb +24 -0
  500. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/lib/dry/logic/operations/xor.rb +26 -0
  501. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/lib/dry/logic/operators.rb +27 -0
  502. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/lib/dry/logic/predicates.rb +233 -0
  503. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/lib/dry/logic/result.rb +96 -0
  504. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/lib/dry/logic/rule/interface.rb +137 -0
  505. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/lib/dry/logic/rule/predicate.rb +34 -0
  506. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/lib/dry/logic/rule.rb +98 -0
  507. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/lib/dry/logic/rule_compiler.rb +81 -0
  508. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/lib/dry/logic/version.rb +7 -0
  509. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/lib/dry/logic.rb +25 -0
  510. data/vendor/bundle/ruby/3.3.0/gems/dry-logic-1.6.0/lib/dry-logic.rb +3 -0
  511. data/vendor/bundle/ruby/3.3.0/gems/dry-struct-1.8.0/CHANGELOG.md +482 -0
  512. data/vendor/bundle/ruby/3.3.0/gems/dry-struct-1.8.0/LICENSE +20 -0
  513. data/vendor/bundle/ruby/3.3.0/gems/dry-struct-1.8.0/README.md +22 -0
  514. data/vendor/bundle/ruby/3.3.0/gems/dry-struct-1.8.0/dry-struct.gemspec +37 -0
  515. data/vendor/bundle/ruby/3.3.0/gems/dry-struct-1.8.0/lib/dry/struct/class_interface.rb +471 -0
  516. data/vendor/bundle/ruby/3.3.0/gems/dry-struct-1.8.0/lib/dry/struct/compiler.rb +19 -0
  517. data/vendor/bundle/ruby/3.3.0/gems/dry-struct-1.8.0/lib/dry/struct/constructor.rb +9 -0
  518. data/vendor/bundle/ruby/3.3.0/gems/dry-struct-1.8.0/lib/dry/struct/errors.rb +32 -0
  519. data/vendor/bundle/ruby/3.3.0/gems/dry-struct-1.8.0/lib/dry/struct/extensions/pretty_print.rb +22 -0
  520. data/vendor/bundle/ruby/3.3.0/gems/dry-struct-1.8.0/lib/dry/struct/extensions/super_diff.rb +10 -0
  521. data/vendor/bundle/ruby/3.3.0/gems/dry-struct-1.8.0/lib/dry/struct/extensions.rb +9 -0
  522. data/vendor/bundle/ruby/3.3.0/gems/dry-struct-1.8.0/lib/dry/struct/hashify.rb +23 -0
  523. data/vendor/bundle/ruby/3.3.0/gems/dry-struct-1.8.0/lib/dry/struct/printer.rb +23 -0
  524. data/vendor/bundle/ruby/3.3.0/gems/dry-struct-1.8.0/lib/dry/struct/struct_builder.rb +102 -0
  525. data/vendor/bundle/ruby/3.3.0/gems/dry-struct-1.8.0/lib/dry/struct/sum.rb +51 -0
  526. data/vendor/bundle/ruby/3.3.0/gems/dry-struct-1.8.0/lib/dry/struct/value.rb +37 -0
  527. data/vendor/bundle/ruby/3.3.0/gems/dry-struct-1.8.0/lib/dry/struct/version.rb +8 -0
  528. data/vendor/bundle/ruby/3.3.0/gems/dry-struct-1.8.0/lib/dry/struct.rb +230 -0
  529. data/vendor/bundle/ruby/3.3.0/gems/dry-struct-1.8.0/lib/dry-struct.rb +3 -0
  530. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/CHANGELOG.md +1145 -0
  531. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/LICENSE +20 -0
  532. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/README.md +17 -0
  533. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/dry-types.gemspec +45 -0
  534. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/any.rb +41 -0
  535. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/array/constructor.rb +24 -0
  536. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/array/member.rb +118 -0
  537. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/array.rb +32 -0
  538. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/builder.rb +221 -0
  539. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/builder_methods.rb +138 -0
  540. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/coercions/json.rb +57 -0
  541. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/coercions/params.rb +168 -0
  542. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/coercions.rb +105 -0
  543. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/compat.rb +1 -0
  544. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/compiler.rb +138 -0
  545. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/composition.rb +138 -0
  546. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/constrained/coercible.rb +59 -0
  547. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/constrained.rb +146 -0
  548. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/constraints.rb +30 -0
  549. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/constructor/function.rb +203 -0
  550. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/constructor/wrapper.rb +88 -0
  551. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/constructor.rb +195 -0
  552. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/container.rb +12 -0
  553. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/core.rb +106 -0
  554. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/decorator.rb +94 -0
  555. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/default.rb +122 -0
  556. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/enum.rb +121 -0
  557. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/errors.rb +138 -0
  558. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/extensions/maybe.rb +128 -0
  559. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/extensions/monads.rb +34 -0
  560. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/extensions.rb +9 -0
  561. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/fn_container.rb +37 -0
  562. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/hash/constructor.rb +25 -0
  563. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/hash.rb +134 -0
  564. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/implication.rb +64 -0
  565. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/inflector.rb +9 -0
  566. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/intersection.rb +102 -0
  567. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/json.rb +35 -0
  568. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/lax.rb +66 -0
  569. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/map.rb +134 -0
  570. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/meta.rb +53 -0
  571. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/module.rb +127 -0
  572. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/nominal.rb +201 -0
  573. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/options.rb +34 -0
  574. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/params.rb +38 -0
  575. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/predicate_inferrer.rb +235 -0
  576. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/predicate_registry.rb +32 -0
  577. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/primitive_inferrer.rb +75 -0
  578. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/printable.rb +14 -0
  579. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/printer/composition.rb +44 -0
  580. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/printer.rb +313 -0
  581. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/result.rb +72 -0
  582. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/schema/key.rb +138 -0
  583. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/schema.rb +408 -0
  584. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/spec/types.rb +164 -0
  585. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/sum.rb +105 -0
  586. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/type.rb +53 -0
  587. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types/version.rb +7 -0
  588. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry/types.rb +259 -0
  589. data/vendor/bundle/ruby/3.3.0/gems/dry-types-1.9.1/lib/dry-types.rb +3 -0
  590. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/.gitignore +37 -0
  591. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/.pelusa.yml +9 -0
  592. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/.rspec +5 -0
  593. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/.rubocop.yml +8 -0
  594. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/.ruby-gemset +1 -0
  595. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/.travis.yml +27 -0
  596. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/.yardopts +1 -0
  597. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/CONTRIBUTING.md +11 -0
  598. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/Gemfile +14 -0
  599. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/Gemfile.devtools +72 -0
  600. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/Guardfile +24 -0
  601. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/LICENSE +20 -0
  602. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/README.md +51 -0
  603. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/Rakefile +13 -0
  604. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/TODO +7 -0
  605. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/benchmarks/speed.rb +34 -0
  606. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/config/devtools.yml +2 -0
  607. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/config/flay.yml +3 -0
  608. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/config/flog.yml +2 -0
  609. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/config/mutant.yml +4 -0
  610. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/config/reek.yml +105 -0
  611. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/config/roodi.yml +16 -0
  612. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/config/rubocop.yml +114 -0
  613. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/config/yardstick.yml +2 -0
  614. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/ice_nine.gemspec +21 -0
  615. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/lib/ice_nine/core_ext/object.rb +42 -0
  616. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/lib/ice_nine/freezer/array.rb +28 -0
  617. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/lib/ice_nine/freezer/false_class.rb +10 -0
  618. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/lib/ice_nine/freezer/hash/state.rb +12 -0
  619. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/lib/ice_nine/freezer/hash.rb +46 -0
  620. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/lib/ice_nine/freezer/module.rb +10 -0
  621. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/lib/ice_nine/freezer/nil_class.rb +10 -0
  622. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/lib/ice_nine/freezer/no_freeze.rb +25 -0
  623. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/lib/ice_nine/freezer/numeric.rb +10 -0
  624. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/lib/ice_nine/freezer/object.rb +49 -0
  625. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/lib/ice_nine/freezer/range.rb +29 -0
  626. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/lib/ice_nine/freezer/rubinius.rb +10 -0
  627. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/lib/ice_nine/freezer/struct.rb +10 -0
  628. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/lib/ice_nine/freezer/symbol.rb +10 -0
  629. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/lib/ice_nine/freezer/true_class.rb +10 -0
  630. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/lib/ice_nine/freezer.rb +109 -0
  631. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/lib/ice_nine/support/recursion_guard.rb +57 -0
  632. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/lib/ice_nine/version.rb +8 -0
  633. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/lib/ice_nine.rb +62 -0
  634. 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
  635. 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
  636. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/spec/shared/array_deep_freeze.rb +9 -0
  637. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/spec/shared/hash_deep_freeze.rb +23 -0
  638. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/spec/shared/ice_nine_deep_freeze.rb +262 -0
  639. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/spec/shared/no_freeze_deep_freeze.rb +21 -0
  640. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/spec/shared/object_deep_freeze.rb +19 -0
  641. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/spec/shared/range_deep_freeze.rb +13 -0
  642. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/spec/spec_helper.rb +28 -0
  643. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/spec/support/config_alias.rb +5 -0
  644. 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
  645. 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
  646. 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
  647. 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
  648. 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
  649. 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
  650. 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
  651. 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
  652. 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
  653. 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
  654. 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
  655. 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
  656. 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
  657. 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
  658. 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
  659. 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
  660. 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
  661. 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
  662. 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
  663. data/vendor/bundle/ruby/3.3.0/gems/ice_nine-0.11.2/spec/unit/object/deep_freeze_spec.rb +13 -0
  664. data/vendor/bundle/ruby/3.3.0/gems/logger-1.7.0/.document +4 -0
  665. data/vendor/bundle/ruby/3.3.0/gems/logger-1.7.0/.rdoc_options +3 -0
  666. data/vendor/bundle/ruby/3.3.0/gems/logger-1.7.0/BSDL +22 -0
  667. data/vendor/bundle/ruby/3.3.0/gems/logger-1.7.0/COPYING +56 -0
  668. data/vendor/bundle/ruby/3.3.0/gems/logger-1.7.0/README.md +104 -0
  669. data/vendor/bundle/ruby/3.3.0/gems/logger-1.7.0/lib/logger/errors.rb +9 -0
  670. data/vendor/bundle/ruby/3.3.0/gems/logger-1.7.0/lib/logger/formatter.rb +36 -0
  671. data/vendor/bundle/ruby/3.3.0/gems/logger-1.7.0/lib/logger/log_device.rb +265 -0
  672. data/vendor/bundle/ruby/3.3.0/gems/logger-1.7.0/lib/logger/period.rb +47 -0
  673. data/vendor/bundle/ruby/3.3.0/gems/logger-1.7.0/lib/logger/severity.rb +38 -0
  674. data/vendor/bundle/ruby/3.3.0/gems/logger-1.7.0/lib/logger/version.rb +5 -0
  675. data/vendor/bundle/ruby/3.3.0/gems/logger-1.7.0/lib/logger.rb +789 -0
  676. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/History.rdoc +2454 -0
  677. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/MIT-LICENSE +21 -0
  678. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/README.rdoc +155 -0
  679. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/doc/command_line_usage.rdoc +171 -0
  680. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/doc/example/Rakefile1 +38 -0
  681. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/doc/example/Rakefile2 +35 -0
  682. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/doc/example/a.c +6 -0
  683. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/doc/example/b.c +6 -0
  684. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/doc/example/main.c +11 -0
  685. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/doc/glossary.rdoc +42 -0
  686. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/doc/jamis.rb +592 -0
  687. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/doc/proto_rake.rdoc +127 -0
  688. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/doc/rake.1 +156 -0
  689. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/doc/rakefile.rdoc +622 -0
  690. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/doc/rational.rdoc +151 -0
  691. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/exe/rake +27 -0
  692. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/application.rb +854 -0
  693. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/backtrace.rb +25 -0
  694. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/clean.rb +78 -0
  695. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/cloneable.rb +17 -0
  696. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/cpu_counter.rb +122 -0
  697. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/default_loader.rb +15 -0
  698. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/dsl_definition.rb +196 -0
  699. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/early_time.rb +22 -0
  700. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/ext/core.rb +26 -0
  701. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/ext/string.rb +176 -0
  702. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/file_creation_task.rb +25 -0
  703. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/file_list.rb +435 -0
  704. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/file_task.rb +58 -0
  705. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/file_utils.rb +132 -0
  706. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/file_utils_ext.rb +134 -0
  707. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/invocation_chain.rb +57 -0
  708. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/invocation_exception_mixin.rb +17 -0
  709. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/late_time.rb +18 -0
  710. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/linked_list.rb +112 -0
  711. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/loaders/makefile.rb +54 -0
  712. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/multi_task.rb +14 -0
  713. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/name_space.rb +38 -0
  714. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/packagetask.rb +222 -0
  715. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/phony.rb +16 -0
  716. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/private_reader.rb +21 -0
  717. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/promise.rb +100 -0
  718. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/pseudo_status.rb +30 -0
  719. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/rake_module.rb +67 -0
  720. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/rake_test_loader.rb +27 -0
  721. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/rule_recursion_overflow_error.rb +20 -0
  722. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/scope.rb +43 -0
  723. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/task.rb +434 -0
  724. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/task_argument_error.rb +8 -0
  725. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/task_arguments.rb +113 -0
  726. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/task_manager.rb +331 -0
  727. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/tasklib.rb +12 -0
  728. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/testtask.rb +189 -0
  729. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/thread_history_display.rb +49 -0
  730. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/thread_pool.rb +157 -0
  731. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/trace_output.rb +23 -0
  732. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/version.rb +10 -0
  733. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/win32.rb +51 -0
  734. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake.rb +68 -0
  735. data/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/rake.gemspec +101 -0
  736. data/vendor/bundle/ruby/3.3.0/gems/rspec-3.13.2/LICENSE.md +27 -0
  737. data/vendor/bundle/ruby/3.3.0/gems/rspec-3.13.2/README.md +47 -0
  738. data/vendor/bundle/ruby/3.3.0/gems/rspec-3.13.2/lib/rspec/version.rb +5 -0
  739. data/vendor/bundle/ruby/3.3.0/gems/rspec-3.13.2/lib/rspec.rb +3 -0
  740. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/.document +5 -0
  741. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/.yardopts +8 -0
  742. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/Changelog.md +2447 -0
  743. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/LICENSE.md +26 -0
  744. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/README.md +389 -0
  745. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/exe/rspec +4 -0
  746. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/autorun.rb +3 -0
  747. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/backtrace_formatter.rb +65 -0
  748. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/bisect/coordinator.rb +62 -0
  749. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/bisect/example_minimizer.rb +173 -0
  750. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/bisect/fork_runner.rb +140 -0
  751. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/bisect/server.rb +61 -0
  752. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/bisect/shell_command.rb +126 -0
  753. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/bisect/shell_runner.rb +73 -0
  754. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/bisect/utilities.rb +69 -0
  755. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/configuration.rb +2419 -0
  756. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/configuration_options.rb +240 -0
  757. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/did_you_mean.rb +52 -0
  758. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/drb.rb +120 -0
  759. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/dsl.rb +98 -0
  760. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/example.rb +666 -0
  761. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/example_group.rb +912 -0
  762. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/example_status_persister.rb +235 -0
  763. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/filter_manager.rb +231 -0
  764. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/flat_map.rb +20 -0
  765. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/formatters/base_bisect_formatter.rb +45 -0
  766. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/formatters/base_formatter.rb +70 -0
  767. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/formatters/base_text_formatter.rb +75 -0
  768. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/formatters/bisect_drb_formatter.rb +29 -0
  769. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/formatters/bisect_progress_formatter.rb +157 -0
  770. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/formatters/console_codes.rb +76 -0
  771. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/formatters/deprecation_formatter.rb +223 -0
  772. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/formatters/documentation_formatter.rb +102 -0
  773. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/formatters/exception_presenter.rb +553 -0
  774. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/formatters/failure_list_formatter.rb +23 -0
  775. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/formatters/fallback_message_formatter.rb +28 -0
  776. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/formatters/helpers.rb +118 -0
  777. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/formatters/html_formatter.rb +153 -0
  778. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/formatters/html_printer.rb +412 -0
  779. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/formatters/html_snippet_extractor.rb +122 -0
  780. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/formatters/json_formatter.rb +103 -0
  781. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/formatters/profile_formatter.rb +68 -0
  782. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/formatters/progress_formatter.rb +29 -0
  783. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/formatters/protocol.rb +182 -0
  784. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/formatters/snippet_extractor.rb +134 -0
  785. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/formatters/syntax_highlighter.rb +91 -0
  786. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/formatters.rb +279 -0
  787. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/hooks.rb +646 -0
  788. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/invocations.rb +87 -0
  789. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/memoized_helpers.rb +580 -0
  790. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/metadata.rb +498 -0
  791. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/metadata_filter.rb +255 -0
  792. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/minitest_assertions_adapter.rb +31 -0
  793. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/mocking_adapters/flexmock.rb +31 -0
  794. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/mocking_adapters/mocha.rb +57 -0
  795. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/mocking_adapters/null.rb +14 -0
  796. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/mocking_adapters/rr.rb +31 -0
  797. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/mocking_adapters/rspec.rb +32 -0
  798. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/notifications.rb +523 -0
  799. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/option_parser.rb +325 -0
  800. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/ordering.rb +208 -0
  801. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/output_wrapper.rb +29 -0
  802. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/pending.rb +157 -0
  803. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/profiler.rb +34 -0
  804. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/project_initializer/.rspec +1 -0
  805. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/project_initializer/spec/spec_helper.rb +98 -0
  806. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/project_initializer.rb +48 -0
  807. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/rake_task.rb +190 -0
  808. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/reporter.rb +266 -0
  809. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/ruby_project.rb +53 -0
  810. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/runner.rb +216 -0
  811. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/sandbox.rb +37 -0
  812. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/set.rb +54 -0
  813. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/shared_context.rb +55 -0
  814. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/shared_example_group.rb +271 -0
  815. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/shell_escape.rb +49 -0
  816. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/test_unit_assertions_adapter.rb +30 -0
  817. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/version.rb +9 -0
  818. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/warnings.rb +40 -0
  819. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core/world.rb +287 -0
  820. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.6/lib/rspec/core.rb +212 -0
  821. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/.document +5 -0
  822. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/.yardopts +6 -0
  823. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/Changelog.md +1366 -0
  824. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/LICENSE.md +25 -0
  825. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/README.md +326 -0
  826. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/expectations/block_snippet_extractor.rb +255 -0
  827. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/expectations/configuration.rb +244 -0
  828. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/expectations/expectation_target.rb +163 -0
  829. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/expectations/fail_with.rb +39 -0
  830. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/expectations/failure_aggregator.rb +236 -0
  831. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/expectations/handler.rb +181 -0
  832. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/expectations/minitest_integration.rb +58 -0
  833. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/expectations/syntax.rb +132 -0
  834. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/expectations/version.rb +8 -0
  835. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/expectations.rb +82 -0
  836. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/aliased_matcher.rb +116 -0
  837. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/all.rb +86 -0
  838. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/base_matcher.rb +225 -0
  839. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/be.rb +191 -0
  840. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/be_between.rb +77 -0
  841. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/be_instance_of.rb +26 -0
  842. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/be_kind_of.rb +20 -0
  843. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/be_within.rb +72 -0
  844. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/change.rb +452 -0
  845. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/compound.rb +293 -0
  846. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/contain_exactly.rb +312 -0
  847. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/count_expectation.rb +171 -0
  848. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/cover.rb +24 -0
  849. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/eq.rb +44 -0
  850. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/eql.rb +38 -0
  851. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/equal.rb +81 -0
  852. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/exist.rb +90 -0
  853. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/has.rb +194 -0
  854. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/have_attributes.rb +114 -0
  855. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/include.rb +218 -0
  856. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/match.rb +120 -0
  857. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/operators.rb +128 -0
  858. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/output.rb +207 -0
  859. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/raise_error.rb +275 -0
  860. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/respond_to.rb +200 -0
  861. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/satisfy.rb +62 -0
  862. 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
  863. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/throw_symbol.rb +138 -0
  864. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in/yield.rb +375 -0
  865. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/built_in.rb +53 -0
  866. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/composable.rb +171 -0
  867. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/dsl.rb +546 -0
  868. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/english_phrasing.rb +60 -0
  869. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/fail_matchers.rb +42 -0
  870. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/generated_descriptions.rb +41 -0
  871. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/matcher_delegator.rb +61 -0
  872. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/matcher_protocol.rb +105 -0
  873. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers/multi_matcher_diff.rb +82 -0
  874. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.5/lib/rspec/matchers.rb +1046 -0
  875. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/.document +5 -0
  876. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/.yardopts +6 -0
  877. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/Changelog.md +1343 -0
  878. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/LICENSE.md +25 -0
  879. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/README.md +465 -0
  880. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/any_instance/chain.rb +111 -0
  881. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/any_instance/error_generator.rb +31 -0
  882. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/any_instance/expect_chain_chain.rb +31 -0
  883. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/any_instance/expectation_chain.rb +50 -0
  884. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/any_instance/message_chains.rb +83 -0
  885. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/any_instance/proxy.rb +125 -0
  886. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/any_instance/recorder.rb +299 -0
  887. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/any_instance/stub_chain.rb +51 -0
  888. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/any_instance/stub_chain_chain.rb +23 -0
  889. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/any_instance.rb +11 -0
  890. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/argument_list_matcher.rb +117 -0
  891. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/argument_matchers.rb +366 -0
  892. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/configuration.rb +212 -0
  893. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/error_generator.rb +390 -0
  894. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/example_methods.rb +434 -0
  895. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/instance_method_stasher.rb +146 -0
  896. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/marshal_extension.rb +41 -0
  897. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/matchers/expectation_customization.rb +20 -0
  898. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/matchers/have_received.rb +134 -0
  899. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/matchers/receive.rb +134 -0
  900. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/matchers/receive_message_chain.rb +82 -0
  901. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/matchers/receive_messages.rb +77 -0
  902. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/message_chain.rb +87 -0
  903. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/message_expectation.rb +856 -0
  904. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/method_double.rb +316 -0
  905. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/method_reference.rb +214 -0
  906. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/minitest_integration.rb +68 -0
  907. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/mutate_const.rb +339 -0
  908. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/object_reference.rb +149 -0
  909. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/order_group.rb +81 -0
  910. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/proxy.rb +517 -0
  911. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/space.rb +238 -0
  912. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/standalone.rb +3 -0
  913. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/syntax.rb +325 -0
  914. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/targets.rb +124 -0
  915. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/test_double.rb +174 -0
  916. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/verifying_double.rb +125 -0
  917. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/verifying_message_expectation.rb +55 -0
  918. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/verifying_proxy.rb +221 -0
  919. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks/version.rb +9 -0
  920. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.7/lib/rspec/mocks.rb +133 -0
  921. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/Changelog.md +444 -0
  922. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/LICENSE.md +23 -0
  923. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/README.md +40 -0
  924. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/caller_filter.rb +85 -0
  925. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/comparable_version.rb +48 -0
  926. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/differ.rb +216 -0
  927. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/directory_maker.rb +65 -0
  928. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/encoded_string.rb +163 -0
  929. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/fuzzy_matcher.rb +53 -0
  930. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/hunk_generator.rb +49 -0
  931. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/matcher_definition.rb +44 -0
  932. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/method_signature_verifier.rb +467 -0
  933. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/mutex.rb +75 -0
  934. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/object_formatter.rb +279 -0
  935. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/recursive_const_methods.rb +78 -0
  936. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/reentrant_mutex.rb +80 -0
  937. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/ruby_features.rb +221 -0
  938. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/source/location.rb +23 -0
  939. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/source/node.rb +112 -0
  940. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/source/token.rb +96 -0
  941. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/source.rb +87 -0
  942. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/spec/deprecation_helpers.rb +50 -0
  943. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/spec/diff_helpers.rb +45 -0
  944. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/spec/formatting_support.rb +11 -0
  945. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/spec/in_sub_process.rb +73 -0
  946. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/spec/library_wide_checks.rb +152 -0
  947. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/spec/shell_out.rb +115 -0
  948. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/spec/stderr_splitter.rb +77 -0
  949. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/spec/string_matcher.rb +47 -0
  950. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/spec/with_isolated_directory.rb +15 -0
  951. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/spec/with_isolated_stderr.rb +15 -0
  952. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/spec.rb +84 -0
  953. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/version.rb +9 -0
  954. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/warnings.rb +41 -0
  955. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support/with_keywords_when_needed.rb +35 -0
  956. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.7/lib/rspec/support.rb +163 -0
  957. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/CHANGELOG.md +191 -0
  958. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/LICENSE +20 -0
  959. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/README.md +974 -0
  960. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/doc/alternate-formatters.md +71 -0
  961. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/doc/commercial-services.md +25 -0
  962. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/doc/editor-integration.md +18 -0
  963. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/minitest/simplecov_plugin.rb +15 -0
  964. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/combine/branches_combiner.rb +32 -0
  965. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/combine/files_combiner.rb +24 -0
  966. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/combine/lines_combiner.rb +43 -0
  967. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/combine/results_combiner.rb +60 -0
  968. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/combine.rb +30 -0
  969. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/command_guesser.rb +64 -0
  970. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/configuration.rb +500 -0
  971. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/coverage_statistics.rb +56 -0
  972. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/default_formatter.rb +20 -0
  973. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/defaults.rb +53 -0
  974. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/exit_codes/exit_code_handling.rb +29 -0
  975. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/exit_codes/maximum_coverage_drop_check.rb +83 -0
  976. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/exit_codes/minimum_coverage_by_file_check.rb +54 -0
  977. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/exit_codes/minimum_overall_coverage_check.rb +53 -0
  978. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/exit_codes.rb +15 -0
  979. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/file_list.rb +120 -0
  980. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/filter.rb +94 -0
  981. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/formatter/multi_formatter.rb +32 -0
  982. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/formatter/simple_formatter.rb +25 -0
  983. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/formatter.rb +10 -0
  984. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/last_run.rb +28 -0
  985. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/lines_classifier.rb +48 -0
  986. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/load_global_config.rb +8 -0
  987. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/no_defaults.rb +4 -0
  988. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/process.rb +19 -0
  989. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/profiles/bundler_filter.rb +5 -0
  990. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/profiles/hidden_filter.rb +5 -0
  991. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/profiles/rails.rb +18 -0
  992. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/profiles/root_filter.rb +10 -0
  993. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/profiles/test_frameworks.rb +8 -0
  994. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/profiles.rb +35 -0
  995. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/result.rb +94 -0
  996. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/result_adapter.rb +30 -0
  997. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/result_merger.rb +194 -0
  998. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/simulate_coverage.rb +29 -0
  999. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/source_file/branch.rb +84 -0
  1000. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/source_file/line.rb +72 -0
  1001. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/source_file.rb +355 -0
  1002. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/useless_results_remover.rb +18 -0
  1003. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov/version.rb +5 -0
  1004. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib/simplecov.rb +470 -0
  1005. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/.document +5 -0
  1006. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/CHANGELOG.md +114 -0
  1007. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/LICENSE +20 -0
  1008. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/README.md +30 -0
  1009. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/Rakefile +55 -0
  1010. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/lib/simplecov-html/version.rb +9 -0
  1011. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/lib/simplecov-html.rb +165 -0
  1012. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/DataTables-1.10.20/images/sort_asc.png +0 -0
  1013. 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
  1014. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/DataTables-1.10.20/images/sort_both.png +0 -0
  1015. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/DataTables-1.10.20/images/sort_desc.png +0 -0
  1016. 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
  1017. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/application.css +1 -0
  1018. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/application.js +7 -0
  1019. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/colorbox/border.png +0 -0
  1020. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/colorbox/controls.png +0 -0
  1021. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/colorbox/loading.gif +0 -0
  1022. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/colorbox/loading_background.png +0 -0
  1023. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/favicon_green.png +0 -0
  1024. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/favicon_red.png +0 -0
  1025. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/favicon_yellow.png +0 -0
  1026. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  1027. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  1028. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  1029. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  1030. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  1031. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  1032. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  1033. 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
  1034. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/images/ui-icons_222222_256x240.png +0 -0
  1035. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/images/ui-icons_2e83ff_256x240.png +0 -0
  1036. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/images/ui-icons_454545_256x240.png +0 -0
  1037. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/images/ui-icons_888888_256x240.png +0 -0
  1038. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/images/ui-icons_cd0a0a_256x240.png +0 -0
  1039. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/loading.gif +0 -0
  1040. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/public/magnify.png +0 -0
  1041. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/views/covered_percent.erb +3 -0
  1042. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/views/file_list.erb +78 -0
  1043. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/views/layout.erb +40 -0
  1044. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.2/views/source_file.erb +57 -0
  1045. data/vendor/bundle/ruby/3.3.0/gems/simplecov_json_formatter-0.1.4/CHANGELOG.md +13 -0
  1046. data/vendor/bundle/ruby/3.3.0/gems/simplecov_json_formatter-0.1.4/README.md +29 -0
  1047. data/vendor/bundle/ruby/3.3.0/gems/simplecov_json_formatter-0.1.4/lib/simplecov_json_formatter/result_exporter.rb +27 -0
  1048. data/vendor/bundle/ruby/3.3.0/gems/simplecov_json_formatter-0.1.4/lib/simplecov_json_formatter/result_hash_formatter.rb +52 -0
  1049. data/vendor/bundle/ruby/3.3.0/gems/simplecov_json_formatter-0.1.4/lib/simplecov_json_formatter/source_file_formatter.rb +65 -0
  1050. data/vendor/bundle/ruby/3.3.0/gems/simplecov_json_formatter-0.1.4/lib/simplecov_json_formatter/version.rb +5 -0
  1051. data/vendor/bundle/ruby/3.3.0/gems/simplecov_json_formatter-0.1.4/lib/simplecov_json_formatter.rb +36 -0
  1052. data/vendor/bundle/ruby/3.3.0/gems/terraform-synthesizer-0.0.28/.gitignore +9 -0
  1053. data/vendor/bundle/ruby/3.3.0/gems/terraform-synthesizer-0.0.28/.rubocop.yml +53 -0
  1054. data/vendor/bundle/ruby/3.3.0/gems/terraform-synthesizer-0.0.28/.ruby-gemset +1 -0
  1055. data/vendor/bundle/ruby/3.3.0/gems/terraform-synthesizer-0.0.28/.ruby-version +1 -0
  1056. data/vendor/bundle/ruby/3.3.0/gems/terraform-synthesizer-0.0.28/CHANGELOG.md +46 -0
  1057. data/vendor/bundle/ruby/3.3.0/gems/terraform-synthesizer-0.0.28/CONTRIBUTING.md +96 -0
  1058. data/vendor/bundle/ruby/3.3.0/gems/terraform-synthesizer-0.0.28/Gemfile +2 -0
  1059. data/vendor/bundle/ruby/3.3.0/gems/terraform-synthesizer-0.0.28/Gemfile.lock +68 -0
  1060. data/vendor/bundle/ruby/3.3.0/gems/terraform-synthesizer-0.0.28/LICENSE +201 -0
  1061. data/vendor/bundle/ruby/3.3.0/gems/terraform-synthesizer-0.0.28/README.md +777 -0
  1062. data/vendor/bundle/ruby/3.3.0/gems/terraform-synthesizer-0.0.28/Rakefile +10 -0
  1063. data/vendor/bundle/ruby/3.3.0/gems/terraform-synthesizer-0.0.28/examples/README.md +51 -0
  1064. data/vendor/bundle/ruby/3.3.0/gems/terraform-synthesizer-0.0.28/examples/basic_vpc.rb +172 -0
  1065. data/vendor/bundle/ruby/3.3.0/gems/terraform-synthesizer-0.0.28/examples/complete_web_app.rb +626 -0
  1066. data/vendor/bundle/ruby/3.3.0/gems/terraform-synthesizer-0.0.28/examples/kubernetes_microservices.rb +873 -0
  1067. data/vendor/bundle/ruby/3.3.0/gems/terraform-synthesizer-0.0.28/examples/multi_cloud_backup.rb +456 -0
  1068. data/vendor/bundle/ruby/3.3.0/gems/terraform-synthesizer-0.0.28/flake.lock +835 -0
  1069. data/vendor/bundle/ruby/3.3.0/gems/terraform-synthesizer-0.0.28/flake.nix +62 -0
  1070. data/vendor/bundle/ruby/3.3.0/gems/terraform-synthesizer-0.0.28/gemset.nix +250 -0
  1071. data/vendor/bundle/ruby/3.3.0/gems/terraform-synthesizer-0.0.28/lib/terraform-synthesizer/version.rb +3 -0
  1072. data/vendor/bundle/ruby/3.3.0/gems/terraform-synthesizer-0.0.28/lib/terraform-synthesizer.rb +21 -0
  1073. data/vendor/bundle/ruby/3.3.0/gems/terraform-synthesizer-0.0.28/terraform-synthesizer.gemspec +32 -0
  1074. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.5/MIT-LICENSE +20 -0
  1075. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.5/README.md +1477 -0
  1076. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.5/lib/zeitwerk/core_ext/kernel.rb +64 -0
  1077. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.5/lib/zeitwerk/core_ext/module.rb +20 -0
  1078. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.5/lib/zeitwerk/cref/map.rb +159 -0
  1079. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.5/lib/zeitwerk/cref.rb +69 -0
  1080. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.5/lib/zeitwerk/error.rb +23 -0
  1081. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.5/lib/zeitwerk/gem_inflector.rb +17 -0
  1082. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.5/lib/zeitwerk/gem_loader.rb +68 -0
  1083. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.5/lib/zeitwerk/inflector.rb +46 -0
  1084. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.5/lib/zeitwerk/internal.rb +13 -0
  1085. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.5/lib/zeitwerk/loader/callbacks.rb +96 -0
  1086. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.5/lib/zeitwerk/loader/config.rb +357 -0
  1087. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.5/lib/zeitwerk/loader/eager_load.rb +230 -0
  1088. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.5/lib/zeitwerk/loader/file_system.rb +165 -0
  1089. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.5/lib/zeitwerk/loader/helpers.rb +46 -0
  1090. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.5/lib/zeitwerk/loader.rb +643 -0
  1091. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.5/lib/zeitwerk/null_inflector.rb +6 -0
  1092. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.5/lib/zeitwerk/real_mod_name.rb +19 -0
  1093. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.5/lib/zeitwerk/registry/autoloads.rb +38 -0
  1094. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.5/lib/zeitwerk/registry/explicit_namespaces.rb +61 -0
  1095. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.5/lib/zeitwerk/registry/inceptions.rb +31 -0
  1096. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.5/lib/zeitwerk/registry/loaders.rb +33 -0
  1097. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.5/lib/zeitwerk/registry.rb +89 -0
  1098. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.5/lib/zeitwerk/version.rb +6 -0
  1099. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.5/lib/zeitwerk.rb +29 -0
  1100. data/vendor/bundle/ruby/3.3.0/specifications/abstract-synthesizer-0.0.15.gemspec +36 -0
  1101. data/vendor/bundle/ruby/3.3.0/specifications/base64-0.3.0.gemspec +23 -0
  1102. data/vendor/bundle/ruby/3.3.0/specifications/bigdecimal-4.0.1.gemspec +25 -0
  1103. data/vendor/bundle/ruby/3.3.0/specifications/concurrent-ruby-1.3.6.gemspec +24 -0
  1104. data/vendor/bundle/ruby/3.3.0/specifications/diff-lcs-1.6.2.gemspec +46 -0
  1105. data/vendor/bundle/ruby/3.3.0/specifications/docile-1.4.1.gemspec +22 -0
  1106. data/vendor/bundle/ruby/3.3.0/specifications/dry-core-1.2.0.gemspec +44 -0
  1107. data/vendor/bundle/ruby/3.3.0/specifications/dry-inflector-1.3.1.gemspec +38 -0
  1108. data/vendor/bundle/ruby/3.3.0/specifications/dry-logic-1.6.0.gemspec +38 -0
  1109. data/vendor/bundle/ruby/3.3.0/specifications/dry-struct-1.8.0.gemspec +38 -0
  1110. data/vendor/bundle/ruby/3.3.0/specifications/dry-types-1.9.1.gemspec +53 -0
  1111. data/vendor/bundle/ruby/3.3.0/specifications/ice_nine-0.11.2.gemspec +32 -0
  1112. data/vendor/bundle/ruby/3.3.0/specifications/logger-1.7.0.gemspec +22 -0
  1113. data/vendor/bundle/ruby/3.3.0/specifications/rake-13.3.1.gemspec +26 -0
  1114. data/vendor/bundle/ruby/3.3.0/specifications/rspec-3.13.2.gemspec +39 -0
  1115. data/vendor/bundle/ruby/3.3.0/specifications/rspec-core-3.13.6.gemspec +37 -0
  1116. data/vendor/bundle/ruby/3.3.0/specifications/rspec-expectations-3.13.5.gemspec +36 -0
  1117. data/vendor/bundle/ruby/3.3.0/specifications/rspec-mocks-3.13.7.gemspec +36 -0
  1118. data/vendor/bundle/ruby/3.3.0/specifications/rspec-support-3.13.7.gemspec +36 -0
  1119. data/vendor/bundle/ruby/3.3.0/specifications/simplecov-0.22.0.gemspec +36 -0
  1120. data/vendor/bundle/ruby/3.3.0/specifications/simplecov-html-0.13.2.gemspec +22 -0
  1121. data/vendor/bundle/ruby/3.3.0/specifications/simplecov_json_formatter-0.1.4.gemspec +21 -0
  1122. data/vendor/bundle/ruby/3.3.0/specifications/terraform-synthesizer-0.0.28.gemspec +38 -0
  1123. data/vendor/bundle/ruby/3.3.0/specifications/zeitwerk-2.7.5.gemspec +22 -0
  1124. metadata +1120 -9
@@ -0,0 +1,379 @@
1
+ require 'thread'
2
+ require 'concurrent/atomic/atomic_reference'
3
+ require 'concurrent/atomic/atomic_fixnum'
4
+ require 'concurrent/errors'
5
+ require 'concurrent/synchronization/object'
6
+ require 'concurrent/synchronization/lock'
7
+ require 'concurrent/atomic/lock_local_var'
8
+
9
+ module Concurrent
10
+
11
+ # Re-entrant read-write lock implementation
12
+ #
13
+ # Allows any number of concurrent readers, but only one concurrent writer
14
+ # (And while the "write" lock is taken, no read locks can be obtained either.
15
+ # Hence, the write lock can also be called an "exclusive" lock.)
16
+ #
17
+ # If another thread has taken a read lock, any thread which wants a write lock
18
+ # will block until all the readers release their locks. However, once a thread
19
+ # starts waiting to obtain a write lock, any additional readers that come along
20
+ # will also wait (so writers are not starved).
21
+ #
22
+ # A thread can acquire both a read and write lock at the same time. A thread can
23
+ # also acquire a read lock OR a write lock more than once. Only when the read (or
24
+ # write) lock is released as many times as it was acquired, will the thread
25
+ # actually let it go, allowing other threads which might have been waiting
26
+ # to proceed. Therefore the lock can be upgraded by first acquiring
27
+ # read lock and then write lock and that the lock can be downgraded by first
28
+ # having both read and write lock a releasing just the write lock.
29
+ #
30
+ # If both read and write locks are acquired by the same thread, it is not strictly
31
+ # necessary to release them in the same order they were acquired. In other words,
32
+ # the following code is legal:
33
+ #
34
+ # @example
35
+ # lock = Concurrent::ReentrantReadWriteLock.new
36
+ # lock.acquire_write_lock
37
+ # lock.acquire_read_lock
38
+ # lock.release_write_lock
39
+ # # At this point, the current thread is holding only a read lock, not a write
40
+ # # lock. So other threads can take read locks, but not a write lock.
41
+ # lock.release_read_lock
42
+ # # Now the current thread is not holding either a read or write lock, so
43
+ # # another thread could potentially acquire a write lock.
44
+ #
45
+ # This implementation was inspired by `java.util.concurrent.ReentrantReadWriteLock`.
46
+ #
47
+ # @example
48
+ # lock = Concurrent::ReentrantReadWriteLock.new
49
+ # lock.with_read_lock { data.retrieve }
50
+ # lock.with_write_lock { data.modify! }
51
+ #
52
+ # @see http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/locks/ReentrantReadWriteLock.html java.util.concurrent.ReentrantReadWriteLock
53
+ class ReentrantReadWriteLock < Synchronization::Object
54
+
55
+ # Implementation notes:
56
+ #
57
+ # A goal is to make the uncontended path for both readers/writers mutex-free
58
+ # Only if there is reader-writer or writer-writer contention, should mutexes be used
59
+ # Otherwise, a single CAS operation is all we need to acquire/release a lock
60
+ #
61
+ # Internal state is represented by a single integer ("counter"), and updated
62
+ # using atomic compare-and-swap operations
63
+ # When the counter is 0, the lock is free
64
+ # Each thread which has one OR MORE read locks increments the counter by 1
65
+ # (and decrements by 1 when releasing the read lock)
66
+ # The counter is increased by (1 << 15) for each writer waiting to acquire the
67
+ # write lock, and by (1 << 29) if the write lock is taken
68
+ #
69
+ # Additionally, each thread uses a thread-local variable to count how many times
70
+ # it has acquired a read lock, AND how many times it has acquired a write lock.
71
+ # It uses a similar trick; an increment of 1 means a read lock was taken, and
72
+ # an increment of (1 << 15) means a write lock was taken
73
+ # This is what makes re-entrancy possible
74
+ #
75
+ # 2 rules are followed to ensure good liveness properties:
76
+ # 1) Once a writer has queued up and is waiting for a write lock, no other thread
77
+ # can take a lock without waiting
78
+ # 2) When a write lock is released, readers are given the "first chance" to wake
79
+ # up and acquire a read lock
80
+ # Following these rules means readers and writers tend to "take turns", so neither
81
+ # can starve the other, even under heavy contention
82
+
83
+ # @!visibility private
84
+ READER_BITS = 15
85
+ # @!visibility private
86
+ WRITER_BITS = 14
87
+
88
+ # Used with @Counter:
89
+ # @!visibility private
90
+ WAITING_WRITER = 1 << READER_BITS
91
+ # @!visibility private
92
+ RUNNING_WRITER = 1 << (READER_BITS + WRITER_BITS)
93
+ # @!visibility private
94
+ MAX_READERS = WAITING_WRITER - 1
95
+ # @!visibility private
96
+ MAX_WRITERS = RUNNING_WRITER - MAX_READERS - 1
97
+
98
+ # Used with @HeldCount:
99
+ # @!visibility private
100
+ WRITE_LOCK_HELD = 1 << READER_BITS
101
+ # @!visibility private
102
+ READ_LOCK_MASK = WRITE_LOCK_HELD - 1
103
+ # @!visibility private
104
+ WRITE_LOCK_MASK = MAX_WRITERS
105
+
106
+ safe_initialization!
107
+
108
+ # Create a new `ReentrantReadWriteLock` in the unlocked state.
109
+ def initialize
110
+ super()
111
+ @Counter = AtomicFixnum.new(0) # single integer which represents lock state
112
+ @ReadQueue = Synchronization::Lock.new # used to queue waiting readers
113
+ @WriteQueue = Synchronization::Lock.new # used to queue waiting writers
114
+ @HeldCount = LockLocalVar.new(0) # indicates # of R & W locks held by this thread
115
+ end
116
+
117
+ # Execute a block operation within a read lock.
118
+ #
119
+ # @yield the task to be performed within the lock.
120
+ #
121
+ # @return [Object] the result of the block operation.
122
+ #
123
+ # @raise [ArgumentError] when no block is given.
124
+ # @raise [Concurrent::ResourceLimitError] if the maximum number of readers
125
+ # is exceeded.
126
+ def with_read_lock
127
+ raise ArgumentError.new('no block given') unless block_given?
128
+ acquire_read_lock
129
+ begin
130
+ yield
131
+ ensure
132
+ release_read_lock
133
+ end
134
+ end
135
+
136
+ # Execute a block operation within a write lock.
137
+ #
138
+ # @yield the task to be performed within the lock.
139
+ #
140
+ # @return [Object] the result of the block operation.
141
+ #
142
+ # @raise [ArgumentError] when no block is given.
143
+ # @raise [Concurrent::ResourceLimitError] if the maximum number of readers
144
+ # is exceeded.
145
+ def with_write_lock
146
+ raise ArgumentError.new('no block given') unless block_given?
147
+ acquire_write_lock
148
+ begin
149
+ yield
150
+ ensure
151
+ release_write_lock
152
+ end
153
+ end
154
+
155
+ # Acquire a read lock. If a write lock is held by another thread, will block
156
+ # until it is released.
157
+ #
158
+ # @return [Boolean] true if the lock is successfully acquired
159
+ #
160
+ # @raise [Concurrent::ResourceLimitError] if the maximum number of readers
161
+ # is exceeded.
162
+ def acquire_read_lock
163
+ if (held = @HeldCount.value) > 0
164
+ # If we already have a lock, there's no need to wait
165
+ if held & READ_LOCK_MASK == 0
166
+ # But we do need to update the counter, if we were holding a write
167
+ # lock but not a read lock
168
+ @Counter.update { |c| c + 1 }
169
+ end
170
+ @HeldCount.value = held + 1
171
+ return true
172
+ end
173
+
174
+ while true
175
+ c = @Counter.value
176
+ raise ResourceLimitError.new('Too many reader threads') if max_readers?(c)
177
+
178
+ # If a writer is waiting OR running when we first queue up, we need to wait
179
+ if waiting_or_running_writer?(c)
180
+ # Before going to sleep, check again with the ReadQueue mutex held
181
+ @ReadQueue.synchronize do
182
+ @ReadQueue.ns_wait if waiting_or_running_writer?
183
+ end
184
+ # Note: the above 'synchronize' block could have used #wait_until,
185
+ # but that waits repeatedly in a loop, checking the wait condition
186
+ # each time it wakes up (to protect against spurious wakeups)
187
+ # But we are already in a loop, which is only broken when we successfully
188
+ # acquire the lock! So we don't care about spurious wakeups, and would
189
+ # rather not pay the extra overhead of using #wait_until
190
+
191
+ # After a reader has waited once, they are allowed to "barge" ahead of waiting writers
192
+ # But if a writer is *running*, the reader still needs to wait (naturally)
193
+ while true
194
+ c = @Counter.value
195
+ if running_writer?(c)
196
+ @ReadQueue.synchronize do
197
+ @ReadQueue.ns_wait if running_writer?
198
+ end
199
+ elsif @Counter.compare_and_set(c, c+1)
200
+ @HeldCount.value = held + 1
201
+ return true
202
+ end
203
+ end
204
+ elsif @Counter.compare_and_set(c, c+1)
205
+ @HeldCount.value = held + 1
206
+ return true
207
+ end
208
+ end
209
+ end
210
+
211
+ # Try to acquire a read lock and return true if we succeed. If it cannot be
212
+ # acquired immediately, return false.
213
+ #
214
+ # @return [Boolean] true if the lock is successfully acquired
215
+ def try_read_lock
216
+ if (held = @HeldCount.value) > 0
217
+ if held & READ_LOCK_MASK == 0
218
+ # If we hold a write lock, but not a read lock...
219
+ @Counter.update { |c| c + 1 }
220
+ end
221
+ @HeldCount.value = held + 1
222
+ return true
223
+ else
224
+ c = @Counter.value
225
+ if !waiting_or_running_writer?(c) && @Counter.compare_and_set(c, c+1)
226
+ @HeldCount.value = held + 1
227
+ return true
228
+ end
229
+ end
230
+ false
231
+ end
232
+
233
+ # Release a previously acquired read lock.
234
+ #
235
+ # @return [Boolean] true if the lock is successfully released
236
+ def release_read_lock
237
+ held = @HeldCount.value = @HeldCount.value - 1
238
+ rlocks_held = held & READ_LOCK_MASK
239
+ if rlocks_held == 0
240
+ c = @Counter.update { |counter| counter - 1 }
241
+ # If one or more writers were waiting, and we were the last reader, wake a writer up
242
+ if waiting_or_running_writer?(c) && running_readers(c) == 0
243
+ @WriteQueue.signal
244
+ end
245
+ elsif rlocks_held == READ_LOCK_MASK
246
+ raise IllegalOperationError, "Cannot release a read lock which is not held"
247
+ end
248
+ true
249
+ end
250
+
251
+ # Acquire a write lock. Will block and wait for all active readers and writers.
252
+ #
253
+ # @return [Boolean] true if the lock is successfully acquired
254
+ #
255
+ # @raise [Concurrent::ResourceLimitError] if the maximum number of writers
256
+ # is exceeded.
257
+ def acquire_write_lock
258
+ if (held = @HeldCount.value) >= WRITE_LOCK_HELD
259
+ # if we already have a write (exclusive) lock, there's no need to wait
260
+ @HeldCount.value = held + WRITE_LOCK_HELD
261
+ return true
262
+ end
263
+
264
+ while true
265
+ c = @Counter.value
266
+ raise ResourceLimitError.new('Too many writer threads') if max_writers?(c)
267
+
268
+ # To go ahead and take the lock without waiting, there must be no writer
269
+ # running right now, AND no writers who came before us still waiting to
270
+ # acquire the lock
271
+ # Additionally, if any read locks have been taken, we must hold all of them
272
+ if held > 0 && @Counter.compare_and_set(1, c+RUNNING_WRITER)
273
+ # If we are the only one reader and successfully swap the RUNNING_WRITER bit on, then we can go ahead
274
+ @HeldCount.value = held + WRITE_LOCK_HELD
275
+ return true
276
+ elsif @Counter.compare_and_set(c, c+WAITING_WRITER)
277
+ while true
278
+ # Now we have successfully incremented, so no more readers will be able to increment
279
+ # (they will wait instead)
280
+ # However, readers OR writers could decrement right here
281
+ @WriteQueue.synchronize do
282
+ # So we have to do another check inside the synchronized section
283
+ # If a writer OR another reader is running, then go to sleep
284
+ c = @Counter.value
285
+ @WriteQueue.ns_wait if running_writer?(c) || running_readers(c) != held
286
+ end
287
+ # Note: if you are thinking of replacing the above 'synchronize' block
288
+ # with #wait_until, read the comment in #acquire_read_lock first!
289
+
290
+ # We just came out of a wait
291
+ # If we successfully turn the RUNNING_WRITER bit on with an atomic swap,
292
+ # then we are OK to stop waiting and go ahead
293
+ # Otherwise go back and wait again
294
+ c = @Counter.value
295
+ if !running_writer?(c) &&
296
+ running_readers(c) == held &&
297
+ @Counter.compare_and_set(c, c+RUNNING_WRITER-WAITING_WRITER)
298
+ @HeldCount.value = held + WRITE_LOCK_HELD
299
+ return true
300
+ end
301
+ end
302
+ end
303
+ end
304
+ end
305
+
306
+ # Try to acquire a write lock and return true if we succeed. If it cannot be
307
+ # acquired immediately, return false.
308
+ #
309
+ # @return [Boolean] true if the lock is successfully acquired
310
+ def try_write_lock
311
+ if (held = @HeldCount.value) >= WRITE_LOCK_HELD
312
+ @HeldCount.value = held + WRITE_LOCK_HELD
313
+ return true
314
+ else
315
+ c = @Counter.value
316
+ if !waiting_or_running_writer?(c) &&
317
+ running_readers(c) == held &&
318
+ @Counter.compare_and_set(c, c+RUNNING_WRITER)
319
+ @HeldCount.value = held + WRITE_LOCK_HELD
320
+ return true
321
+ end
322
+ end
323
+ false
324
+ end
325
+
326
+ # Release a previously acquired write lock.
327
+ #
328
+ # @return [Boolean] true if the lock is successfully released
329
+ def release_write_lock
330
+ held = @HeldCount.value = @HeldCount.value - WRITE_LOCK_HELD
331
+ wlocks_held = held & WRITE_LOCK_MASK
332
+ if wlocks_held == 0
333
+ c = @Counter.update { |counter| counter - RUNNING_WRITER }
334
+ @ReadQueue.broadcast
335
+ @WriteQueue.signal if waiting_writers(c) > 0
336
+ elsif wlocks_held == WRITE_LOCK_MASK
337
+ raise IllegalOperationError, "Cannot release a write lock which is not held"
338
+ end
339
+ true
340
+ end
341
+
342
+ private
343
+
344
+ # @!visibility private
345
+ def running_readers(c = @Counter.value)
346
+ c & MAX_READERS
347
+ end
348
+
349
+ # @!visibility private
350
+ def running_readers?(c = @Counter.value)
351
+ (c & MAX_READERS) > 0
352
+ end
353
+
354
+ # @!visibility private
355
+ def running_writer?(c = @Counter.value)
356
+ c >= RUNNING_WRITER
357
+ end
358
+
359
+ # @!visibility private
360
+ def waiting_writers(c = @Counter.value)
361
+ (c & MAX_WRITERS) >> READER_BITS
362
+ end
363
+
364
+ # @!visibility private
365
+ def waiting_or_running_writer?(c = @Counter.value)
366
+ c >= WAITING_WRITER
367
+ end
368
+
369
+ # @!visibility private
370
+ def max_readers?(c = @Counter.value)
371
+ (c & MAX_READERS) == MAX_READERS
372
+ end
373
+
374
+ # @!visibility private
375
+ def max_writers?(c = @Counter.value)
376
+ (c & MAX_WRITERS) == MAX_WRITERS
377
+ end
378
+ end
379
+ end
@@ -0,0 +1,163 @@
1
+ require 'concurrent/atomic/mutex_semaphore'
2
+
3
+ module Concurrent
4
+
5
+ ###################################################################
6
+
7
+ # @!macro semaphore_method_initialize
8
+ #
9
+ # Create a new `Semaphore` with the initial `count`.
10
+ #
11
+ # @param [Fixnum] count the initial count
12
+ #
13
+ # @raise [ArgumentError] if `count` is not an integer
14
+
15
+ # @!macro semaphore_method_acquire
16
+ #
17
+ # Acquires the given number of permits from this semaphore,
18
+ # blocking until all are available. If a block is given,
19
+ # yields to it and releases the permits afterwards.
20
+ #
21
+ # @param [Fixnum] permits Number of permits to acquire
22
+ #
23
+ # @raise [ArgumentError] if `permits` is not an integer or is less than zero
24
+ #
25
+ # @return [nil, BasicObject] Without a block, `nil` is returned. If a block
26
+ # is given, its return value is returned.
27
+
28
+ # @!macro semaphore_method_available_permits
29
+ #
30
+ # Returns the current number of permits available in this semaphore.
31
+ #
32
+ # @return [Integer]
33
+
34
+ # @!macro semaphore_method_drain_permits
35
+ #
36
+ # Acquires and returns all permits that are immediately available.
37
+ #
38
+ # @return [Integer]
39
+
40
+ # @!macro semaphore_method_try_acquire
41
+ #
42
+ # Acquires the given number of permits from this semaphore,
43
+ # only if all are available at the time of invocation or within
44
+ # `timeout` interval. If a block is given, yields to it if the permits
45
+ # were successfully acquired, and releases them afterward, returning the
46
+ # block's return value.
47
+ #
48
+ # @param [Fixnum] permits the number of permits to acquire
49
+ #
50
+ # @param [Fixnum] timeout the number of seconds to wait for the counter
51
+ # or `nil` to return immediately
52
+ #
53
+ # @raise [ArgumentError] if `permits` is not an integer or is less than zero
54
+ #
55
+ # @return [true, false, nil, BasicObject] `false` if no permits are
56
+ # available, `true` when acquired a permit. If a block is given, the
57
+ # block's return value is returned if the permits were acquired; if not,
58
+ # `nil` is returned.
59
+
60
+ # @!macro semaphore_method_release
61
+ #
62
+ # Releases the given number of permits, returning them to the semaphore.
63
+ #
64
+ # @param [Fixnum] permits Number of permits to return to the semaphore.
65
+ #
66
+ # @raise [ArgumentError] if `permits` is not a number or is less than zero
67
+ #
68
+ # @return [nil]
69
+
70
+ ###################################################################
71
+
72
+ # @!macro semaphore_public_api
73
+ #
74
+ # @!method initialize(count)
75
+ # @!macro semaphore_method_initialize
76
+ #
77
+ # @!method acquire(permits = 1)
78
+ # @!macro semaphore_method_acquire
79
+ #
80
+ # @!method available_permits
81
+ # @!macro semaphore_method_available_permits
82
+ #
83
+ # @!method drain_permits
84
+ # @!macro semaphore_method_drain_permits
85
+ #
86
+ # @!method try_acquire(permits = 1, timeout = nil)
87
+ # @!macro semaphore_method_try_acquire
88
+ #
89
+ # @!method release(permits = 1)
90
+ # @!macro semaphore_method_release
91
+
92
+ ###################################################################
93
+
94
+ # @!visibility private
95
+ # @!macro internal_implementation_note
96
+ SemaphoreImplementation = if Concurrent.on_jruby?
97
+ require 'concurrent/utility/native_extension_loader'
98
+ JavaSemaphore
99
+ else
100
+ MutexSemaphore
101
+ end
102
+ private_constant :SemaphoreImplementation
103
+
104
+ # @!macro semaphore
105
+ #
106
+ # A counting semaphore. Conceptually, a semaphore maintains a set of
107
+ # permits. Each {#acquire} blocks if necessary until a permit is
108
+ # available, and then takes it. Each {#release} adds a permit, potentially
109
+ # releasing a blocking acquirer.
110
+ # However, no actual permit objects are used; the Semaphore just keeps a
111
+ # count of the number available and acts accordingly.
112
+ # Alternatively, permits may be acquired within a block, and automatically
113
+ # released after the block finishes executing.
114
+ #
115
+ # @!macro semaphore_public_api
116
+ # @example
117
+ # semaphore = Concurrent::Semaphore.new(2)
118
+ #
119
+ # t1 = Thread.new do
120
+ # semaphore.acquire
121
+ # puts "Thread 1 acquired semaphore"
122
+ # end
123
+ #
124
+ # t2 = Thread.new do
125
+ # semaphore.acquire
126
+ # puts "Thread 2 acquired semaphore"
127
+ # end
128
+ #
129
+ # t3 = Thread.new do
130
+ # semaphore.acquire
131
+ # puts "Thread 3 acquired semaphore"
132
+ # end
133
+ #
134
+ # t4 = Thread.new do
135
+ # sleep(2)
136
+ # puts "Thread 4 releasing semaphore"
137
+ # semaphore.release
138
+ # end
139
+ #
140
+ # [t1, t2, t3, t4].each(&:join)
141
+ #
142
+ # # prints:
143
+ # # Thread 3 acquired semaphore
144
+ # # Thread 2 acquired semaphore
145
+ # # Thread 4 releasing semaphore
146
+ # # Thread 1 acquired semaphore
147
+ #
148
+ # @example
149
+ # semaphore = Concurrent::Semaphore.new(1)
150
+ #
151
+ # puts semaphore.available_permits
152
+ # semaphore.acquire do
153
+ # puts semaphore.available_permits
154
+ # end
155
+ # puts semaphore.available_permits
156
+ #
157
+ # # prints:
158
+ # # 1
159
+ # # 0
160
+ # # 1
161
+ class Semaphore < SemaphoreImplementation
162
+ end
163
+ end
@@ -0,0 +1,111 @@
1
+ require 'concurrent/constants'
2
+ require_relative 'locals'
3
+
4
+ module Concurrent
5
+
6
+ # A `ThreadLocalVar` is a variable where the value is different for each thread.
7
+ # Each variable may have a default value, but when you modify the variable only
8
+ # the current thread will ever see that change.
9
+ #
10
+ # This is similar to Ruby's built-in thread-local variables (`Thread#thread_variable_get`),
11
+ # but with these major advantages:
12
+ # * `ThreadLocalVar` has its own identity, it doesn't need a Symbol.
13
+ # * Each Ruby's built-in thread-local variable leaks some memory forever (it's a Symbol held forever on the thread),
14
+ # so it's only OK to create a small amount of them.
15
+ # `ThreadLocalVar` has no such issue and it is fine to create many of them.
16
+ # * Ruby's built-in thread-local variables leak forever the value set on each thread (unless set to nil explicitly).
17
+ # `ThreadLocalVar` automatically removes the mapping for each thread once the `ThreadLocalVar` instance is GC'd.
18
+ #
19
+ # @!macro thread_safe_variable_comparison
20
+ #
21
+ # @example
22
+ # v = ThreadLocalVar.new(14)
23
+ # v.value #=> 14
24
+ # v.value = 2
25
+ # v.value #=> 2
26
+ #
27
+ # @example
28
+ # v = ThreadLocalVar.new(14)
29
+ #
30
+ # t1 = Thread.new do
31
+ # v.value #=> 14
32
+ # v.value = 1
33
+ # v.value #=> 1
34
+ # end
35
+ #
36
+ # t2 = Thread.new do
37
+ # v.value #=> 14
38
+ # v.value = 2
39
+ # v.value #=> 2
40
+ # end
41
+ #
42
+ # v.value #=> 14
43
+ class ThreadLocalVar
44
+ LOCALS = ThreadLocals.new
45
+
46
+ # Creates a thread local variable.
47
+ #
48
+ # @param [Object] default the default value when otherwise unset
49
+ # @param [Proc] default_block Optional block that gets called to obtain the
50
+ # default value for each thread
51
+ def initialize(default = nil, &default_block)
52
+ if default && block_given?
53
+ raise ArgumentError, "Cannot use both value and block as default value"
54
+ end
55
+
56
+ if block_given?
57
+ @default_block = default_block
58
+ @default = nil
59
+ else
60
+ @default_block = nil
61
+ @default = default
62
+ end
63
+
64
+ @index = LOCALS.next_index(self)
65
+ end
66
+
67
+ # Returns the value in the current thread's copy of this thread-local variable.
68
+ #
69
+ # @return [Object] the current value
70
+ def value
71
+ LOCALS.fetch(@index) { default }
72
+ end
73
+
74
+ # Sets the current thread's copy of this thread-local variable to the specified value.
75
+ #
76
+ # @param [Object] value the value to set
77
+ # @return [Object] the new value
78
+ def value=(value)
79
+ LOCALS.set(@index, value)
80
+ end
81
+
82
+ # Bind the given value to thread local storage during
83
+ # execution of the given block.
84
+ #
85
+ # @param [Object] value the value to bind
86
+ # @yield the operation to be performed with the bound variable
87
+ # @return [Object] the value
88
+ def bind(value)
89
+ if block_given?
90
+ old_value = self.value
91
+ self.value = value
92
+ begin
93
+ yield
94
+ ensure
95
+ self.value = old_value
96
+ end
97
+ end
98
+ end
99
+
100
+ protected
101
+
102
+ # @!visibility private
103
+ def default
104
+ if @default_block
105
+ self.value = @default_block.call
106
+ else
107
+ @default
108
+ end
109
+ end
110
+ end
111
+ end
@@ -0,0 +1,37 @@
1
+ require 'concurrent/errors'
2
+
3
+ module Concurrent
4
+
5
+ # Define update methods that use direct paths
6
+ #
7
+ # @!visibility private
8
+ # @!macro internal_implementation_note
9
+ module AtomicDirectUpdate
10
+ def update
11
+ true until compare_and_set(old_value = get, new_value = yield(old_value))
12
+ new_value
13
+ end
14
+
15
+ def try_update
16
+ old_value = get
17
+ new_value = yield old_value
18
+
19
+ return unless compare_and_set old_value, new_value
20
+
21
+ new_value
22
+ end
23
+
24
+ def try_update!
25
+ old_value = get
26
+ new_value = yield old_value
27
+ unless compare_and_set(old_value, new_value)
28
+ if $VERBOSE
29
+ raise ConcurrentUpdateError, "Update failed"
30
+ else
31
+ raise ConcurrentUpdateError, "Update failed", ConcurrentUpdateError::CONC_UP_ERR_BACKTRACE
32
+ end
33
+ end
34
+ new_value
35
+ end
36
+ end
37
+ end