code_ownership 2.1.0 → 2.1.1

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 (227) hide show
  1. checksums.yaml +4 -4
  2. data/Cargo.lock +8 -14
  3. data/ext/cargo-vendor/magnus-0.8.2/.cargo-checksum.json +1 -0
  4. data/ext/cargo-vendor/magnus-0.8.2/.cargo_vcs_info.json +6 -0
  5. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/CHANGELOG.md +66 -1
  6. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/Cargo.lock +243 -9
  7. data/ext/cargo-vendor/magnus-0.8.2/Cargo.toml +277 -0
  8. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/Cargo.toml.orig +11 -6
  9. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/README.md +75 -23
  10. data/ext/cargo-vendor/magnus-0.8.2/build.rs +15 -0
  11. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/complete_object/test/temperature_test.rb +4 -4
  12. data/ext/cargo-vendor/magnus-0.8.2/examples/inheritance.rs +66 -0
  13. data/ext/cargo-vendor/magnus-0.8.2/examples/mut_point.rs +116 -0
  14. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/api.rs +4 -3
  15. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/class.rs +9 -7
  16. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/encoding.rs +5 -5
  17. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/error.rs +12 -3
  18. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/fiber.rs +5 -5
  19. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/gc.rs +3 -3
  20. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/integer.rs +134 -0
  21. data/ext/cargo-vendor/magnus-0.8.2/src/io.rs +230 -0
  22. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/lib.rs +53 -54
  23. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/macros.rs +2 -2
  24. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/method.rs +14 -100
  25. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/module.rs +1 -1
  26. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/mutex.rs +1 -1
  27. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_array.rs +2 -2
  28. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_bignum.rs +100 -3
  29. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_hash.rs +63 -1
  30. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_string.rs +31 -231
  31. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_typed_data.rs +6 -9
  32. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/rb_sys.rs +4 -4
  33. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/scan_args.rs +3 -3
  34. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/thread.rs +16 -10
  35. data/ext/cargo-vendor/magnus-0.8.2/src/time.rs +462 -0
  36. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/try_convert.rs +64 -2
  37. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/typed_data.rs +113 -11
  38. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/value/flonum.rs +1 -1
  39. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/value.rs +83 -6
  40. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/test +1 -1
  41. data/ext/cargo-vendor/magnus-0.8.2/tests/hash.rs +44 -0
  42. data/ext/cargo-vendor/magnus-0.8.2/tests/io.rs +62 -0
  43. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/return_iter.rs +1 -1
  44. data/ext/cargo-vendor/magnus-0.8.2/tests/string.rs +23 -0
  45. data/ext/cargo-vendor/magnus-0.8.2/tests/time.rs +71 -0
  46. data/ext/cargo-vendor/magnus-macros-0.8.0/.cargo-checksum.json +1 -0
  47. data/ext/cargo-vendor/magnus-macros-0.8.0/.cargo_vcs_info.json +6 -0
  48. data/ext/cargo-vendor/magnus-macros-0.8.0/Cargo.lock +47 -0
  49. data/ext/cargo-vendor/{magnus-macros-0.6.0 → magnus-macros-0.8.0}/Cargo.toml +10 -1
  50. data/ext/cargo-vendor/{magnus-macros-0.6.0 → magnus-macros-0.8.0}/Cargo.toml.orig +1 -1
  51. data/ext/cargo-vendor/magnus-macros-0.8.0/src/lib.rs +545 -0
  52. data/ext/cargo-vendor/{magnus-macros-0.6.0 → magnus-macros-0.8.0}/src/typed_data.rs +3 -3
  53. data/ext/cargo-vendor/{magnus-macros-0.6.0 → magnus-macros-0.8.0}/src/util.rs +1 -1
  54. data/ext/cargo-vendor/serde_magnus-0.10.0/.cargo-checksum.json +1 -0
  55. data/ext/cargo-vendor/serde_magnus-0.10.0/.cargo_vcs_info.json +6 -0
  56. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/Cargo.lock +77 -75
  57. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/Cargo.toml +3 -3
  58. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/Cargo.toml.orig +7 -4
  59. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/README.md +8 -5
  60. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/de/array_deserializer.rs +12 -8
  61. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/de/array_enumerator.rs +12 -7
  62. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/de/deserializer.rs +21 -18
  63. data/ext/cargo-vendor/serde_magnus-0.10.0/src/de/enum_deserializer.rs +35 -0
  64. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/de/hash_deserializer.rs +18 -11
  65. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/de/mod.rs +76 -76
  66. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/de/variant_deserializer.rs +10 -9
  67. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/error.rs +10 -4
  68. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/lib.rs +6 -5
  69. data/ext/cargo-vendor/serde_magnus-0.10.0/src/ser/enums.rs +11 -0
  70. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/ser/map_serializer.rs +11 -12
  71. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/ser/mod.rs +53 -50
  72. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/ser/seq_serializer.rs +11 -10
  73. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/ser/serializer.rs +50 -34
  74. data/ext/cargo-vendor/serde_magnus-0.10.0/src/ser/struct_serializer.rs +40 -0
  75. data/ext/cargo-vendor/serde_magnus-0.10.0/src/ser/struct_variant_serializer.rs +45 -0
  76. data/ext/cargo-vendor/serde_magnus-0.10.0/src/ser/tuple_variant_serializer.rs +38 -0
  77. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/deserializing_arrays.rs +3 -3
  78. data/ext/cargo-vendor/serde_magnus-0.10.0/tests/deserializing_booleans.rs +15 -0
  79. data/ext/cargo-vendor/serde_magnus-0.10.0/tests/deserializing_enums.rs +39 -0
  80. data/ext/cargo-vendor/serde_magnus-0.10.0/tests/deserializing_floats.rs +12 -0
  81. data/ext/cargo-vendor/serde_magnus-0.10.0/tests/deserializing_integers.rs +18 -0
  82. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/deserializing_maps.rs +3 -2
  83. data/ext/cargo-vendor/serde_magnus-0.10.0/tests/deserializing_options.rs +15 -0
  84. data/ext/cargo-vendor/serde_magnus-0.10.0/tests/deserializing_results.rs +17 -0
  85. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/deserializing_strings.rs +7 -7
  86. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/deserializing_structs.rs +9 -9
  87. data/ext/cargo-vendor/serde_magnus-0.10.0/tests/deserializing_tuples.rs +27 -0
  88. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/deserializing_vecs.rs +3 -3
  89. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_arrays.rs +3 -3
  90. data/ext/cargo-vendor/serde_magnus-0.10.0/tests/serializing_booleans.rs +15 -0
  91. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_enums.rs +9 -7
  92. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_floats.rs +2 -2
  93. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_integers.rs +4 -4
  94. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_maps.rs +3 -2
  95. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_options.rs +3 -3
  96. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_results.rs +5 -4
  97. data/ext/cargo-vendor/serde_magnus-0.10.0/tests/serializing_strings.rs +30 -0
  98. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_structs.rs +15 -7
  99. data/ext/cargo-vendor/serde_magnus-0.10.0/tests/serializing_tuples.rs +35 -0
  100. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_vecs.rs +3 -3
  101. data/ext/code_ownership/Cargo.toml +2 -2
  102. data/ext/code_ownership/extconf.rb +2 -1
  103. data/ext/code_ownership/src/lib.rs +16 -16
  104. data/lib/code_ownership/cli.rb +1 -0
  105. data/lib/code_ownership/private/file_path_finder.rb +3 -7
  106. data/lib/code_ownership/private/file_path_team_cache.rb +5 -9
  107. data/lib/code_ownership/private/for_file_output_builder.rb +0 -1
  108. data/lib/code_ownership/private/team_finder.rb +8 -14
  109. data/lib/code_ownership/version.rb +2 -2
  110. data/lib/code_ownership.rb +12 -17
  111. metadata +182 -186
  112. data/ext/cargo-vendor/magnus-0.7.1/.cargo-checksum.json +0 -1
  113. data/ext/cargo-vendor/magnus-0.7.1/.cargo_vcs_info.json +0 -6
  114. data/ext/cargo-vendor/magnus-0.7.1/Cargo.toml +0 -95
  115. data/ext/cargo-vendor/magnus-0.7.1/build.rs +0 -5
  116. data/ext/cargo-vendor/magnus-0.7.1/examples/mut_point.rs +0 -60
  117. data/ext/cargo-vendor/magnus-0.7.1/src/time.rs +0 -190
  118. data/ext/cargo-vendor/magnus-0.7.1/tests/hash.rs +0 -25
  119. data/ext/cargo-vendor/magnus-0.7.1/tests/string.rs +0 -13
  120. data/ext/cargo-vendor/magnus-macros-0.6.0/.cargo-checksum.json +0 -1
  121. data/ext/cargo-vendor/magnus-macros-0.6.0/.cargo_vcs_info.json +0 -6
  122. data/ext/cargo-vendor/magnus-macros-0.6.0/src/lib.rs +0 -401
  123. data/ext/cargo-vendor/rb-sys-env-0.1.2/.cargo-checksum.json +0 -1
  124. data/ext/cargo-vendor/rb-sys-env-0.1.2/.cargo_vcs_info.json +0 -6
  125. data/ext/cargo-vendor/rb-sys-env-0.1.2/Cargo.toml +0 -25
  126. data/ext/cargo-vendor/rb-sys-env-0.1.2/Cargo.toml.orig +0 -14
  127. data/ext/cargo-vendor/rb-sys-env-0.1.2/LICENSE-APACHE +0 -190
  128. data/ext/cargo-vendor/rb-sys-env-0.1.2/LICENSE-MIT +0 -21
  129. data/ext/cargo-vendor/rb-sys-env-0.1.2/readme.md +0 -119
  130. data/ext/cargo-vendor/rb-sys-env-0.1.2/src/defines.rs +0 -37
  131. data/ext/cargo-vendor/rb-sys-env-0.1.2/src/lib.rs +0 -180
  132. data/ext/cargo-vendor/rb-sys-env-0.1.2/src/rb_env.rs +0 -110
  133. data/ext/cargo-vendor/rb-sys-env-0.1.2/src/ruby_version.rs +0 -163
  134. data/ext/cargo-vendor/rb-sys-env-0.1.2/src/utils.rs +0 -6
  135. data/ext/cargo-vendor/serde_magnus-0.9.0/.cargo-checksum.json +0 -1
  136. data/ext/cargo-vendor/serde_magnus-0.9.0/.cargo_vcs_info.json +0 -6
  137. data/ext/cargo-vendor/serde_magnus-0.9.0/src/de/enum_deserializer.rs +0 -30
  138. data/ext/cargo-vendor/serde_magnus-0.9.0/src/ser/enums.rs +0 -11
  139. data/ext/cargo-vendor/serde_magnus-0.9.0/src/ser/struct_serializer.rs +0 -36
  140. data/ext/cargo-vendor/serde_magnus-0.9.0/src/ser/struct_variant_serializer.rs +0 -37
  141. data/ext/cargo-vendor/serde_magnus-0.9.0/src/ser/tuple_variant_serializer.rs +0 -33
  142. data/ext/cargo-vendor/serde_magnus-0.9.0/tests/deserializing_booleans.rs +0 -18
  143. data/ext/cargo-vendor/serde_magnus-0.9.0/tests/deserializing_enums.rs +0 -39
  144. data/ext/cargo-vendor/serde_magnus-0.9.0/tests/deserializing_floats.rs +0 -12
  145. data/ext/cargo-vendor/serde_magnus-0.9.0/tests/deserializing_integers.rs +0 -18
  146. data/ext/cargo-vendor/serde_magnus-0.9.0/tests/deserializing_options.rs +0 -15
  147. data/ext/cargo-vendor/serde_magnus-0.9.0/tests/deserializing_results.rs +0 -17
  148. data/ext/cargo-vendor/serde_magnus-0.9.0/tests/deserializing_tuples.rs +0 -31
  149. data/ext/cargo-vendor/serde_magnus-0.9.0/tests/serializing_booleans.rs +0 -15
  150. data/ext/cargo-vendor/serde_magnus-0.9.0/tests/serializing_strings.rs +0 -30
  151. data/ext/cargo-vendor/serde_magnus-0.9.0/tests/serializing_tuples.rs +0 -27
  152. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/.cargo/config.toml +0 -0
  153. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/Gemfile +0 -0
  154. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/LICENSE +0 -0
  155. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/complete_object/Rakefile +0 -0
  156. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/complete_object/lib/temperature.rb +0 -0
  157. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/custom_exception_ruby/Rakefile +0 -0
  158. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/custom_exception_ruby/lib/ahriman/error.rb +0 -0
  159. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/custom_exception_ruby/lib/ahriman.rb +0 -0
  160. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/custom_exception_ruby/test/error_test.rb +0 -0
  161. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/custom_exception_rust/Rakefile +0 -0
  162. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/custom_exception_rust/lib/ahriman.rb +0 -0
  163. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/custom_exception_rust/test/error_test.rb +0 -0
  164. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/fibonacci.rs +0 -0
  165. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/hello_world.rs +0 -0
  166. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/point.rs +0 -0
  167. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/rust_blank/Rakefile +0 -0
  168. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/rust_blank/lib/rust_blank.rb +0 -0
  169. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/rust_blank/test/bench.rb +0 -0
  170. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/rust_blank/test/blank_test.rb +0 -0
  171. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/block.rs +0 -0
  172. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/embed.rs +0 -0
  173. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/enumerator.rs +0 -0
  174. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/exception.rs +0 -0
  175. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/float.rs +0 -0
  176. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/into_value.rs +0 -0
  177. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/numeric.rs +0 -0
  178. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/object.rs +0 -0
  179. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/process.rs +0 -0
  180. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_complex.rs +0 -0
  181. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_file.rs +0 -0
  182. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_float.rs +0 -0
  183. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_match.rs +0 -0
  184. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_object.rs +0 -0
  185. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_rational.rs +0 -0
  186. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_regexp.rs +0 -0
  187. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_struct.rs +0 -0
  188. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/range.rs +0 -0
  189. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/symbol.rs +0 -0
  190. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/allocate_before_init.rs +0 -0
  191. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/array_slice.rs +0 -0
  192. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/block_call.rs +0 -0
  193. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/bytes.rs +0 -0
  194. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/call_proc.rs +0 -0
  195. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/classname.rs +0 -0
  196. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/clone.rs +0 -0
  197. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/codepoints.rs +0 -0
  198. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/debug_exception.rs +0 -0
  199. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/encoding_capable.rs +0 -0
  200. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/enumerator.rs +0 -0
  201. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/enumeratorize.rs +0 -0
  202. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/float_convert_from_value.rs +0 -0
  203. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/float_convert_to_value.rs +0 -0
  204. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/fmt.rs +0 -0
  205. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/freeze.rs +0 -0
  206. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/integer_convert_to_value.rs +0 -0
  207. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/integer_traits.rs +0 -0
  208. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/ivar.rs +0 -0
  209. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/lazy_id.rs +0 -0
  210. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/make_proc.rs +0 -0
  211. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/proc_new.rs +0 -0
  212. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/range.rs +0 -0
  213. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/return_custom_error.rs +0 -0
  214. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/scan_args.rs +0 -0
  215. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/str.rs +0 -0
  216. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/struct.rs +0 -0
  217. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/symbol.rs +0 -0
  218. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/try_convert_array.rs +0 -0
  219. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/tuple_to_array.rs +0 -0
  220. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/typed_data.rs +0 -0
  221. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/typed_data_obj.rs +0 -0
  222. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/typed_data_subclass.rs +0 -0
  223. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/typed_data_subclass_from_ruby.rs +0 -0
  224. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/yield.rs +0 -0
  225. /data/ext/cargo-vendor/{magnus-macros-0.6.0 → magnus-macros-0.8.0}/LICENSE +0 -0
  226. /data/ext/cargo-vendor/{magnus-macros-0.6.0 → magnus-macros-0.8.0}/src/init.rs +0 -0
  227. /data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/LICENSE +0 -0
