mezzaluna_load_path/
lib.rs1#![warn(clippy::all, clippy::pedantic, clippy::undocumented_unsafe_blocks)]
2#![allow(
3 clippy::let_underscore_untyped,
4 reason = "https://github.com/rust-lang/rust-clippy/pull/10442#issuecomment-1516570154"
5)]
6#![allow(
7 clippy::question_mark,
8 reason = "https://github.com/rust-lang/rust-clippy/issues/8281"
9)]
10#![allow(clippy::manual_let_else, reason = "manual_let_else was very buggy on release")]
11#![allow(clippy::missing_errors_doc, reason = "A lot of existing code fails this lint")]
12#![allow(
13 clippy::unnecessary_lazy_evaluations,
14 reason = "https://github.com/rust-lang/rust-clippy/issues/8109"
15)]
16#![cfg_attr(
17 test,
18 allow(clippy::non_ascii_literal, reason = "tests sometimes require UTF-8 string content")
19)]
20#![allow(unknown_lints)]
21#![warn(
22 missing_copy_implementations,
23 missing_debug_implementations,
24 missing_docs,
25 rust_2024_compatibility,
26 trivial_casts,
27 trivial_numeric_casts,
28 unused_qualifications,
29 variant_size_differences
30)]
31#![cfg_attr(not(test), forbid(unsafe_code))]
32#![cfg_attr(docsrs, feature(doc_cfg))]
37#![cfg_attr(docsrs, feature(doc_alias))]
38
39#![cfg_attr(feature = "rubylib", doc = "Users can prepend items to the load path at interpreter")]
50#."
53)]
54#[cfg(all(doctest, feature = "rubylib"))]
86#[doc = include_str!("../README.md")]
87mod readme {}
88
89mod ruby_core;
90#[cfg(feature = "rubylib")]
91mod rubylib;
92
93pub use ruby_core::RubyCore;
94#[cfg(feature = "rubylib")]
95pub use rubylib::Rubylib;
96
97#[cfg(all(test, feature = "rubylib"))]
98mod tests {
99 use std::ffi::OsStr;
100 use std::path::{Path, PathBuf};
101
102 use super::*;
103
104 #[test]
105 fn test_assemble_load_path() {
106 let core_loader = RubyCore::new();
107 let rubylib_loader = Rubylib::with_rubylib(OsStr::new("lib")).unwrap();
108
109 let load_path = rubylib_loader
111 .into_load_path()
112 .into_iter()
113 .chain(core_loader.load_path().into_iter().map(PathBuf::from))
114 .collect::<Box<[PathBuf]>>();
115
116 assert_eq!(load_path.len(), 3);
117 assert_eq!(load_path.first().unwrap(), Path::new("lib"));
118 }
119}