import
Ember
from
'ember';
export
default
Ember.Component.extend({
didReceiveAttrs()
{
this.set('upDays',
this.computeUpDays());
this.set('streak',
this.computeStreak());
},
computeUpDays()
{
return
this.days.reduce((upDays,
day)
=>
{
return
upDays
+=
(day.up
?
1
:
0);
},
0);
},
computeStreak()
{
let
[
max
]
=
this.days.reduce(([
max,
streak
],
day)
=>
{
if
(day.up
&&
streak
+
1
>
max)
{
return
[streak
+
1,
streak
+
1];
}
else
if
(day.up)
{
return
[max,
streak
+
1];
}
else
{
return
[max,
0];
}
},
[0,
0]);
return
max;
}
}); app/components/server-‐uptime.js
{{name}}
{{upDays}}
Days
Up
Biggest
Streak:
{{streak}}
{{#each
days
key="number"
as
|day|}}
{{uptime-‐day
day=day}}
{{/each}}
templates/components/server-‐uptime.js
This is a real Ember CLI app using `Ember.Component`, the router, etc. The exact same code runs on Ember 1.3, Ember 2.4 and Ember 2.6 Canary with the feature flag
on.