import Ember from 'ember'; import Model from 'travis/models/model'; import Build from 'travis/models/build'; import { gravatarImage } from 'travis/utils/urls'; import attr from 'ember-data/attr'; import { hasMany, belongsTo } from 'ember-data/relationships'; export default Model.extend({ sha: attr(), branch: attr(), message: attr(), compareUrl: attr(), authorName: attr(), authorEmail: attr(), committerName: attr(), committerEmail: attr(), committedAt: attr(), committerAvatarUrl: attr(), authorAvatarUrl: attr(), build: belongsTo('build'), subject: function() { return this.get('message').split("\n", 1)[0]; }.property('message'), body: function() { var message; message = this.get('message'); if (message.indexOf("\n") > 0) { return message.substr(message.indexOf("\n") + 1).trim(); } else { return ""; } }.property('message'), authorIsCommitter: function() { return this.get('authorName') === this.get('committerName') && this.get('authorEmail') === this.get('committerEmail'); }.property('authorName', 'authorEmail', 'committerName', 'committerEmail'), authorAvatarUrlOrGravatar: function() { var url = this.get('authorAvatarUrl'); if(!url) { url = gravatarImage(this.get('authorEmail'), 40); } return url; }.property('authorEmail', 'authorAvatarUrl'), committerAvatarUrlOrGravatar: function() { var url = this.get('committerAvatarUrl'); if(!url) { url = gravatarImage(this.get('committerEmail'), 40); } return url; }.property('committerEmail', 'committerAvatarUrl') });