@@ -0,0 +1,45 @@
1
+ use super::{enums::nest, Serializer};
2
+ use crate::error::Error;
3
+ use magnus::{RHash, Ruby, Value};
4
+ use serde::{ser::SerializeStructVariant, Serialize};
5
+
6
+ pub struct StructVariantSerializer<'r> {
7
+ ruby: &'r Ruby,
8
+ variant: &'static str,
9
+ hash: RHash,
10
+ }
11
+
12
+ impl<'r> StructVariantSerializer<'r> {
13
+ pub fn new(ruby: &'r Ruby, variant: &'static str, hash: RHash) -> StructVariantSerializer<'r> {
14
+ StructVariantSerializer {
15
+ ruby,
16
+ variant,
17
+ hash,
18
+ }
19
+ }
20
+ }
21
+
22
+ impl<'r> SerializeStructVariant for StructVariantSerializer<'r> {
23
+ type Ok = Value;
24
+ type Error = Error;
25
+
26
+ fn serialize_field<Value>(
27
+ &mut self,
28
+ name: &'static str,
29
+ value: &Value,
30
+ ) -> Result<(), Self::Error>
31
+ where
32
+ Value: Serialize + ?Sized,
33
+ {
34
+ self.hash
35
+ .aset(
36
+ self.ruby.to_symbol(name),
37
+ value.serialize(Serializer::new(self.ruby))?,
38
+ )
39
+ .map_err(Into::into)
40
+ }
41
+
42
+ fn end(self) -> Result<Self::Ok, Self::Error> {
43
+ nest(self.ruby, self.variant, self.hash)
44
+ }
45
+ }
@@ -0,0 +1,38 @@
1
+ use super::{enums::nest, Serializer};
2
+ use crate::error::Error;
3
+ use magnus::{RArray, Ruby, Value};
4
+ use serde::{ser::SerializeTupleVariant, Serialize};
5
+
6
+ pub struct TupleVariantSerializer<'r> {
7
+ ruby: &'r Ruby,
8
+ variant: &'static str,
9
+ array: RArray,
10
+ }
11
+
12
+ impl<'r> TupleVariantSerializer<'r> {
13
+ pub fn new(ruby: &'r Ruby, variant: &'static str, array: RArray) -> TupleVariantSerializer<'r> {
14
+ TupleVariantSerializer {
15
+ ruby,
16
+ variant,
17
+ array,
18
+ }
19
+ }
20
+ }
21
+
22
+ impl<'r> SerializeTupleVariant for TupleVariantSerializer<'r> {
23
+ type Ok = Value;
24
+ type Error = Error;
25
+
26
+ fn serialize_field<Field>(&mut self, field: &Field) -> Result<(), Self::Error>
27
+ where
28
+ Field: Serialize + ?Sized,
29
+ {
30
+ self.array
31
+ .push(field.serialize(Serializer::new(self.ruby))?)
32
+ .map_err(Into::into)
33
+ }
34
+
35
+ fn end(self) -> Result<Self::Ok, self::Error> {
36
+ nest(self.ruby, self.variant, self.array)
37
+ }
38
+ }
@@ -3,10 +3,10 @@ use serde_magnus::deserialize;
3
3
 
