diff options
Diffstat (limited to 'crates/shirabe/src/package')
| -rw-r--r-- | crates/shirabe/src/package/alias_package.rs | 8 | ||||
| -rw-r--r-- | crates/shirabe/src/package/dumper/array_dumper.rs | 13 | ||||
| -rw-r--r-- | crates/shirabe/src/package/link.rs | 18 | ||||
| -rw-r--r-- | crates/shirabe/src/package/loader/array_loader.rs | 2 | ||||
| -rw-r--r-- | crates/shirabe/src/package/locker.rs | 5 | ||||
| -rw-r--r-- | crates/shirabe/src/package/version/version_selector.rs | 2 |
6 files changed, 16 insertions, 32 deletions
diff --git a/crates/shirabe/src/package/alias_package.rs b/crates/shirabe/src/package/alias_package.rs index 7ab1967..657b007 100644 --- a/crates/shirabe/src/package/alias_package.rs +++ b/crates/shirabe/src/package/alias_package.rs @@ -144,7 +144,7 @@ impl AliasPackage { let mut new_links: Vec<Link> = vec![]; for link in links.values() { // link is self.version, but must be replacing also the replaced version - if link.get_pretty_constraint().unwrap_or("") == "self.version" { + if link.get_pretty_constraint() == "self.version" { let constraint = SimpleConstraint::new( "=".to_string(), self.version.to_string(), @@ -155,7 +155,7 @@ impl AliasPackage { link.get_target().to_string(), constraint.into(), Some(link_type.to_string()), - Some(pretty_version.clone()), + pretty_version.clone(), ); new_links.push(new_link); } @@ -165,7 +165,7 @@ impl AliasPackage { } } else { for link in links.values_mut() { - if link.get_pretty_constraint().unwrap_or("") == "self.version" { + if link.get_pretty_constraint() == "self.version" { if link_type == Link::TYPE_REQUIRE { self.has_self_version_requires = true; } @@ -179,7 +179,7 @@ impl AliasPackage { link.get_target().to_string(), constraint.into(), Some(link_type.to_string()), - Some(pretty_version.clone()), + pretty_version.clone(), ); } } diff --git a/crates/shirabe/src/package/dumper/array_dumper.rs b/crates/shirabe/src/package/dumper/array_dumper.rs index 6a693bd..4217308 100644 --- a/crates/shirabe/src/package/dumper/array_dumper.rs +++ b/crates/shirabe/src/package/dumper/array_dumper.rs @@ -122,21 +122,16 @@ impl ArrayDumper { data.insert("dist".to_string(), PhpMixed::Array(dist)); } - // corresponds to: foreach (BasePackage::$supportedLinkTypes as $type => $opts) { $links = $package->{'get'.ucfirst($opts['method'])}(); ... } - for (type_name, opts) in SUPPORTED_LINK_TYPES.iter() { - // TODO(phase-b): PackageInterface needs get_links_by_method to mimic PHP magic call - let links: Vec<crate::package::Link> = Vec::new(); - let _ = (&opts.method, &package); + for type_name in SUPPORTED_LINK_TYPES.keys() { + let links = package.get_links_for_type(type_name); if links.is_empty() { continue; } let mut link_map: IndexMap<String, Box<PhpMixed>> = IndexMap::new(); - for link in &links { + for link in links.values() { link_map.insert( link.get_target().to_string(), - Box::new(PhpMixed::String( - link.get_pretty_constraint().unwrap_or_default().to_string(), - )), + Box::new(PhpMixed::String(link.get_pretty_constraint().to_string())), ); } link_map.sort_keys(); diff --git a/crates/shirabe/src/package/link.rs b/crates/shirabe/src/package/link.rs index 13bd66b..ab1e9c6 100644 --- a/crates/shirabe/src/package/link.rs +++ b/crates/shirabe/src/package/link.rs @@ -1,6 +1,5 @@ //! ref: composer/src/Composer/Package/Link.php -use shirabe_php_shim::UnexpectedValueException; use shirabe_semver::constraint::AnyConstraint; use crate::package::PackageInterfaceHandle; @@ -10,7 +9,7 @@ pub struct Link { pub(crate) target: String, pub(crate) constraint: AnyConstraint, pub(crate) description: String, - pub(crate) pretty_constraint: Option<String>, + pub(crate) pretty_constraint: String, } impl Clone for Link { @@ -65,7 +64,7 @@ impl Link { target: String, constraint: AnyConstraint, description: Option<String>, - pretty_constraint: Option<String>, + pretty_constraint: String, ) -> Self { let description = description.unwrap_or_else(|| Self::TYPE_UNKNOWN.to_string()); let description = if description == Self::TYPE_DEV_REQUIRE { @@ -98,17 +97,8 @@ impl Link { &self.constraint } - pub fn get_pretty_constraint(&self) -> anyhow::Result<&str> { - match &self.pretty_constraint { - None => Err(anyhow::anyhow!(UnexpectedValueException { - message: format!( - "Link {} has been misconfigured and had no prettyConstraint given.", - self.to_string() - ), - code: 0, - })), - Some(s) => Ok(s.as_str()), - } + pub fn get_pretty_constraint(&self) -> &str { + &self.pretty_constraint } pub fn to_string(&self) -> String { diff --git a/crates/shirabe/src/package/loader/array_loader.rs b/crates/shirabe/src/package/loader/array_loader.rs index 52f3da1..965cc55 100644 --- a/crates/shirabe/src/package/loader/array_loader.rs +++ b/crates/shirabe/src/package/loader/array_loader.rs @@ -874,7 +874,7 @@ impl ArrayLoader { target.to_string(), parsed_constraint, Some(description.to_string()), - Some(pretty_constraint.to_string()), + pretty_constraint.to_string(), )) } diff --git a/crates/shirabe/src/package/locker.rs b/crates/shirabe/src/package/locker.rs index 47a9974..51177db 100644 --- a/crates/shirabe/src/package/locker.rs +++ b/crates/shirabe/src/package/locker.rs @@ -957,7 +957,7 @@ impl Locker { if PlatformRepository::is_platform_package(&link.get_target()) { continue; } - if link.get_pretty_constraint().ok() == Some("self.version") { + if link.get_pretty_constraint() == "self.version" { continue; } if installed_repo @@ -995,7 +995,6 @@ impl Locker { PhpMixed::String( provider_link .get_pretty_constraint() - .unwrap_or_default() .to_string(), ), PhpMixed::String(format!( @@ -1015,7 +1014,7 @@ impl Locker { set.description, link.get_target(), description, - link.get_pretty_constraint().unwrap_or_default() + link.get_pretty_constraint(), )); } else { missing_requirement_info.push(format!( diff --git a/crates/shirabe/src/package/version/version_selector.rs b/crates/shirabe/src/package/version/version_selector.rs index 9e41f97..ecf08b5 100644 --- a/crates/shirabe/src/package/version/version_selector.rs +++ b/crates/shirabe/src/package/version/version_selector.rs @@ -200,7 +200,7 @@ impl VersionSelector { pkg.get_pretty_version(), link.get_description(), link.get_target(), - link.get_pretty_constraint().unwrap_or_default(), + link.get_pretty_constraint(), reason ), true, |
