@@ -70,24 +70,35 @@ export default class Version extends Model {
70
70
} )
71
71
loadDocsBuildsTask ;
72
72
73
- @computed ( 'crate.{documentation,name}' , 'num' , 'loadDocsBuildsTask.lastSuccessful.value' )
73
+ @computed ( 'loadDocsBuildsTask.lastSuccessful.value' )
74
+ get hasDocsRsLink ( ) {
75
+ let docsBuilds = this . loadDocsBuildsTask . lastSuccessful ?. value ;
76
+ return docsBuilds && docsBuilds . length !== 0 && docsBuilds [ 0 ] . build_status === true ;
77
+ }
78
+
79
+ get docsRsLink ( ) {
80
+ if ( this . hasDocsRsLink ) {
81
+ return `https://docs.rs/${ this . crateName } /${ this . num } ` ;
82
+ }
83
+ }
84
+
74
85
get documentationLink ( ) {
86
+ let crateDocsLink = this . crate . documentation ;
87
+
75
88
// if this is *not* a docs.rs link we'll return it directly
76
- if ( this . crate . documentation && ! this . crate . documentation . startsWith ( 'https://docs.rs/' ) ) {
77
- return this . crate . documentation ;
89
+ if ( crateDocsLink && ! crateDocsLink . startsWith ( 'https://docs.rs/' ) ) {
90
+ return crateDocsLink ;
78
91
}
79
92
80
93
// if we know about a successful docs.rs build, we'll return a link to that
81
- if ( this . loadDocsBuildsTask . lastSuccessful ) {
82
- let docsBuilds = this . loadDocsBuildsTask . lastSuccessful . value ;
83
- if ( docsBuilds . length !== 0 && docsBuilds [ 0 ] . build_status === true ) {
84
- return `https://docs.rs/${ this . crateName } /${ this . num } ` ;
85
- }
94
+ let { docsRsLink } = this ;
95
+ if ( docsRsLink ) {
96
+ return docsRsLink ;
86
97
}
87
98
88
99
// finally, we'll return the specified documentation link, whatever it is
89
- if ( this . crate . documentation ) {
90
- return this . crate . documentation ;
100
+ if ( crateDocsLink ) {
101
+ return crateDocsLink ;
91
102
}
92
103
93
104
return null ;
0 commit comments