Skip to content

Instantly share code, notes, and snippets.

@nicksteffens
Last active January 3, 2018 22:26
Show Gist options
  • Save nicksteffens/288b346bf96afc7dbb0a7f7bdf919622 to your computer and use it in GitHub Desktop.
Save nicksteffens/288b346bf96afc7dbb0a7f7bdf919622 to your computer and use it in GitHub Desktop.
ember sum comparison
import Ember from 'ember';
const { computed } = Ember;
export default Ember.Controller.extend({
appName: 'Ember Sum Twiddle',
requiredPhotosCount: 1,
requiredBlogsCount: 1,
requiredVideosCount: 1,
acceptedPhotosCount: 1,
acceptedBlogsCount: 1,
acceptedVideosCount: 1,
required: computed('requiredPhotosCount', 'requiredBlogsCount', 'requiredVideosCount',function() {
return this.get('requiredPhotosCount') + this.get('requiredBlogsCount') + this.get('requiredVideosCount');
}),
accepted: computed('acceptedPhotosCount', 'acceptedBlogsCount', 'acceptedVideosCount', function() {
return this.get('acceptedPhotosCount') + this.get('acceptedBlogsCount') + this.get('acceptedVideosCount');
}),
requiredArray: computed.collect('requiredPhotosCount', 'requiredBlogsCount', 'requiredVideosCount'),
acceptedArray: computed.collect('acceptedPhotosCount', 'acceptedBlogsCount', 'acceptedVideosCount'),
requiredCount: computed.sum('requiredArray'),
acceptedCount: computed.sum('acceptedArray'),
allRequirementsMet: computed.gte('acceptedCount', 'requiredCount'),
allRequirementsMetComputed: computed('requiredPhotosCount', 'requiredBlogsCount', 'requiredVideosCount', 'acceptedPhotosCount', 'acceptedBlogsCount', 'acceptedVideosCount', function() {
const {
requiredPhotosCount,
requiredBlogsCount,
requiredVideosCount,
acceptedPhotosCount,
acceptedBlogsCount,
acceptedVideosCount
} = this.getProperties(['requiredPhotosCount', 'requiredBlogsCount', 'requiredVideosCount', 'acceptedPhotosCount', 'acceptedBlogsCount', 'acceptedVideosCount']);
const required = requiredPhotosCount + requiredBlogsCount + requiredVideosCount;
const accepted = acceptedPhotosCount + acceptedBlogsCount + acceptedVideosCount;
return accepted >= required;
}),
});
<h1>Welcome to {{appName}}</h1>
<br>
<br>
Required Count = {{requiredCount}} <em>should be {{required}}</em><br>
Accepted Count = {{acceptedCount}} <em>should be {{accepted}}</em><br>
All requirements met (computed ()) = {{allRequirementsMetComputed}} <br>
All requirements met (computed.gte) = {{allRequirementsMet}}
<br>
<br>
{
"version": "0.13.0",
"EmberENV": {
"FEATURES": {}
},
"options": {
"use_pods": false,
"enable-testing": false
},
"dependencies": {
"jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.js",
"ember": "2.16.2",
"ember-template-compiler": "2.16.2",
"ember-testing": "2.16.2"
},
"addons": {
"ember-data": "2.16.3"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment