code_ownership 2.1.0 → 2.1.2
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.
- checksums.yaml +4 -4
- data/.cargo/config +2 -2
- data/Cargo.lock +10 -16
- data/README.md +8 -8
- data/ext/cargo-vendor/codeowners-0.3.2/.cargo-checksum.json +1 -0
- data/ext/cargo-vendor/codeowners-0.3.2/.github/CODEOWNERS +1 -0
- data/ext/cargo-vendor/codeowners-0.3.2/AGENTS.md +38 -0
- data/ext/cargo-vendor/codeowners-0.3.2/CLAUDE.md +1 -0
- data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/Cargo.lock +1 -1
- data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/Cargo.toml +17 -1
- data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/README.md +11 -1
- data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/cli.rs +9 -5
- data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/config.rs +81 -1
- data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/crosscheck.rs +5 -8
- data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/ownership/codeowners_file_parser.rs +3 -3
- data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/ownership/file_owner_resolver.rs +3 -1
- data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/ownership/mapper/package_mapper.rs +2 -2
- data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/ownership/mapper.rs +2 -2
- data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/ownership/validator.rs +15 -10
- data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/ownership.rs +1 -0
- data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/project.rs +3 -0
- data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/project_builder.rs +111 -44
- data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/runner/api.rs +7 -6
- data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/runner/types.rs +2 -1
- data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/runner.rs +67 -16
- data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/tracked_files.rs +29 -1
- data/ext/cargo-vendor/codeowners-0.3.2/tests/codeowners_path_test.rs +92 -0
- data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/common/mod.rs +2 -1
- data/ext/cargo-vendor/codeowners-0.3.2/tests/executable_name_config_test.rs +67 -0
- data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/custom_codeowners_path/config/code_ownership.yml +11 -0
- data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/custom_codeowners_path/config/teams/test_team.yml +6 -0
- data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/custom_codeowners_path/docs/CODEOWNERS +14 -0
- data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/custom_codeowners_path/expected/CODEOWNERS +14 -0
- data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/custom_codeowners_path/ruby/app/models/test.rb +3 -0
- data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/custom_executable_name/.github/CODEOWNERS +10 -0
- data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/custom_executable_name/app/foo.rb +3 -0
- data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/custom_executable_name/config/code_ownership.yml +4 -0
- data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/custom_executable_name/config/teams/foo.yml +5 -0
- data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/custom_executable_name/config/teams/payments.yml +6 -0
- data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/custom_executable_name/ruby/app/payments/foo.rb +4 -0
- data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/default_executable_name/.github/CODEOWNERS +11 -0
- data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/default_executable_name/app/bar.rb +3 -0
- data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/default_executable_name/config/code_ownership.yml +5 -0
- data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/default_executable_name/config/teams/bar.yml +5 -0
- data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/missing_github_team/.github/CODEOWNERS +10 -0
- data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/missing_github_team/config/code_ownership.yml +10 -0
- data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/missing_github_team/config/teams/bad_team.yml +1 -0
- data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/missing_github_team/config/teams/good.yml +3 -0
- data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/valid_project/gems/pets/dog.rb +5 -0
- data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/git_stage_test.rs +4 -1
- data/ext/cargo-vendor/codeowners-0.3.2/tests/missing_github_team_test.rs +23 -0
- data/ext/cargo-vendor/codeowners-0.3.2/tests/run_config_executable_override_test.rs +98 -0
- data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/runner_api.rs +8 -4
- data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/valid_project_test.rs +3 -3
- data/ext/cargo-vendor/codeowners-0.3.2/tests/validate_files_test.rs +378 -0
- data/ext/cargo-vendor/magnus-0.8.2/.cargo-checksum.json +1 -0
- data/ext/cargo-vendor/magnus-0.8.2/.cargo_vcs_info.json +6 -0
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/CHANGELOG.md +66 -1
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/Cargo.lock +243 -9
- data/ext/cargo-vendor/magnus-0.8.2/Cargo.toml +277 -0
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/Cargo.toml.orig +11 -6
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/README.md +75 -23
- data/ext/cargo-vendor/magnus-0.8.2/build.rs +15 -0
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/complete_object/test/temperature_test.rb +4 -4
- data/ext/cargo-vendor/magnus-0.8.2/examples/inheritance.rs +66 -0
- data/ext/cargo-vendor/magnus-0.8.2/examples/mut_point.rs +116 -0
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/api.rs +4 -3
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/class.rs +9 -7
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/encoding.rs +5 -5
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/error.rs +12 -3
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/fiber.rs +5 -5
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/gc.rs +3 -3
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/integer.rs +134 -0
- data/ext/cargo-vendor/magnus-0.8.2/src/io.rs +230 -0
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/lib.rs +53 -54
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/macros.rs +2 -2
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/method.rs +14 -100
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/module.rs +1 -1
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/mutex.rs +1 -1
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_array.rs +2 -2
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_bignum.rs +100 -3
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_hash.rs +63 -1
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_string.rs +31 -231
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_typed_data.rs +6 -9
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/rb_sys.rs +4 -4
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/scan_args.rs +3 -3
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/thread.rs +16 -10
- data/ext/cargo-vendor/magnus-0.8.2/src/time.rs +462 -0
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/try_convert.rs +64 -2
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/typed_data.rs +113 -11
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/value/flonum.rs +1 -1
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/value.rs +83 -6
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/test +1 -1
- data/ext/cargo-vendor/magnus-0.8.2/tests/hash.rs +44 -0
- data/ext/cargo-vendor/magnus-0.8.2/tests/io.rs +62 -0
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/return_iter.rs +1 -1
- data/ext/cargo-vendor/magnus-0.8.2/tests/string.rs +23 -0
- data/ext/cargo-vendor/magnus-0.8.2/tests/time.rs +71 -0
- data/ext/cargo-vendor/magnus-macros-0.8.0/.cargo-checksum.json +1 -0
- data/ext/cargo-vendor/magnus-macros-0.8.0/.cargo_vcs_info.json +6 -0
- data/ext/cargo-vendor/magnus-macros-0.8.0/Cargo.lock +47 -0
- data/ext/cargo-vendor/{magnus-macros-0.6.0 → magnus-macros-0.8.0}/Cargo.toml +10 -1
- data/ext/cargo-vendor/{magnus-macros-0.6.0 → magnus-macros-0.8.0}/Cargo.toml.orig +1 -1
- data/ext/cargo-vendor/magnus-macros-0.8.0/src/lib.rs +545 -0
- data/ext/cargo-vendor/{magnus-macros-0.6.0 → magnus-macros-0.8.0}/src/typed_data.rs +3 -3
- data/ext/cargo-vendor/{magnus-macros-0.6.0 → magnus-macros-0.8.0}/src/util.rs +1 -1
- data/ext/cargo-vendor/serde_magnus-0.10.0/.cargo-checksum.json +1 -0
- data/ext/cargo-vendor/serde_magnus-0.10.0/.cargo_vcs_info.json +6 -0
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/Cargo.lock +77 -75
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/Cargo.toml +3 -3
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/Cargo.toml.orig +7 -4
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/README.md +8 -5
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/de/array_deserializer.rs +12 -8
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/de/array_enumerator.rs +12 -7
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/de/deserializer.rs +21 -18
- data/ext/cargo-vendor/serde_magnus-0.10.0/src/de/enum_deserializer.rs +35 -0
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/de/hash_deserializer.rs +18 -11
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/de/mod.rs +76 -76
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/de/variant_deserializer.rs +10 -9
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/error.rs +10 -4
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/lib.rs +6 -5
- data/ext/cargo-vendor/serde_magnus-0.10.0/src/ser/enums.rs +11 -0
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/ser/map_serializer.rs +11 -12
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/ser/mod.rs +53 -50
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/ser/seq_serializer.rs +11 -10
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/ser/serializer.rs +50 -34
- data/ext/cargo-vendor/serde_magnus-0.10.0/src/ser/struct_serializer.rs +40 -0
- data/ext/cargo-vendor/serde_magnus-0.10.0/src/ser/struct_variant_serializer.rs +45 -0
- data/ext/cargo-vendor/serde_magnus-0.10.0/src/ser/tuple_variant_serializer.rs +38 -0
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/deserializing_arrays.rs +3 -3
- data/ext/cargo-vendor/serde_magnus-0.10.0/tests/deserializing_booleans.rs +15 -0
- data/ext/cargo-vendor/serde_magnus-0.10.0/tests/deserializing_enums.rs +39 -0
- data/ext/cargo-vendor/serde_magnus-0.10.0/tests/deserializing_floats.rs +12 -0
- data/ext/cargo-vendor/serde_magnus-0.10.0/tests/deserializing_integers.rs +18 -0
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/deserializing_maps.rs +3 -2
- data/ext/cargo-vendor/serde_magnus-0.10.0/tests/deserializing_options.rs +15 -0
- data/ext/cargo-vendor/serde_magnus-0.10.0/tests/deserializing_results.rs +17 -0
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/deserializing_strings.rs +7 -7
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/deserializing_structs.rs +9 -9
- data/ext/cargo-vendor/serde_magnus-0.10.0/tests/deserializing_tuples.rs +27 -0
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/deserializing_vecs.rs +3 -3
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_arrays.rs +3 -3
- data/ext/cargo-vendor/serde_magnus-0.10.0/tests/serializing_booleans.rs +15 -0
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_enums.rs +9 -7
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_floats.rs +2 -2
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_integers.rs +4 -4
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_maps.rs +3 -2
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_options.rs +3 -3
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_results.rs +5 -4
- data/ext/cargo-vendor/serde_magnus-0.10.0/tests/serializing_strings.rs +30 -0
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_structs.rs +15 -7
- data/ext/cargo-vendor/serde_magnus-0.10.0/tests/serializing_tuples.rs +35 -0
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_vecs.rs +3 -3
- data/ext/cargo-vendor/unicode-ident-1.0.19/.cargo-checksum.json +1 -1
- data/ext/code_ownership/Cargo.toml +3 -3
- data/ext/code_ownership/extconf.rb +2 -1
- data/ext/code_ownership/src/lib.rs +18 -18
- data/lib/code_ownership/cli.rb +1 -0
- data/lib/code_ownership/private/file_path_finder.rb +22 -10
- data/lib/code_ownership/private/file_path_team_cache.rb +5 -9
- data/lib/code_ownership/private/for_file_output_builder.rb +0 -1
- data/lib/code_ownership/private/team_finder.rb +9 -16
- data/lib/code_ownership/version.rb +2 -2
- data/lib/code_ownership.rb +14 -17
- metadata +359 -337
- data/ext/cargo-vendor/codeowners-0.3.0/.cargo-checksum.json +0 -1
- data/ext/cargo-vendor/codeowners-0.3.0/tests/validate_files_test.rs +0 -144
- data/ext/cargo-vendor/magnus-0.7.1/.cargo-checksum.json +0 -1
- data/ext/cargo-vendor/magnus-0.7.1/.cargo_vcs_info.json +0 -6
- data/ext/cargo-vendor/magnus-0.7.1/Cargo.toml +0 -95
- data/ext/cargo-vendor/magnus-0.7.1/build.rs +0 -5
- data/ext/cargo-vendor/magnus-0.7.1/examples/mut_point.rs +0 -60
- data/ext/cargo-vendor/magnus-0.7.1/src/time.rs +0 -190
- data/ext/cargo-vendor/magnus-0.7.1/tests/hash.rs +0 -25
- data/ext/cargo-vendor/magnus-0.7.1/tests/string.rs +0 -13
- data/ext/cargo-vendor/magnus-macros-0.6.0/.cargo-checksum.json +0 -1
- data/ext/cargo-vendor/magnus-macros-0.6.0/.cargo_vcs_info.json +0 -6
- data/ext/cargo-vendor/magnus-macros-0.6.0/src/lib.rs +0 -401
- data/ext/cargo-vendor/rb-sys-env-0.1.2/.cargo-checksum.json +0 -1
- data/ext/cargo-vendor/rb-sys-env-0.1.2/.cargo_vcs_info.json +0 -6
- data/ext/cargo-vendor/rb-sys-env-0.1.2/Cargo.toml +0 -25
- data/ext/cargo-vendor/rb-sys-env-0.1.2/Cargo.toml.orig +0 -14
- data/ext/cargo-vendor/rb-sys-env-0.1.2/LICENSE-APACHE +0 -190
- data/ext/cargo-vendor/rb-sys-env-0.1.2/LICENSE-MIT +0 -21
- data/ext/cargo-vendor/rb-sys-env-0.1.2/readme.md +0 -119
- data/ext/cargo-vendor/rb-sys-env-0.1.2/src/defines.rs +0 -37
- data/ext/cargo-vendor/rb-sys-env-0.1.2/src/lib.rs +0 -180
- data/ext/cargo-vendor/rb-sys-env-0.1.2/src/rb_env.rs +0 -110
- data/ext/cargo-vendor/rb-sys-env-0.1.2/src/ruby_version.rs +0 -163
- data/ext/cargo-vendor/rb-sys-env-0.1.2/src/utils.rs +0 -6
- data/ext/cargo-vendor/serde_magnus-0.9.0/.cargo-checksum.json +0 -1
- data/ext/cargo-vendor/serde_magnus-0.9.0/.cargo_vcs_info.json +0 -6
- data/ext/cargo-vendor/serde_magnus-0.9.0/src/de/enum_deserializer.rs +0 -30
- data/ext/cargo-vendor/serde_magnus-0.9.0/src/ser/enums.rs +0 -11
- data/ext/cargo-vendor/serde_magnus-0.9.0/src/ser/struct_serializer.rs +0 -36
- data/ext/cargo-vendor/serde_magnus-0.9.0/src/ser/struct_variant_serializer.rs +0 -37
- data/ext/cargo-vendor/serde_magnus-0.9.0/src/ser/tuple_variant_serializer.rs +0 -33
- data/ext/cargo-vendor/serde_magnus-0.9.0/tests/deserializing_booleans.rs +0 -18
- data/ext/cargo-vendor/serde_magnus-0.9.0/tests/deserializing_enums.rs +0 -39
- data/ext/cargo-vendor/serde_magnus-0.9.0/tests/deserializing_floats.rs +0 -12
- data/ext/cargo-vendor/serde_magnus-0.9.0/tests/deserializing_integers.rs +0 -18
- data/ext/cargo-vendor/serde_magnus-0.9.0/tests/deserializing_options.rs +0 -15
- data/ext/cargo-vendor/serde_magnus-0.9.0/tests/deserializing_results.rs +0 -17
- data/ext/cargo-vendor/serde_magnus-0.9.0/tests/deserializing_tuples.rs +0 -31
- data/ext/cargo-vendor/serde_magnus-0.9.0/tests/serializing_booleans.rs +0 -15
- data/ext/cargo-vendor/serde_magnus-0.9.0/tests/serializing_strings.rs +0 -30
- data/ext/cargo-vendor/serde_magnus-0.9.0/tests/serializing_tuples.rs +0 -27
- data/ext/cargo-vendor/unicode-ident-1.0.19/tests/fst/.gitignore +0 -1
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/.github/workflows/audit.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/.github/workflows/ci.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/.github/workflows/dotslash-config.json +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/.rustfmt.toml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/.rusty-hook.toml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/dev/run_benchmarks_for_file.sh +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/dev/run_benchmarks_for_gv.sh +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/rust-toolchain.toml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/cache/file.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/cache/mod.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/cache/noop.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/common_test.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/lib.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/main.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/ownership/codeowners_query.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/ownership/file_generator.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/ownership/file_owner_finder.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/ownership/mapper/annotated_file_mapper.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/ownership/mapper/directory_mapper.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/ownership/mapper/escaper.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/ownership/mapper/team_gem_mapper.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/ownership/mapper/team_glob_mapper.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/ownership/mapper/team_yml_mapper.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/path_utils.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/project_file_builder.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/cache_test.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/crosscheck_owners_test.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/invalid_project/.github/CODEOWNERS +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/invalid_project/config/code_ownership.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/invalid_project/config/teams/payments.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/invalid_project/config/teams/payroll.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/invalid_project/gems/payroll_calculator/calculator.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/invalid_project/ruby/app/models/bank_account.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/invalid_project/ruby/app/models/blockchain.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/invalid_project/ruby/app/models/payroll.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/invalid_project/ruby/app/payments/nacha.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/invalid_project/ruby/app/services/.codeowner +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/invalid_project/ruby/app/services/multi_owned.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/invalid_project/ruby/app/unowned.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/invalid_project/ruby/packages/payroll_flow/package.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/javascript_only_project/.github/CODEOWNERS +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/javascript_only_project/.keep +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/javascript_only_project/config/code_ownership.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/javascript_only_project/config/teams/design.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/javascript_only_project/config/teams/frontend.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/javascript_only_project/frontend/apps/public/index.tsx +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/javascript_only_project/frontend/packages/dashboard/package.json +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/javascript_only_project/frontend/packages/dashboard/src/index.tsx +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/javascript_only_project/frontend/packages/ui-kit/.codeowner +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/javascript_only_project/frontend/packages/ui-kit/src/button.tsx +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0/tests/fixtures/valid_project → codeowners-0.3.2/tests/fixtures/missing_github_team}/gems/pets/dog.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/multiple-directory-owners/.github/CODEOWNERS +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/multiple-directory-owners/app/consumers/.codeowner +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/multiple-directory-owners/app/consumers/deep/nesting/nestdir/deep_file.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/multiple-directory-owners/app/consumers/one_owner.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/multiple-directory-owners/app/services/.codeowner +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/multiple-directory-owners/app/services/exciting/.codeowner +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/multiple-directory-owners/app/services/exciting/some_other_file.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/multiple-directory-owners/config/code_ownership.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/multiple-directory-owners/config/teams/bar.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/multiple-directory-owners/config/teams/foo.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/.github/CODEOWNERS +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/.ignore +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/config/code_ownership.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/config/teams/payments.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/config/teams/payroll.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/config/teams/ux.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/gems/payroll_calculator/calculator.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/javascript/packages/PayrollFlow/index.tsx +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/javascript/packages/PayrollFlow/package.json +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/javascript/packages/items/(special)/.codeowner +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/javascript/packages/items/(special)/pay.ts +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/javascript/packages/items/.codeowner +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/javascript/packages/items/item.ts +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/javascript/packages/list/page-admin.tsx +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/ruby/app/models/bank_account.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/ruby/app/models/payroll.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/ruby/app/payments/foo/.codeowner +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/ruby/app/payments/foo/ownedby_payroll.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/ruby/app/payments/nacha.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/ruby/app/payroll/.codeowner +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/ruby/app/payroll/payroll.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/ruby/app/views/foos/edit.erb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/ruby/app/views/foos/index.html.erb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/ruby/app/views/foos/new.html.erb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/ruby/ignored_files/git_ignored.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/ruby/packages/payroll_flow/package.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/should_be_ignored/an_ignored_file.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/.github/CODEOWNERS +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/config/code_ownership.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/config/teams/brewers.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/config/teams/cubs.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/config/teams/giants.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/config/teams/rockies.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/frontend/packages/components/datepicker/package.json +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/frontend/packages/components/datepicker/src/picks/dp.tsx +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/frontend/packages/components/list/package.json +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/frontend/packages/components/list/src/item.tsx +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/frontend/packages/components/textfield/package.json +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/frontend/packages/components/textfield/src/field.tsx +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/frontend/packages/components/textfield/src/fields/small.tsx +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/gems/apollo/lib/apollo.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/gems/ivy/lib/ivy.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/gems/lager/lib/lager.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/gems/summit/lib/summit.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/packs/games/app/services/stats.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/packs/games/package.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/packs/locations/app/services/capacity.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/packs/locations/package.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/packs/schedule/app/services/date.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/packs/schedule/package.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/ruby/app/brewers/lib/util.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/ruby/app/brewers/services/play.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/ruby/app/cubs/.codeowner +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/ruby/app/cubs/services/models/.codeowner +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/ruby/app/cubs/services/models/db/price.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/ruby/app/cubs/services/models/entertainment.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/ruby/app/cubs/services/play.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/ruby/app/giants/services/play.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/ruby/app/rockies/services/play.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/invalid_project_structure_test.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/invalid_project_test.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/multiple_directory_owners_test.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/untracked_files_test.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/valid_project_with_overrides_test.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tmp/.gitkeep +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/.cargo/config.toml +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/Gemfile +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/LICENSE +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/complete_object/Rakefile +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/complete_object/lib/temperature.rb +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/custom_exception_ruby/Rakefile +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/custom_exception_ruby/lib/ahriman/error.rb +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/custom_exception_ruby/lib/ahriman.rb +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/custom_exception_ruby/test/error_test.rb +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/custom_exception_rust/Rakefile +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/custom_exception_rust/lib/ahriman.rb +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/custom_exception_rust/test/error_test.rb +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/fibonacci.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/hello_world.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/point.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/rust_blank/Rakefile +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/rust_blank/lib/rust_blank.rb +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/rust_blank/test/bench.rb +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/rust_blank/test/blank_test.rb +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/block.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/embed.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/enumerator.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/exception.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/float.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/into_value.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/numeric.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/object.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/process.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_complex.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_file.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_float.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_match.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_object.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_rational.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_regexp.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_struct.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/range.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/symbol.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/allocate_before_init.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/array_slice.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/block_call.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/bytes.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/call_proc.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/classname.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/clone.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/codepoints.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/debug_exception.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/encoding_capable.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/enumerator.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/enumeratorize.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/float_convert_from_value.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/float_convert_to_value.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/fmt.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/freeze.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/integer_convert_to_value.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/integer_traits.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/ivar.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/lazy_id.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/make_proc.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/proc_new.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/range.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/return_custom_error.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/scan_args.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/str.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/struct.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/symbol.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/try_convert_array.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/tuple_to_array.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/typed_data.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/typed_data_obj.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/typed_data_subclass.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/typed_data_subclass_from_ruby.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/yield.rs +0 -0
- /data/ext/cargo-vendor/{magnus-macros-0.6.0 → magnus-macros-0.8.0}/LICENSE +0 -0
- /data/ext/cargo-vendor/{magnus-macros-0.6.0 → magnus-macros-0.8.0}/src/init.rs +0 -0
- /data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/LICENSE +0 -0
|
@@ -18,8 +18,9 @@ use std::{
|
|
|
18
18
|
#[cfg(ruby_gte_3_0)]
|
|
19
19
|
use rb_sys::rbimpl_typeddata_flags::{self, RUBY_TYPED_FREE_IMMEDIATELY, RUBY_TYPED_WB_PROTECTED};
|
|
20
20
|
use rb_sys::{
|
|
21
|
-
self, rb_data_type_struct__bindgen_ty_1, rb_data_type_t,
|
|
22
|
-
|
|
21
|
+
self, rb_data_type_struct__bindgen_ty_1, rb_data_type_t, rb_gc_writebarrier,
|
|
22
|
+
rb_gc_writebarrier_unprotect, rb_obj_reveal, rb_singleton_class_attached,
|
|
23
|
+
rb_singleton_class_clone, size_t, RTYPEDDATA_GET_DATA, VALUE,
|
|
23
24
|
};
|
|
24
25
|
|
|
25
26
|
#[cfg(ruby_lt_3_0)]
|
|
@@ -31,7 +32,7 @@ const RUBY_TYPED_WB_PROTECTED: u32 = rb_sys::ruby_fl_type::RUBY_FL_WB_PROTECTED
|
|
|
31
32
|
use crate::{
|
|
32
33
|
class::RClass,
|
|
33
34
|
error::{bug_from_panic, Error},
|
|
34
|
-
gc,
|
|
35
|
+
gc::{self, Mark},
|
|
35
36
|
into_value::IntoValue,
|
|
36
37
|
object::Object,
|
|
37
38
|
r_typed_data::RTypedData,
|
|
@@ -134,12 +135,12 @@ where
|
|
|
134
135
|
/// in your [`mark`](Self::mark) function, you must update them in this
|
|
135
136
|
/// function using [`gc::Compactor::location`].
|
|
136
137
|
///
|
|
137
|
-
/// Ruby values
|
|
138
|
+
/// Ruby considers values are moveable if marked with the
|
|
138
139
|
/// [`gc::Marker::mark_movable`] function. Other marking functions such as
|
|
139
140
|
/// [`gc::Marker::mark`] will prevent values being moved.
|
|
140
141
|
///
|
|
141
142
|
/// As it is only safe for this function to receive a shared `&self`
|
|
142
|
-
/// reference, you must implement interior
|
|
143
|
+
/// reference, you must implement interior mutability to be able to update
|
|
143
144
|
/// values. This is very hard to do correctly, and it is recommended to
|
|
144
145
|
/// simply avoid using [`gc::Marker::mark_movable`] and `compact`.
|
|
145
146
|
///
|
|
@@ -157,7 +158,7 @@ where
|
|
|
157
158
|
///
|
|
158
159
|
/// # Safety
|
|
159
160
|
///
|
|
160
|
-
/// `ptr` must be a
|
|
161
|
+
/// `ptr` must be a valid pointer to a `Box<Self>`, and must not be aliased
|
|
161
162
|
/// This function will free the memory pointed to by `ptr`.
|
|
162
163
|
///
|
|
163
164
|
/// This function must not panic.
|
|
@@ -172,7 +173,7 @@ where
|
|
|
172
173
|
///
|
|
173
174
|
/// # Safety
|
|
174
175
|
///
|
|
175
|
-
/// `ptr` must be a
|
|
176
|
+
/// `ptr` must be a valid pointer to a `Self`, and must not be aliased.
|
|
176
177
|
///
|
|
177
178
|
/// This function must not panic.
|
|
178
179
|
#[doc(hidden)]
|
|
@@ -187,7 +188,7 @@ where
|
|
|
187
188
|
///
|
|
188
189
|
/// # Safety
|
|
189
190
|
///
|
|
190
|
-
/// `ptr` must be a
|
|
191
|
+
/// `ptr` must be a valid pointer to a `Self`.
|
|
191
192
|
///
|
|
192
193
|
/// This function must not panic.
|
|
193
194
|
#[doc(hidden)]
|
|
@@ -202,7 +203,7 @@ where
|
|
|
202
203
|
///
|
|
203
204
|
/// # Safety
|
|
204
205
|
///
|
|
205
|
-
/// `ptr` must be a
|
|
206
|
+
/// `ptr` must be a valid pointer to a `Self`, and must not be aliased.
|
|
206
207
|
///
|
|
207
208
|
/// This function must not panic.
|
|
208
209
|
#[doc(hidden)]
|
|
@@ -299,7 +300,14 @@ where
|
|
|
299
300
|
|
|
300
301
|
/// Enable the 'write barrier protected' flag.
|
|
301
302
|
///
|
|
302
|
-
///
|
|
303
|
+
/// Types that contain Ruby values by default do not participate in
|
|
304
|
+
/// generational GC (they are scanned every GC). This flag asserts all
|
|
305
|
+
/// operations that write Ruby values to this type are protected with
|
|
306
|
+
/// write barriers (see [`Writebarrier::writebarrier`]) so this
|
|
307
|
+
/// type can participate in generational GC.
|
|
308
|
+
///
|
|
309
|
+
/// The write barrier is hard to get right. Magnus recommends you do not use
|
|
310
|
+
/// this flag.
|
|
303
311
|
pub const fn wb_protected(mut self) -> Self {
|
|
304
312
|
self.wb_protected = true;
|
|
305
313
|
self
|
|
@@ -840,7 +848,12 @@ where
|
|
|
840
848
|
/// # Ruby::init(example).unwrap()
|
|
841
849
|
/// ```
|
|
842
850
|
fn deref(&self) -> &Self::Target {
|
|
843
|
-
|
|
851
|
+
// Since we've already validated the inner during `TryConvert` via `RTypedData::get`, we
|
|
852
|
+
// can skip the extra checks and libruby calls and just access the data directly.
|
|
853
|
+
unsafe {
|
|
854
|
+
let data_ptr = RTYPEDDATA_GET_DATA(self.inner.as_rb_value()) as *mut Self::Target;
|
|
855
|
+
&*data_ptr
|
|
856
|
+
}
|
|
844
857
|
}
|
|
845
858
|
}
|
|
846
859
|
|
|
@@ -914,6 +927,95 @@ where
|
|
|
914
927
|
}
|
|
915
928
|
}
|
|
916
929
|
|
|
930
|
+
/// A trait for types that can be used with the `rb_gc_writebarrier` API.
|
|
931
|
+
pub trait Writebarrier: ReprValue {
|
|
932
|
+
/// Inform Ruby that `self` contains a reference to `new`.
|
|
933
|
+
///
|
|
934
|
+
/// If you have a Rust type that contains Ruby values, and itself is
|
|
935
|
+
/// wrapped as a Ruby object, and you choose to enable the `wb_protected`
|
|
936
|
+
/// flag so that it can participate in generational GC then all operations
|
|
937
|
+
/// that add a Ruby value to your data type must call this function.
|
|
938
|
+
///
|
|
939
|
+
/// The write barrier is hard to get right. Magnus recommends you do not
|
|
940
|
+
/// enable the `wb_protected` flag, and thus you don't need to use this function.
|
|
941
|
+
///
|
|
942
|
+
/// # Examples
|
|
943
|
+
///
|
|
944
|
+
/// ```
|
|
945
|
+
/// use std::cell::RefCell;
|
|
946
|
+
///
|
|
947
|
+
/// use magnus::{
|
|
948
|
+
/// function, gc, method,
|
|
949
|
+
/// prelude::*,
|
|
950
|
+
/// typed_data::{Obj, Writebarrier},
|
|
951
|
+
/// value::Opaque,
|
|
952
|
+
/// DataTypeFunctions, Error, Ruby, TypedData, Value,
|
|
953
|
+
/// };
|
|
954
|
+
///
|
|
955
|
+
/// #[derive(TypedData)]
|
|
956
|
+
/// #[magnus(class = "MyVec", free_immediately, mark, wb_protected)]
|
|
957
|
+
/// struct MyVec {
|
|
958
|
+
/// values: RefCell<Vec<Opaque<Value>>>,
|
|
959
|
+
/// }
|
|
960
|
+
///
|
|
961
|
+
/// impl DataTypeFunctions for MyVec {
|
|
962
|
+
/// fn mark(&self, marker: &gc::Marker) {
|
|
963
|
+
/// marker.mark_slice(self.values.borrow().as_slice());
|
|
964
|
+
/// }
|
|
965
|
+
/// }
|
|
966
|
+
///
|
|
967
|
+
/// impl MyVec {
|
|
968
|
+
/// fn new() -> Self {
|
|
969
|
+
/// Self {
|
|
970
|
+
/// values: RefCell::new(Vec::new()),
|
|
971
|
+
/// }
|
|
972
|
+
/// }
|
|
973
|
+
///
|
|
974
|
+
/// fn push(ruby: &Ruby, rb_self: Obj<Self>, val: Value) -> Obj<Self> {
|
|
975
|
+
/// rb_self.values.borrow_mut().push(val.into());
|
|
976
|
+
/// rb_self.writebarrier(rb_self);
|
|
977
|
+
/// rb_self
|
|
978
|
+
/// }
|
|
979
|
+
/// }
|
|
980
|
+
///
|
|
981
|
+
/// fn example(ruby: &Ruby) -> Result<(), Error> {
|
|
982
|
+
/// let class = ruby.define_class("MyVec", ruby.class_object())?;
|
|
983
|
+
/// class.define_singleton_method("new", function!(MyVec::new, 0))?;
|
|
984
|
+
/// class.define_method("push", method!(MyVec::push, 1))?;
|
|
985
|
+
///
|
|
986
|
+
/// let _: Value = ruby.eval(
|
|
987
|
+
/// r#"
|
|
988
|
+
/// vec = MyVec.new
|
|
989
|
+
/// vec.push("test")
|
|
990
|
+
/// vec.push("example")
|
|
991
|
+
/// "#,
|
|
992
|
+
/// )?;
|
|
993
|
+
///
|
|
994
|
+
/// Ok(())
|
|
995
|
+
/// }
|
|
996
|
+
/// # Ruby::init(example).unwrap();
|
|
997
|
+
/// ```
|
|
998
|
+
fn writebarrier<T>(&self, young: T)
|
|
999
|
+
where
|
|
1000
|
+
T: Mark,
|
|
1001
|
+
{
|
|
1002
|
+
unsafe { rb_gc_writebarrier(self.as_rb_value(), young.raw()) };
|
|
1003
|
+
}
|
|
1004
|
+
|
|
1005
|
+
/// Opts `self` out of generational GC / write barrier protection.
|
|
1006
|
+
///
|
|
1007
|
+
/// After calling this function `self` will not participate in generational
|
|
1008
|
+
/// GC and will always be scanned during a GC.
|
|
1009
|
+
/// See [`RTypedData::writebarrier`].
|
|
1010
|
+
fn writebarrier_unprotect<T, U>(&self) {
|
|
1011
|
+
unsafe { rb_gc_writebarrier_unprotect(self.as_rb_value()) };
|
|
1012
|
+
}
|
|
1013
|
+
}
|
|
1014
|
+
|
|
1015
|
+
impl Writebarrier for RTypedData {}
|
|
1016
|
+
|
|
1017
|
+
impl<T> Writebarrier for Obj<T> where T: TypedData {}
|
|
1018
|
+
|
|
917
1019
|
/// Trait for a Ruby-compatible `#hash` method.
|
|
918
1020
|
///
|
|
919
1021
|
/// Automatically implemented for any type implementing [`std::hash::Hash`].
|
|
@@ -90,7 +90,7 @@ impl Flonum {
|
|
|
90
90
|
#[inline]
|
|
91
91
|
pub(crate) fn from_f64_impl(d: f64) -> Option<Self> {
|
|
92
92
|
let v = d.to_bits();
|
|
93
|
-
let bits = v >> 60 & 0x7;
|
|
93
|
+
let bits = (v >> 60) & 0x7;
|
|
94
94
|
if v != 0x3000000000000000 && bits.wrapping_sub(3) & !0x01 == 0 {
|
|
95
95
|
return Some(unsafe { Self::from_rb_value_unchecked(v.rotate_left(3) & !0x01 | 0x02) });
|
|
96
96
|
} else if v == 0 {
|
|
@@ -130,6 +130,15 @@ impl IntoValue for i64 {
|
|
|
130
130
|
|
|
131
131
|
unsafe impl IntoValueFromNative for i64 {}
|
|
132
132
|
|
|
133
|
+
impl IntoValue for i128 {
|
|
134
|
+
#[inline]
|
|
135
|
+
fn into_value_with(self, handle: &Ruby) -> Value {
|
|
136
|
+
handle.integer_from_i128(self).into_value_with(handle)
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
unsafe impl IntoValueFromNative for i128 {}
|
|
141
|
+
|
|
133
142
|
impl IntoValue for isize {
|
|
134
143
|
#[inline]
|
|
135
144
|
fn into_value_with(self, handle: &Ruby) -> Value {
|
|
@@ -175,6 +184,15 @@ impl IntoValue for u64 {
|
|
|
175
184
|
|
|
176
185
|
unsafe impl IntoValueFromNative for u64 {}
|
|
177
186
|
|
|
187
|
+
impl IntoValue for u128 {
|
|
188
|
+
#[inline]
|
|
189
|
+
fn into_value_with(self, handle: &Ruby) -> Value {
|
|
190
|
+
handle.integer_from_u128(self).into_value_with(handle)
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
unsafe impl IntoValueFromNative for u128 {}
|
|
195
|
+
|
|
178
196
|
impl IntoValue for usize {
|
|
179
197
|
#[inline]
|
|
180
198
|
fn into_value_with(self, handle: &Ruby) -> Value {
|
|
@@ -758,7 +776,7 @@ pub(crate) mod private {
|
|
|
758
776
|
/// Ruby may modify or free the memory backing the returned
|
|
759
777
|
/// str, the caller must ensure this does not happen.
|
|
760
778
|
#[allow(clippy::wrong_self_convention)]
|
|
761
|
-
unsafe fn to_s_infallible(&self) -> Cow<str> {
|
|
779
|
+
unsafe fn to_s_infallible(&self) -> Cow<'_, str> {
|
|
762
780
|
match self.as_value_ref().to_s() {
|
|
763
781
|
Ok(v) => v,
|
|
764
782
|
Err(_) => Cow::Owned(
|
|
@@ -1437,7 +1455,7 @@ pub trait ReprValue: private::ReprValue {
|
|
|
1437
1455
|
|
|
1438
1456
|
/// Check if `self` responds to the given Ruby method.
|
|
1439
1457
|
///
|
|
1440
|
-
/// The `include_private`
|
|
1458
|
+
/// The `include_private` argument controls whether `self`'s private methods
|
|
1441
1459
|
/// are checked. If `false` they are not, if `true` they are.
|
|
1442
1460
|
///
|
|
1443
1461
|
/// See also [`Value::check_funcall`].
|
|
@@ -1452,8 +1470,8 @@ pub trait ReprValue: private::ReprValue {
|
|
|
1452
1470
|
/// assert!(s.respond_to("to_str", false)?);
|
|
1453
1471
|
/// assert!(!s.respond_to("puts", false)?);
|
|
1454
1472
|
/// assert!(s.respond_to("puts", true)?);
|
|
1455
|
-
/// assert!(!s.respond_to("
|
|
1456
|
-
/// assert!(!s.respond_to("
|
|
1473
|
+
/// assert!(!s.respond_to("non_existent", false)?);
|
|
1474
|
+
/// assert!(!s.respond_to("non_existent", true)?);
|
|
1457
1475
|
///
|
|
1458
1476
|
/// Ok(())
|
|
1459
1477
|
/// }
|
|
@@ -1530,7 +1548,7 @@ pub trait ReprValue: private::ReprValue {
|
|
|
1530
1548
|
/// # Ruby::init(example).unwrap()
|
|
1531
1549
|
/// ```
|
|
1532
1550
|
#[allow(clippy::wrong_self_convention)]
|
|
1533
|
-
unsafe fn to_s(&self) -> Result<Cow<str>, Error> {
|
|
1551
|
+
unsafe fn to_s(&self) -> Result<Cow<'_, str>, Error> {
|
|
1534
1552
|
if let Some(s) = RString::ref_from_value(self.as_value_ref()) {
|
|
1535
1553
|
if s.is_utf8_compatible_encoding() {
|
|
1536
1554
|
return s.as_str().map(Cow::Borrowed);
|
|
@@ -1596,7 +1614,7 @@ pub trait ReprValue: private::ReprValue {
|
|
|
1596
1614
|
/// }
|
|
1597
1615
|
/// # Ruby::init(example).unwrap()
|
|
1598
1616
|
/// ```
|
|
1599
|
-
unsafe fn classname(&self) -> Cow<str> {
|
|
1617
|
+
unsafe fn classname(&self) -> Cow<'_, str> {
|
|
1600
1618
|
let ptr = rb_obj_classname(self.as_rb_value());
|
|
1601
1619
|
let cstr = CStr::from_ptr(ptr);
|
|
1602
1620
|
cstr.to_string_lossy()
|
|
@@ -2594,6 +2612,35 @@ impl Fixnum {
|
|
|
2594
2612
|
self.to_isize() as i64
|
|
2595
2613
|
}
|
|
2596
2614
|
|
|
2615
|
+
/// Convert `self` to an `i128`. This is infallible as `i128` can represent a
|
|
2616
|
+
/// larger range than `Fixnum`.
|
|
2617
|
+
///
|
|
2618
|
+
/// # Examples
|
|
2619
|
+
///
|
|
2620
|
+
/// ```
|
|
2621
|
+
/// use magnus::{Error, Fixnum, Ruby};
|
|
2622
|
+
///
|
|
2623
|
+
/// fn example(ruby: &Ruby) -> Result<(), Error> {
|
|
2624
|
+
/// # #[cfg(not(windows))]
|
|
2625
|
+
/// assert_eq!(
|
|
2626
|
+
/// ruby.eval::<Fixnum>("4611686018427387903")?.to_i128(),
|
|
2627
|
+
/// 4611686018427387903
|
|
2628
|
+
/// );
|
|
2629
|
+
/// # #[cfg(not(windows))]
|
|
2630
|
+
/// assert_eq!(
|
|
2631
|
+
/// ruby.eval::<Fixnum>("-4611686018427387904")?.to_i128(),
|
|
2632
|
+
/// -4611686018427387904
|
|
2633
|
+
/// );
|
|
2634
|
+
///
|
|
2635
|
+
/// Ok(())
|
|
2636
|
+
/// }
|
|
2637
|
+
/// # Ruby::init(example).unwrap()
|
|
2638
|
+
/// ```
|
|
2639
|
+
#[inline]
|
|
2640
|
+
pub fn to_i128(self) -> i128 {
|
|
2641
|
+
self.to_isize() as i128
|
|
2642
|
+
}
|
|
2643
|
+
|
|
2597
2644
|
/// Convert `self` to an `isize`. Returns `Err` if `self` is out of range
|
|
2598
2645
|
/// for `isize`.
|
|
2599
2646
|
///
|
|
@@ -2764,6 +2811,36 @@ impl Fixnum {
|
|
|
2764
2811
|
Ok(self.to_isize() as u64)
|
|
2765
2812
|
}
|
|
2766
2813
|
|
|
2814
|
+
/// Convert `self` to a `u128`. Returns `Err` if `self` is negative.
|
|
2815
|
+
///
|
|
2816
|
+
/// # Examples
|
|
2817
|
+
///
|
|
2818
|
+
/// ```
|
|
2819
|
+
/// use magnus::{Error, Fixnum, Ruby};
|
|
2820
|
+
///
|
|
2821
|
+
/// fn example(ruby: &Ruby) -> Result<(), Error> {
|
|
2822
|
+
/// # #[cfg(not(windows))]
|
|
2823
|
+
/// assert_eq!(
|
|
2824
|
+
/// ruby.eval::<Fixnum>("4611686018427387903")?.to_u128()?,
|
|
2825
|
+
/// 4611686018427387903
|
|
2826
|
+
/// );
|
|
2827
|
+
/// assert!(ruby.eval::<Fixnum>("-1")?.to_u128().is_err());
|
|
2828
|
+
///
|
|
2829
|
+
/// Ok(())
|
|
2830
|
+
/// }
|
|
2831
|
+
/// # Ruby::init(example).unwrap()
|
|
2832
|
+
/// ```
|
|
2833
|
+
#[inline]
|
|
2834
|
+
pub fn to_u128(self) -> Result<u128, Error> {
|
|
2835
|
+
if self.is_negative() {
|
|
2836
|
+
return Err(Error::new(
|
|
2837
|
+
Ruby::get_with(self).exception_range_error(),
|
|
2838
|
+
"can't convert negative integer to unsigned",
|
|
2839
|
+
));
|
|
2840
|
+
}
|
|
2841
|
+
Ok(self.to_isize() as u128)
|
|
2842
|
+
}
|
|
2843
|
+
|
|
2767
2844
|
/// Convert `self` to a `usize`. Returns `Err` if `self` is negative or out
|
|
2768
2845
|
/// of range for `usize`.
|
|
2769
2846
|
///
|
|
@@ -7,7 +7,7 @@ for VERSION in $RUBY_VERSIONS; do
|
|
|
7
7
|
eval "$(rbenv init - sh)"
|
|
8
8
|
rbenv shell $VERSION
|
|
9
9
|
printf "testing Ruby $VERSION..."
|
|
10
|
-
if OUTPUT=$(env RUBY="$(rbenv which ruby)" cargo +1.
|
|
10
|
+
if OUTPUT=$(env RUBY="$(rbenv which ruby)" cargo +1.65 test --workspace 2>&1); then
|
|
11
11
|
echo ✅
|
|
12
12
|
else
|
|
13
13
|
ERRORS="$ERRORS\n\n\n$VERSION\n\n$OUTPUT"
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
use std::collections::{BTreeMap, HashMap};
|
|
2
|
+
|
|
3
|
+
#[test]
|
|
4
|
+
fn it_converts_maps() {
|
|
5
|
+
let ruby = unsafe { magnus::embed::init() };
|
|
6
|
+
|
|
7
|
+
let map: HashMap<String, u8> = ruby
|
|
8
|
+
.eval(r#"{"foo" => 1, "bar" => 2, "baz" => 3}"#)
|
|
9
|
+
.unwrap();
|
|
10
|
+
|
|
11
|
+
let mut expected = HashMap::new();
|
|
12
|
+
expected.insert("foo".to_owned(), 1);
|
|
13
|
+
expected.insert("bar".to_owned(), 2);
|
|
14
|
+
expected.insert("baz".to_owned(), 3);
|
|
15
|
+
assert_eq!(expected, map);
|
|
16
|
+
|
|
17
|
+
let mut map = HashMap::new();
|
|
18
|
+
map.insert("test", (0, 0.5));
|
|
19
|
+
map.insert("example", (1, 3.75));
|
|
20
|
+
magnus::rb_assert!(
|
|
21
|
+
ruby,
|
|
22
|
+
r#"map == {"test" => [0, 0.5], "example" => [1, 3.75]}"#,
|
|
23
|
+
map
|
|
24
|
+
);
|
|
25
|
+
|
|
26
|
+
let map: BTreeMap<String, u8> = ruby
|
|
27
|
+
.eval(r#"{"foo" => 1, "bar" => 2, "baz" => 3}"#)
|
|
28
|
+
.unwrap();
|
|
29
|
+
|
|
30
|
+
let mut expected = BTreeMap::new();
|
|
31
|
+
expected.insert("foo".to_owned(), 1);
|
|
32
|
+
expected.insert("bar".to_owned(), 2);
|
|
33
|
+
expected.insert("baz".to_owned(), 3);
|
|
34
|
+
assert_eq!(expected, map);
|
|
35
|
+
|
|
36
|
+
let mut map = BTreeMap::new();
|
|
37
|
+
map.insert("test", (0, 0.5));
|
|
38
|
+
map.insert("example", (1, 3.75));
|
|
39
|
+
magnus::rb_assert!(
|
|
40
|
+
ruby,
|
|
41
|
+
r#"map == {"test" => [0, 0.5], "example" => [1, 3.75]}"#,
|
|
42
|
+
map
|
|
43
|
+
);
|
|
44
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
use magnus::{
|
|
2
|
+
encoding::Index, io::*, value::ReprValue, Error, Fixnum, IntoValue, Module, Ruby, TryConvert,
|
|
3
|
+
};
|
|
4
|
+
|
|
5
|
+
#[test]
|
|
6
|
+
fn test_io_all() {
|
|
7
|
+
magnus::Ruby::init(|ruby| {
|
|
8
|
+
test_io_extract_modeenc_extracts_open_flags(ruby)?;
|
|
9
|
+
test_io_extract_modeenc_extracts_fmode_flags(ruby)?;
|
|
10
|
+
test_io_extract_modeenc_extracts_io_encoding(ruby)?;
|
|
11
|
+
Ok(())
|
|
12
|
+
})
|
|
13
|
+
.unwrap();
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
fn run_io_extract_modeenc(
|
|
17
|
+
ruby: &Ruby,
|
|
18
|
+
mode: &str,
|
|
19
|
+
) -> Result<(OpenFlags, FMode, IoEncoding), Error> {
|
|
20
|
+
let mut mode = ruby.str_new(mode).into_value_with(&ruby);
|
|
21
|
+
let mut permission = ruby.qnil().into_value_with(&ruby);
|
|
22
|
+
let kwargs = ruby.hash_new();
|
|
23
|
+
let _ = kwargs.aset(ruby.to_symbol("encoding"), "GBK:UTF-8"); // follows "extern:intern". read more on `IO::new`
|
|
24
|
+
ruby.io_extract_modeenc(&mut mode, &mut permission, &kwargs)
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
fn test_io_extract_modeenc_extracts_open_flags(ruby: &Ruby) -> Result<(), Error> {
|
|
28
|
+
let (open_flags, _, _) = run_io_extract_modeenc(&ruby, "a")?;
|
|
29
|
+
|
|
30
|
+
let file_class = ruby.class_file();
|
|
31
|
+
let append_flag = file_class.const_get::<_, Fixnum>("APPEND")?.to_i32()?;
|
|
32
|
+
|
|
33
|
+
assert!(open_flags.contains(append_flag));
|
|
34
|
+
Ok(())
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
fn test_io_extract_modeenc_extracts_fmode_flags(ruby: &Ruby) -> Result<(), Error> {
|
|
38
|
+
let (_, fmode_flags, _) = run_io_extract_modeenc(&ruby, "a")?;
|
|
39
|
+
|
|
40
|
+
assert!(fmode_flags.contains(FMode::APPEND));
|
|
41
|
+
assert!(fmode_flags.contains(FMode::READ_WRITE));
|
|
42
|
+
assert!(fmode_flags.contains(FMode::CREATE));
|
|
43
|
+
|
|
44
|
+
Ok(())
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
fn test_io_extract_modeenc_extracts_io_encoding(ruby: &Ruby) -> Result<(), Error> {
|
|
48
|
+
let (_, _, io_encoding) = run_io_extract_modeenc(&ruby, "a")?;
|
|
49
|
+
|
|
50
|
+
assert!(io_encoding.internal.is_some());
|
|
51
|
+
assert!(io_encoding.external.is_some());
|
|
52
|
+
|
|
53
|
+
let internal_index = Index::from(io_encoding.internal.unwrap());
|
|
54
|
+
let external_index = Index::from(io_encoding.external.unwrap());
|
|
55
|
+
let utf_8 = ruby.utf8_encindex();
|
|
56
|
+
let gbk = Index::try_convert(ruby.str_new("GBK").as_value())?;
|
|
57
|
+
|
|
58
|
+
assert!(internal_index == utf_8, "Internal encoding is not UTF-8");
|
|
59
|
+
assert!(external_index == gbk, "External encoding is not GBK");
|
|
60
|
+
|
|
61
|
+
Ok(())
|
|
62
|
+
}
|
|
@@ -2,7 +2,7 @@ use magnus::{block::Yield, eval, method, prelude::*, rb_assert, Ruby, Value};
|
|
|
2
2
|
|
|
3
3
|
fn count_to_3(ruby: &Ruby, rb_self: Value) -> Yield<impl Iterator<Item = u8>> {
|
|
4
4
|
if ruby.block_given() {
|
|
5
|
-
Yield::Iter(
|
|
5
|
+
Yield::Iter(1..=3)
|
|
6
6
|
} else {
|
|
7
7
|
Yield::Enumerator(rb_self.enumeratorize("count_to_3", ()))
|
|
8
8
|
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
use magnus::{prelude::*, Value};
|
|
2
|
+
|
|
3
|
+
#[test]
|
|
4
|
+
fn it_converts_to_utf8_string() {
|
|
5
|
+
let ruby = unsafe { magnus::embed::init() };
|
|
6
|
+
|
|
7
|
+
let val: Value = ruby
|
|
8
|
+
.eval(r#""caf\xE9".force_encoding("ISO-8859-1")"#)
|
|
9
|
+
.unwrap();
|
|
10
|
+
let s = String::try_convert(val).unwrap();
|
|
11
|
+
|
|
12
|
+
assert_eq!("café", s);
|
|
13
|
+
|
|
14
|
+
let val: Value = magnus::eval!(r#""\xFF\xFF""#).unwrap();
|
|
15
|
+
let err = String::try_convert(val).unwrap_err();
|
|
16
|
+
|
|
17
|
+
let expected_error = "invalid byte sequence in UTF-8";
|
|
18
|
+
assert!(
|
|
19
|
+
err.to_string().contains(expected_error),
|
|
20
|
+
"Expected \"{}\" to contain \"{expected_error}\" but it didn't",
|
|
21
|
+
err.to_string()
|
|
22
|
+
);
|
|
23
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
use std::time::SystemTime;
|
|
2
|
+
|
|
3
|
+
use magnus::{rb_assert, Error, Ruby};
|
|
4
|
+
|
|
5
|
+
#[test]
|
|
6
|
+
fn test_all() {
|
|
7
|
+
magnus::Ruby::init(|ruby| {
|
|
8
|
+
test_supports_system_time(ruby)?;
|
|
9
|
+
#[cfg(feature = "chrono")]
|
|
10
|
+
test_supports_chrono(ruby)?;
|
|
11
|
+
Ok(())
|
|
12
|
+
})
|
|
13
|
+
.unwrap();
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
fn test_supports_system_time(ruby: &Ruby) -> Result<(), Error> {
|
|
17
|
+
let t = ruby.eval::<SystemTime>("Time.new(1971)").unwrap();
|
|
18
|
+
rb_assert!(ruby, "t.year == 1971", t);
|
|
19
|
+
|
|
20
|
+
let t = ruby.eval::<SystemTime>("Time.new(1960)").unwrap();
|
|
21
|
+
rb_assert!(ruby, "t.year == 1960", t);
|
|
22
|
+
|
|
23
|
+
Ok(())
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
fn test_supports_chrono(ruby: &Ruby) -> Result<(), Error> {
|
|
27
|
+
use chrono::{DateTime, Datelike, FixedOffset, Utc};
|
|
28
|
+
|
|
29
|
+
let t = ruby.eval::<DateTime<Utc>>("Time.at(0, 10, :nsec)").unwrap();
|
|
30
|
+
assert_eq!(t.year(), 1970);
|
|
31
|
+
assert_eq!(t.month(), 1);
|
|
32
|
+
assert_eq!(t.day(), 1);
|
|
33
|
+
assert_eq!(t.timestamp_subsec_nanos(), 10);
|
|
34
|
+
|
|
35
|
+
let dt = ruby
|
|
36
|
+
.eval::<DateTime<Utc>>(r#"Time.new(1971, 1, 1, 2, 2, 2.0000001, "Z")"#)
|
|
37
|
+
.unwrap();
|
|
38
|
+
assert_eq!(&dt.to_rfc3339(), "1971-01-01T02:02:02.000000099+00:00");
|
|
39
|
+
rb_assert!(ruby, "dt.utc?", dt);
|
|
40
|
+
rb_assert!(ruby, "dt.utc_offset == 0", dt);
|
|
41
|
+
|
|
42
|
+
let dt = ruby
|
|
43
|
+
.eval::<DateTime<Utc>>(r#"Time.new(1950, 1, 1, 0, 0, 0, "Z")"#)
|
|
44
|
+
.unwrap();
|
|
45
|
+
assert_eq!(&dt.to_rfc3339(), "1950-01-01T00:00:00+00:00");
|
|
46
|
+
|
|
47
|
+
let dt = ruby
|
|
48
|
+
.eval::<DateTime<Utc>>(r#"Time.new(1971, 1, 1, 2, 2, 2.0000001, "-07:00")"#)
|
|
49
|
+
.unwrap();
|
|
50
|
+
assert_eq!(&dt.to_rfc3339(), "1971-01-01T09:02:02.000000099+00:00");
|
|
51
|
+
|
|
52
|
+
let dt = ruby
|
|
53
|
+
.eval::<DateTime<FixedOffset>>(
|
|
54
|
+
r#"Time.new(2022, 5, 31, 9, 8, 123456789/1000000000r, "-07:00")"#,
|
|
55
|
+
)
|
|
56
|
+
.unwrap();
|
|
57
|
+
assert_eq!(&dt.to_rfc3339(), "2022-05-31T09:08:00.123456789-07:00");
|
|
58
|
+
rb_assert!(ruby, "!dt.utc?", dt);
|
|
59
|
+
rb_assert!(ruby, "dt.utc_offset == -25200", dt);
|
|
60
|
+
|
|
61
|
+
let dt = ruby
|
|
62
|
+
.eval::<DateTime<FixedOffset>>(
|
|
63
|
+
r#"Time.new(2022, 5, 31, 9, 8, 123456789/1000000000r, "+05:30")"#,
|
|
64
|
+
)
|
|
65
|
+
.unwrap();
|
|
66
|
+
assert_eq!(&dt.to_rfc3339(), "2022-05-31T09:08:00.123456789+05:30");
|
|
67
|
+
rb_assert!(ruby, "!dt.utc?", dt);
|
|
68
|
+
rb_assert!(ruby, "dt.utc_offset == 19800", dt);
|
|
69
|
+
|
|
70
|
+
Ok(())
|
|
71
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"files":{".cargo_vcs_info.json":"3799c49c0a41fefcee2b738bc923889af371a49341656d66801347a258ae4dc1","Cargo.lock":"2d7d7ea1ed593ad0699d570db1f655f3af4e0b355291c4eba02d60a1bdf2358c","Cargo.toml":"15867dafbc2b17bfdbfc4bca82a976f7a18533aa718b64a199fe17811f0757b2","Cargo.toml.orig":"7de5dc395d511e7519fa96ff211015802b02ba17d6ba6a79e30af7c8b1794eb0","LICENSE":"79e69d34457af5881b9b7410144cac786098fd86f242a98f419aa8abd1b0578a","src/init.rs":"c0204a41d747889cfd6723f4f3bf4aa2f9f868c288738d29cc6229de4260debf","src/lib.rs":"ee63e82cfc6c9d9ea9e338244f979d7059665d272e8339f414c4e652c07b0b76","src/typed_data.rs":"e44f4ba8d82f4d2a2377158b1815a0a4b09c3ab547b580ffa95b7f521ee572b8","src/util.rs":"f72750d079f31600d4bfa3dd8022550f63e1625e3cf184756f629ab5af69d241"},"package":"47607461fd8e1513cb4f2076c197d8092d921a1ea75bd08af97398f593751892"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# This file is automatically @generated by Cargo.
|
|
2
|
+
# It is not intended for manual editing.
|
|
3
|
+
version = 3
|
|
4
|
+
|
|
5
|
+
[[package]]
|
|
6
|
+
name = "magnus-macros"
|
|
7
|
+
version = "0.8.0"
|
|
8
|
+
dependencies = [
|
|
9
|
+
"proc-macro2",
|
|
10
|
+
"quote",
|
|
11
|
+
"syn",
|
|
12
|
+
]
|
|
13
|
+
|
|
14
|
+
[[package]]
|
|
15
|
+
name = "proc-macro2"
|
|
16
|
+
version = "1.0.66"
|
|
17
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
18
|
+
checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9"
|
|
19
|
+
dependencies = [
|
|
20
|
+
"unicode-ident",
|
|
21
|
+
]
|
|
22
|
+
|
|
23
|
+
[[package]]
|
|
24
|
+
name = "quote"
|
|
25
|
+
version = "1.0.32"
|
|
26
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
27
|
+
checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965"
|
|
28
|
+
dependencies = [
|
|
29
|
+
"proc-macro2",
|
|
30
|
+
]
|
|
31
|
+
|
|
32
|
+
[[package]]
|
|
33
|
+
name = "syn"
|
|
34
|
+
version = "2.0.28"
|
|
35
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
36
|
+
checksum = "04361975b3f5e348b2189d8dc55bc942f278b2d482a6a0365de5bdd62d351567"
|
|
37
|
+
dependencies = [
|
|
38
|
+
"proc-macro2",
|
|
39
|
+
"quote",
|
|
40
|
+
"unicode-ident",
|
|
41
|
+
]
|
|
42
|
+
|
|
43
|
+
[[package]]
|
|
44
|
+
name = "unicode-ident"
|
|
45
|
+
version = "1.0.11"
|
|
46
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
47
|
+
checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
|
|
@@ -12,13 +12,22 @@
|
|
|
12
12
|
[package]
|
|
13
13
|
edition = "2021"
|
|
14
14
|
name = "magnus-macros"
|
|
15
|
-
version = "0.
|
|
15
|
+
version = "0.8.0"
|
|
16
|
+
build = false
|
|
17
|
+
autolib = false
|
|
18
|
+
autobins = false
|
|
19
|
+
autoexamples = false
|
|
20
|
+
autotests = false
|
|
21
|
+
autobenches = false
|
|
16
22
|
description = "Derive and proc macros for magnus"
|
|
17
23
|
homepage = "https://github.com/matsadler/magnus"
|
|
24
|
+
readme = false
|
|
18
25
|
license = "MIT"
|
|
19
26
|
repository = "https://github.com/matsadler/magnus"
|
|
20
27
|
|
|
21
28
|
[lib]
|
|
29
|
+
name = "magnus_macros"
|
|
30
|
+
path = "src/lib.rs"
|
|
22
31
|
proc-macro = true
|
|
23
32
|
|
|
24
33
|
[dependencies.proc-macro2]
|