4
4
  #[test]
5
5
  fn test_deserializing_arrays() -> Result<(), Error> {
6
- let _cleanup = unsafe { magnus::embed::init() };
6
+ let ruby = unsafe { magnus::embed::init() };
7
7
 
8
- let input: RArray = eval!("[1, 2, 3]")?;
9
- let output: [i64; 3] = deserialize(input)?;
8
+ let input: RArray = eval!(&ruby, "[1, 2, 3]")?;
9
+ let output: [i64; 3] = deserialize(&ruby, input)?;
10
10
  assert_eq!([1, 2, 3], output);
11
11
 
12
12
  Ok(())
@@ -0,0 +1,15 @@
1
+ use magnus::{value::ReprValue, Error};
2
+ use serde_magnus::deserialize;
3
+
4
+ #[test]
5
+ fn test_deserializing_booleans() -> Result<(), Error> {
6
+ let ruby = unsafe { magnus::embed::init() };
7
+
8
+ let output: bool = deserialize(&ruby, ruby.qtrue().as_value())?;
9
+ assert_eq!(true, output);
10
+
11
+ let output: bool = deserialize(&ruby, ruby.qfalse().as_value())?;
12
+ assert_eq!(false, output);
13
+
14
+ Ok(())
15
+ }
@@ -0,0 +1,39 @@
1
+ use magnus::{eval, Error, RHash};
2
+ use serde::Deserialize;
3
+ use serde_magnus::deserialize;
4
+
5
+ #[derive(Deserialize, PartialEq, Debug)]
6
+ enum A {
7
+ A,
8
+ B(u64),
9
+ C(u64, bool, String),
10
+ D { message: String },
11
+ }
12
+
13
+ #[test]
14
+ fn test_deserializing_enums() -> Result<(), Error> {
15
+ let ruby = unsafe { magnus::embed::init() };
16
+
17
+ let input = ruby.str_new("A");
18
+ let output: A = deserialize(&ruby, input)?;
19
+ assert_eq!(A::A, output);
20
+
21
+ let input: RHash = eval!(&ruby, "{ 'B' => 123 }")?;
22
+ let output: A = deserialize(&ruby, input)?;
23
+ assert_eq!(A::B(123), output);
24
+
25
+ let input: RHash = eval!(&ruby, "{ 'C' => [1234, true, 'Hello, world!'] }")?;
26
+ let output: A = deserialize(&ruby, input).unwrap();
27
+ assert_eq!(A::C(1234, true, "Hello, world!".into()), output);
28
+
29
+ let input: RHash = eval!(&ruby, "{ 'D' => { message: 'Hello, world!' } }")?;
30
+ let output: A = deserialize(&ruby, input)?;
31
+ assert_eq!(
32
+ A::D {
33
+ message: "Hello, world!".into()
34
+ },
35
+ output
36
+ );
37
+
38
+ Ok(())
39
+ }
@@ -0,0 +1,12 @@
1
+ use magnus::Error;
2
+ use serde_magnus::deserialize;
3
+
4
+ #[test]
5
+ fn test_deserializing_floats() -> Result<(), Error> {
6
+ let ruby = unsafe { magnus::embed::init() };
7
+
8
+ let output: f64 = deserialize(&ruby, ruby.float_from_f64(1.23))?;
9
+ assert_eq!(1.23, output);
10
+
11
+ Ok(())
12
+ }
@@ -0,0 +1,18 @@
1
+ use magnus::Error;
2
+ use serde_magnus::deserialize;
3
+
4
+ #[test]
5
+ fn test_deserializing_integers() -> Result<(), Error> {
6
+ let ruby = unsafe { magnus::embed::init() };
7
+
8
+ let output: i64 = deserialize(&ruby, ruby.integer_from_i64(123))?;
9
+ assert_eq!(123, output);
10
+
11
+ let output: i64 = deserialize(&ruby, ruby.integer_from_i64(-123))?;
12
+ assert_eq!(-123, output);
13
+
14
+ let output: u64 = deserialize(&ruby, ruby.integer_from_u64(123))?;
15
+ assert_eq!(123, output);
16
+
17
+ Ok(())
18
+ }
@@ -4,9 +4,10 @@ use std::collections::HashMap;
4
4
 
5
5
  #[test]
6
6
  fn test_deserializing_maps() -> Result<(), Error> {
7
- let _cleanup = unsafe { magnus::embed::init() };
7
+ let ruby = unsafe { magnus::embed::init() };
8
8
 
9
9
  let input: RHash = eval!(
10
+ &ruby,
10
11
  r#"
11
12
  {
12
13
  "Yes" => "No",
@@ -16,7 +17,7 @@ fn test_deserializing_maps() -> Result<(), Error> {
16
17
  "#
17
18
  )?;
18
19
 
19
- let output: HashMap<String, String> = deserialize(input)?;
20
+ let output: HashMap<String, String> = deserialize(&ruby, input)?;
20
21
  assert_eq!(3, output.len());
21
22
  assert_eq!(Some(&"No".into()), output.get("Yes"));
22
23
  assert_eq!(Some(&"Go".into()), output.get("Stop"));
@@ -0,0 +1,15 @@
1
+ use magnus::{Error, IntoValue};
2
+ use serde_magnus::deserialize;
3
+
4
+ #[test]
5
+ fn test_deserializing_options() -> Result<(), Error> {
6
+ let ruby = unsafe { magnus::embed::init() };
7
+
8
+ let output: Option<u64> = deserialize(&ruby, ruby.qnil().into_value_with(&ruby))?;
9
+ assert_eq!(None, output);
10
+
11
+ let output: Option<u64> = deserialize(&ruby, ruby.integer_from_u64(123))?;
12
+ assert_eq!(Some(123), output);
13
+
14
+ Ok(())
15
+ }
@@ -0,0 +1,17 @@
1
+ use magnus::{eval, Error, RHash};
2
+ use serde_magnus::deserialize;
3
+
4
+ #[test]
5
+ fn test_deserializing_results() -> Result<(), Error> {
6
+ let ruby = unsafe { magnus::embed::init() };
7
+
8
+ let input: RHash = eval!(&ruby, "{ 'Ok' => 1234 }")?;
9
+ let output: Result<u64, String> = deserialize(&ruby, input)?;
10
+ assert_eq!(Ok(1234), output);
11
+
12
+ let input: RHash = eval!(&ruby, "{ 'Err' => 'something went wrong' }")?;
13
+ let output: Result<u64, String> = deserialize(&ruby, input)?;
14
+ assert_eq!(Err("something went wrong".into()), output);
15
+
16
+ Ok(())
17
+ }
@@ -1,30 +1,30 @@
1
- use magnus::{Error, RString};
1
+ use magnus::Error;
2
2
  use serde_bytes::{ByteBuf, Bytes};
3
3
  use serde_magnus::deserialize;
4
4
 
5
5
  #[test]
6
6
  fn test_deserializing_strings() -> Result<(), Error> {
7
- let _cleanup = unsafe { magnus::embed::init() };
7
+ let ruby = unsafe { magnus::embed::init() };
8
8
 
9
- let output: char = deserialize(RString::new("☃"))?;
9
+ let output: char = deserialize(&ruby, ruby.str_new("☃"))?;
10
10
  assert_eq!('☃', output);
11
11
 
12
- let output: Result<&str, Error> = deserialize(RString::new("Hello, world!"));
12
+ let output: Result<&str, Error> = deserialize(&ruby, ruby.str_new("Hello, world!"));
13
13
  assert_eq!(
14
14
  r#"TypeError: invalid type: expected a borrowed string, got string "Hello, world!""#,
15
15
  output.unwrap_err().to_string()
16
16
  );
17
17
 
18
- let output: String = deserialize(RString::new("Hello, world!"))?;
18
+ let output: String = deserialize(&ruby, ruby.str_new("Hello, world!"))?;
19
19
  assert_eq!("Hello, world!", output);
20
20
 
21
- let output: Result<&Bytes, Error> = deserialize(RString::new("Hello, world!"));
21
+ let output: Result<&Bytes, Error> = deserialize(&ruby, ruby.str_new("Hello, world!"));
22
22
  assert_eq!(
23
23
  "TypeError: can't deserialize into byte slice",
24
24
  output.unwrap_err().to_string()
25
25
  );
26
26
 
27
- let output: ByteBuf = deserialize(RString::new("Hello, world!"))?;
27
+ let output: ByteBuf = deserialize(&ruby, ruby.str_new("Hello, world!"))?;
28
28
  assert_eq!(b"Hello, world!", output.as_slice());
29
29
 
30
30
  Ok(())
@@ -1,4 +1,4 @@
1
- use magnus::{eval, value::qnil, Error, Integer, IntoValue, RArray, RHash};
1
+ use magnus::{eval, Error, IntoValue, RArray, RHash};
2
2
  use serde::Deserialize;
3
3
  use serde_magnus::deserialize;
4
4
 
@@ -18,20 +18,20 @@ struct D {
18
18
 
19
19
  #[test]
20
20
  fn test_deserializing_structs() -> Result<(), Error> {
21
- let _cleanup = unsafe { magnus::embed::init() };
21
+ let ruby = unsafe { magnus::embed::init() };
22
22
 
23
- assert_eq!(A, deserialize(qnil().into_value())?);
23
+ assert_eq!(A, deserialize(&ruby, ruby.qnil().into_value_with(&ruby))?);
24
24
 
25
- let input = Integer::from_u64(123);
26
- let output: B = deserialize(input)?;
25
+ let input = ruby.integer_from_u64(123);
26
+ let output: B = deserialize(&ruby, input)?;
27
27
  assert_eq!(B(123), output);
28
28
 
29
- let input: RArray = eval!("[ 123, true, 'Hello, world!' ]")?;
30
- let output: C = deserialize(input)?;
29
+ let input: RArray = eval!(&ruby, "[ 123, true, 'Hello, world!' ]")?;
30
+ let output: C = deserialize(&ruby, input)?;
31
31
  assert_eq!(C(123, true, "Hello, world!".into()), output);
32
32
 
33
- let input: RHash = eval!("{ message: 'Hello, world!' }")?;
34
- let output: D = deserialize(input)?;
33
+ let input: RHash = eval!(&ruby, "{ message: 'Hello, world!' }")?;
34
+ let output: D = deserialize(&ruby, input)?;
35
35
  assert_eq!(
36
36
  D {
37
37
  message: "Hello, world!".into()
@@ -0,0 +1,27 @@
1
+ use magnus::{eval, value::ReprValue, Error, RArray};
2
+ use serde_magnus::deserialize;
3
+
4
+ #[test]
5
+ fn test_deserializing_tuples() -> Result<(), Error> {
6
+ let ruby = unsafe { magnus::embed::init() };
7
+
8
+ // From nil
9
+ assert_eq!((), deserialize(&ruby, ruby.qnil().as_value())?);
10
+
11
+ // From a homogeneous array
12
+ let input: RArray = eval!(&ruby, "[ 123, 456, 789 ]")?;
13
+ let output: (i64, i64, i64) = deserialize(&ruby, input)?;
14
+ assert_eq!((123, 456, 789), output);
15
+
16
+ // From a heterogeneous array
17
+ let input: RArray = eval!(&ruby, "[ 123, true, 'Hello, world!' ]")?;
18
+ let output: (i64, bool, String) = deserialize(&ruby, input)?;
19
+ assert_eq!((123, true, "Hello, world!".into()), output);
20
+
21
+ // From an array containing nil
22
+ let input: RArray = eval!(&ruby, "[ 123, nil, 'Hello, world!' ]")?;
23
+ let output: (i64, (), String) = deserialize(&ruby, input)?;
24
+ assert_eq!((123, (), "Hello, world!".into()), output);
25
+
26
+ Ok(())
27
+ }
@@ -3,10 +3,10 @@ use serde_magnus::deserialize;
3
3
 
4
4
  #[test]
5
5
  fn test_deserializing_vecs() -> Result<(), Error> {
6
- let _cleanup = unsafe { magnus::embed::init() };
6
+ let ruby = unsafe { magnus::embed::init() };
7
7
 
8
- let input: RArray = eval!("[ 1, 2, 3 ]")?;
9
- let output: Vec<i64> = deserialize(input)?;
8
+ let input: RArray = eval!(&ruby, "[ 1, 2, 3 ]")?;
9
+ let output: Vec<i64> = deserialize(&ruby, input)?;
10
10
  assert_eq!(&[1, 2, 3], &output[..]);
11
11
 
12
12
  Ok(())
@@ -3,11 +3,11 @@ use serde_magnus::serialize;
3
3
 
4
4
  #[test]
5
5
  fn test_serializing_arrays() -> Result<(), Error> {
6
- let _cleanup = unsafe { magnus::embed::init() };
6
+ let ruby = unsafe { magnus::embed::init() };
7
7
 
8
8
  let input: [u64; 3] = [1, 2, 3];
9
- let output: RArray = serialize(&input)?;
10
- assert!(eval!("output == [ 1, 2, 3 ]", output)?);
9
+ let output: RArray = serialize(&ruby, &input)?;
10
+ assert!(eval!(&ruby, "output == [ 1, 2, 3 ]", output)?);
11
11
 
12
12
  Ok(())
13
13
  }
@@ -0,0 +1,15 @@
1
+ use magnus::{eval, Error, Value};
2
+ use serde_magnus::serialize;
3
+
4
+ #[test]
5
+ fn test_serializing_booleans() -> Result<(), Error> {
6
+ let ruby = unsafe { magnus::embed::init() };
7
+
8
+ let output: Value = serialize(&ruby, &true)?;
9
+ assert!(eval!(&ruby, "output == true", output)?);
10
+
11
+ let output: Value = serialize(&ruby, &false)?;
12
+ assert!(eval!(&ruby, "output == false", output)?);
13
+
14
+ Ok(())
15
+ }
@@ -12,18 +12,19 @@ enum A {
12
12
 
13
13
  #[test]
14
14
  fn test_serializing_enums() -> Result<(), Error> {
15
- let _cleanup = unsafe { magnus::embed::init() };
15
+ let ruby = unsafe { magnus::embed::init() };
16
16
 
17
- let output: RString = serialize(&A::A)?;
18
- assert!(eval!("output == 'A'", output)?);
17
+ let output: RString = serialize(&ruby, &A::A)?;
18
+ assert!(eval!(&ruby, "output == 'A'", output)?);
19
19
 
20
20
  let input = A::B(123);
21
- let output: RHash = serialize(&input)?;
22
- assert!(eval!("output == { 'B' => 123 }", output)?);
21
+ let output: RHash = serialize(&ruby, &input)?;
22
+ assert!(eval!(&ruby, "output == { 'B' => 123 }", output)?);
23
23
 
24
24
  let input = A::C(123, true, "Hello, world!".into());
25
- let output: RHash = serialize(&input)?;
25
+ let output: RHash = serialize(&ruby, &input)?;
26
26
  assert!(eval!(
27
+ &ruby,
27
28
  "output == { 'C' => [ 123, true, 'Hello, world!' ] }",
28
29
  output
29
30
  )?);
@@ -31,8 +32,9 @@ fn test_serializing_enums() -> Result<(), Error> {
31
32
  let input = A::D {
32
33
  message: "Hello, world!".into(),
33
34
  };
34
- let output: RHash = serialize(&input)?;
35
+ let output: RHash = serialize(&ruby, &input)?;
35
36
  assert!(eval!(
37
+ &ruby,
36
38
  "output == { 'D' => { message: 'Hello, world!' } }",
37
39
  output
38
40
  )?);
@@ -3,9 +3,9 @@ use serde_magnus::serialize;
3
3
 
4
4
  #[test]
5
5
  fn test_serializing_floats() -> Result<(), Error> {
6
- let _cleanup = unsafe { magnus::embed::init() };
6
+ let ruby = unsafe { magnus::embed::init() };
7
7
 
8
- let float: Float = serialize(&1.23)?;
8
+ let float: Float = serialize(&ruby, &1.23)?;
9
9
  assert_eq!(1.23, float.to_f64());
10
10
 
11
11
  Ok(())
@@ -3,15 +3,15 @@ use serde_magnus::serialize;
3
3
 
4
4
  #[test]
5
5
  fn test_serializing_integers() -> Result<(), Error> {
6
- let _cleanup = unsafe { magnus::embed::init() };
6
+ let ruby = unsafe { magnus::embed::init() };
7
7
 
8
- let output: Integer = serialize(&123i64)?;
8
+ let output: Integer = serialize(&ruby, &123i64)?;
9
9
  assert_eq!(123, output.to_i64()?);
10
10
 
11
- let output: Integer = serialize(&-123i64)?;
11
+ let output: Integer = serialize(&ruby, &-123i64)?;
12
12
  assert_eq!(-123, output.to_i64()?);
13
13
 
14
- let output: Integer = serialize(&123u64)?;
14
+ let output: Integer = serialize(&ruby, &123u64)?;
15
15
  assert_eq!(123, output.to_u64()?);
16
16
 
17
17
  Ok(())
@@ -4,16 +4,17 @@ use std::collections::HashMap;
4
4
 
5
5
  #[test]
6
6
  fn test_serializing_maps() -> Result<(), Error> {
7
- let _cleanup = unsafe { magnus::embed::init() };
7
+ let ruby = unsafe { magnus::embed::init() };
8
8
 
9
9
  let mut input: HashMap<&str, &str> = HashMap::new();
10
10
  input.insert("Yes", "No");
11
11
  input.insert("Stop", "Go");
12
12
  input.insert("High", "Low");
13
13
 
14
- let output: RHash = serialize(&input)?;
14
+ let output: RHash = serialize(&ruby, &input)?;
15
15
 
16
16
  assert!(eval!(
17
+ &ruby,
17
18
  r#"
18
19
  output == {
19
20
  "Yes" => "No",
@@ -3,14 +3,14 @@ use serde_magnus::serialize;
3
3
 
4
4
  #[test]
5
5
  fn test_serializing_options() -> Result<(), Error> {
6
- let _cleanup = unsafe { magnus::embed::init() };
6
+ let ruby = unsafe { magnus::embed::init() };
7
7
 
8
8
  let input: Option<u64> = None;
9
- let output: Value = serialize(&input)?;
9
+ let output: Value = serialize(&ruby, &input)?;
10
10
  assert!(output.is_nil());
11
11
 
12
12
  let input = Some(123);
13
- let output: Integer = serialize(&input)?;
13
+ let output: Integer = serialize(&ruby, &input)?;
14
14
  assert_eq!(123, output.to_u64()?);
15
15
 
16
16
  Ok(())
@@ -3,15 +3,16 @@ use serde_magnus::serialize;
3
3
 
4
4
  #[test]
5
5
  fn test_serializing_results() -> Result<(), Error> {
6
- let _cleanup = unsafe { magnus::embed::init() };
6
+ let ruby = unsafe { magnus::embed::init() };
7
7
 
8
8
  let input: Result<u64, &str> = Ok(1234);
9
- let output: RHash = serialize(&input)?;
10
- assert!(eval!("output == { 'Ok' => 1234 }", output)?);
9
+ let output: RHash = serialize(&ruby, &input)?;
10
+ assert!(eval!(&ruby, "output == { 'Ok' => 1234 }", output)?);
11
11
 
12
12
  let input: Result<u64, &str> = Err("something went wrong");
13
- let output: RHash = serialize(&input)?;
13
+ let output: RHash = serialize(&ruby, &input)?;
14
14
  assert!(eval!(
15
+ &ruby,
15
16
  "output == { 'Err' => 'something went wrong' }",
16
17
  output
17
18
  )?);
@@ -0,0 +1,30 @@
1
+ use magnus::{encoding::EncodingCapable, Error, RString};
2
+ use serde_bytes::{ByteBuf, Bytes};
3
+ use serde_magnus::serialize;
4
+
5
+ #[test]
6
+ fn test_serializing_strings() -> Result<(), Error> {
7
+ let ruby = unsafe { magnus::embed::init() };
8
+
9
+ let output: RString = serialize(&ruby, &'☃')?;
10
+ assert_eq!("☃", output.to_string()?);
11
+ assert!(output.enc_get() == ruby.utf8_encindex());
12
+
13
+ let output: RString = serialize(&ruby, &"Hello, world!")?;
14
+ assert_eq!("Hello, world!", output.to_string()?);
15
+ assert!(output.enc_get() == ruby.utf8_encindex());
16
+
17
+ let output: RString = serialize(&ruby, &String::from("Hello, world!"))?;
18
+ assert_eq!("Hello, world!", output.to_string()?);
19
+ assert!(output.enc_get() == ruby.utf8_encindex());
20
+
21
+ let output: RString = serialize(&ruby, &Bytes::new(b"Hello, world!"))?;
22
+ assert_eq!(b"Hello, world!", unsafe { output.as_slice() });
23
+ assert!(output.enc_get() == ruby.ascii8bit_encindex());
24
+
25
+ let output: RString = serialize(&ruby, &ByteBuf::from(*b"Hello, world!"))?;
26
+ assert_eq!(b"Hello, world!", unsafe { output.as_slice() });
27
+ assert!(output.enc_get() == ruby.ascii8bit_encindex());
28
+
29
+ Ok(())
30
+ }
@@ -18,24 +18,32 @@ struct D {
18
18
 
19
19
  #[test]
20
20
  fn test_serializing_structs() -> Result<(), Error> {
21
- let _cleanup = unsafe { magnus::embed::init() };
21
+ let ruby = unsafe { magnus::embed::init() };
22
22
 
23
- let output: Value = serialize(&A)?;
23
+ let output: Value = serialize(&ruby, &A)?;
24
24
  assert!(output.is_nil());
25
25
 
26
26
  let input = B(123);
27
- let output: Integer = serialize(&input)?;
27
+ let output: Integer = serialize(&ruby, &input)?;
28
28
  assert_eq!(123, output.to_u64()?);
29
29
 
30
30
  let input = C(1234, true, "Hello, world!".into());
31
- let output: RArray = serialize(&input)?;
32
- assert!(eval!("output == [ 1234, true, 'Hello, world!' ]", output)?);
31
+ let output: RArray = serialize(&ruby, &input)?;
32
+ assert!(eval!(
33
+ &ruby,
34
+ "output == [ 1234, true, 'Hello, world!' ]",
35
+ output
36
+ )?);
33
37
 
34
38
  let input = D {
35
39
  message: "Hello, world!".into(),
36
40
  };
37
- let output: RHash = serialize(&input)?;
38
- assert!(eval!("output == { message: 'Hello, world!' }", output)?);
41
+ let output: RHash = serialize(&ruby, &input)?;
42
+ assert!(eval!(
43
+ &ruby,
44
+ "output == { message: 'Hello, world!' }",
45
+ output
46
+ )?);
39
47
 
40
48
  Ok(())
41
49
  }
@@ -0,0 +1,35 @@
1
+ use magnus::{eval, value::ReprValue, Error, RArray, Value};
2
+ use serde_magnus::serialize;
3
+
4
+ #[test]
5
+ fn test_serializing_tuples() -> Result<(), Error> {
6
+ let ruby = unsafe { magnus::embed::init() };
7
+
8
+ // To nil
9
+ let output: Value = serialize(&ruby, &())?;
10
+ assert!(output.is_nil());
11
+
12
+ // To a homogeneous array
13
+ let output: RArray = serialize(&ruby, &(1, 2, 3))?;
14
+ assert!(eval!(&ruby, "output == [ 1, 2, 3 ]", output)?);
15
+
16
+ // To a heterogeneous array
17
+ let input: (u64, bool, &str) = (1234, true, "Hello, world!");
18
+ let output: RArray = serialize(&ruby, &input)?;
19
+ assert!(eval!(
20
+ &ruby,
21
+ "output == [ 1234, true, 'Hello, world!' ]",
22
+ output
23
+ )?);
24
+
25
+ // To an array containing nil
26
+ let input: (u64, (), &str) = (1234, (), "Hello, world!");
27
+ let output: RArray = serialize(&ruby, &input)?;
28
+ assert!(eval!(
29
+ &ruby,
30
+ "output == [ 1234, nil, 'Hello, world!' ]",
31
+ output
32
+ )?);
33
+
34
+ Ok(())
35
+ }
@@ -3,11 +3,11 @@ use serde_magnus::serialize;
3
3
 
4
4
  #[test]
5
5
  fn test_serializing_vecs() -> Result<(), Error> {
6
- let _cleanup = unsafe { magnus::embed::init() };
6
+ let ruby = unsafe { magnus::embed::init() };
7
7
 
8
8
  let input: Vec<u64> = Vec::from([1, 2, 3]);
9
- let output: RArray = serialize(&input)?;
10
- assert!(eval!("output == [ 1, 2, 3 ]", output)?);
9
+ let output: RArray = serialize(&ruby, &input)?;
10
+ assert!(eval!(&ruby, "output == [ 1, 2, 3 ]", output)?);
11
11
 
12
12
  Ok(())
13
13
  }