Skip to content

Commit 580ec3d

Browse files
Koenraad VerheydenJoshua Nelson
authored andcommitted
refactor rustdoc to simplify how path to latest version is set
1 parent 548499d commit 580ec3d

File tree

2 files changed

+6
-12
lines changed

2 files changed

+6
-12
lines changed

src/web/crate_details.rs

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -255,11 +255,6 @@ impl CrateDetails {
255255
Some(crate_details)
256256
}
257257

258-
/// Returns whether this release is the latest release of this crate.
259-
pub fn is_latest_version(&self) -> bool {
260-
self.version == self.latest_version()
261-
}
262-
263258
/// Returns the version of the latest release of this crate.
264259
pub fn latest_version(&self) -> &str {
265260
// releases will always contain at least one element
@@ -428,15 +423,12 @@ mod tests {
428423
db.fake_release().name("foo").version("0.0.2").create()?;
429424

430425
let details = CrateDetails::new(&db.conn(), "foo", "0.0.1").unwrap();
431-
assert_eq!(details.is_latest_version(), false);
432426
assert_eq!(details.latest_version(), "0.0.3");
433427

434428
let details = CrateDetails::new(&db.conn(), "foo", "0.0.2").unwrap();
435-
assert_eq!(details.is_latest_version(), false);
436429
assert_eq!(details.latest_version(), "0.0.3");
437430

438431
let details = CrateDetails::new(&db.conn(), "foo", "0.0.3").unwrap();
439-
assert_eq!(details.is_latest_version(), true);
440432
assert_eq!(details.latest_version(), "0.0.3");
441433

442434
Ok(())

src/web/rustdoc.rs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -263,10 +263,12 @@ pub fn rustdoc_html_server_handler(req: &mut Request) -> IronResult<Response> {
263263
content.full = file_content;
264264
let crate_details = cexpect!(CrateDetails::new(&conn, &name, &version));
265265

266-
let (path, latest_version) = if !crate_details.is_latest_version() {
267-
let latest_version = crate_details.latest_version().to_string();
266+
let latest_version = crate_details.latest_version().to_owned();
267+
let is_latest_version = latest_version == version;
268+
269+
let path = if !is_latest_version {
268270
req_path[2] = &latest_version;
269-
(path_for_version(&req_path, &crate_details.target_name, &conn), latest_version)
271+
path_for_version(&req_path, &crate_details.target_name, &conn)
270272
} else {
271273
Default::default()
272274
};
@@ -277,7 +279,7 @@ pub fn rustdoc_html_server_handler(req: &mut Request) -> IronResult<Response> {
277279
.set_true("show_package_navigation")
278280
.set_true("package_navigation_documentation_tab")
279281
.set_true("package_navigation_show_platforms_tab")
280-
.set_bool("is_latest_version", path.is_empty())
282+
.set_bool("is_latest_version", is_latest_version)
281283
.set("path_in_latest", &path)
282284
.set("latest_version", &latest_version)
283285
.to_resp("rustdoc")

0 commit comments

Comments
 (0)