Skip to content

Commit

Permalink
Upgrades project (ember-learn#43)
Browse files Browse the repository at this point in the history
- Tidies up some of the code
- Moves to RFC 176 modules
  • Loading branch information
locks committed Aug 17, 2017
1 parent 2e29144 commit c0bea12
Show file tree
Hide file tree
Showing 37 changed files with 212 additions and 122 deletions.
8 changes: 2 additions & 6 deletions app/app.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,9 @@
import Ember from 'ember';
import Application from '@ember/application';
import Resolver from './resolver';
import loadInitializers from 'ember-load-initializers';
import config from './config/environment';

let App;

Ember.MODEL_FACTORY_INJECTIONS = true;

App = Ember.Application.extend({
const App = Application.extend({
rootElement: '#builds-application',
modulePrefix: config.modulePrefix,
podModulePrefix: config.podModulePrefix,
Expand Down
4 changes: 2 additions & 2 deletions app/components/copy-clipboard.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import Ember from 'ember';
import { later } from '@ember/runloop';
import Component from 'ember-cli-clipboard/components/copy-button';
import layout from 'ember-cli-clipboard/templates/components/copy-button';

Expand All @@ -14,7 +14,7 @@ export default Component.extend({
this.set('loading', true);
this.set('disabled', true);

Ember.run.later(this, () => {
later(this, () => {
this.set('loading', false);
this.set('disabled', false);
}, 1000);
Expand Down
4 changes: 2 additions & 2 deletions app/components/ember-cli-usage.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import Ember from 'ember';
import Component from '@ember/component';

export default Ember.Component.extend({
export default Component.extend({
});
4 changes: 2 additions & 2 deletions app/components/files-table.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import Ember from 'ember';
import Component from '@ember/component';

export default Ember.Component.extend({
export default Component.extend({
tagName: ''
});
4 changes: 2 additions & 2 deletions app/components/project-listing.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import Ember from 'ember';
import Component from '@ember/component';

export default Ember.Component.extend({
export default Component.extend({
});
4 changes: 2 additions & 2 deletions app/components/project-listing/beta.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import Ember from 'ember';
import Component from '@ember/component';

export default Ember.Component.extend({
export default Component.extend({
classNames: ['left'],
classNameBindings: ['isCompleted::future-image']
});
4 changes: 2 additions & 2 deletions app/components/release-timeline.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import Ember from 'ember';
import Component from '@ember/component';

export default Ember.Component.extend({
export default Component.extend({
});
7 changes: 4 additions & 3 deletions app/components/remove-spinner.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import Ember from 'ember';
import $ from 'jquery';
import Component from '@ember/component';

export default Ember.Component.extend({
export default Component.extend({
didInsertElement() {
Ember.$('.sk-cube-grid').hide();
$('.sk-cube-grid').hide();
}
});
17 changes: 9 additions & 8 deletions app/controllers/application.js
Original file line number Diff line number Diff line change
@@ -1,27 +1,28 @@
import Ember from 'ember';
import { computed } from '@ember/object';
import Controller from '@ember/controller';

export default Ember.Controller.extend({
isIndexActive: Ember.computed('currentRouteName', function() {
export default Controller.extend({
isIndexActive: computed('currentRouteName', function() {
return this.isActiveChannel('index');
}),

isTaggedActive: Ember.computed('currentRouteName', function() {
isTaggedActive: computed('currentRouteName', function() {
return this.isActiveChannel('tagged');
}),

isChannelsActive: Ember.computed('currentRouteName', function() {
isChannelsActive: computed('currentRouteName', function() {
return !['index','tagged'].some(name => name === this.get('currentRouteName'));
}),

isReleaseActive: Ember.computed('currentRouteName', function() {
isReleaseActive: computed('currentRouteName', function() {
return this.isActiveChannel('release');
}),

isBetaActive: Ember.computed('currentRouteName', function() {
isBetaActive: computed('currentRouteName', function() {
return this.isActiveChannel('beta');
}),

isCanaryActive: Ember.computed('currentRouteName', function() {
isCanaryActive: computed('currentRouteName', function() {
return this.isActiveChannel('canary');
}),

Expand Down
4 changes: 2 additions & 2 deletions app/controllers/beta.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import Ember from 'ember';
import Controller from '@ember/controller';
import ProjectsMixin from '../mixins/projects';

export default Ember.Controller.extend(ProjectsMixin, {
export default Controller.extend(ProjectsMixin, {
channel: 'beta',
includeReleasesInFileList: true,
channelDescription: 'The master branch of Ember and Ember-Data is promoted to beta every six weeks. Roughly each week, a new beta release is provided for evaluation. After six of these beta releases, a stable release is declared.'
Expand Down
4 changes: 2 additions & 2 deletions app/controllers/canary.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import Ember from 'ember';
import Controller from '@ember/controller';
import ProjectsMixin from '../mixins/projects';

export default Ember.Controller.extend(ProjectsMixin, {
export default Controller.extend(ProjectsMixin, {
channel: 'canary',
channelDescription: 'Canary builds are generated from each commit to the master branch of Ember and Ember-Data. These builds are not suitable for use in production, and may contain unstable features disabled behind a flag.'
});
9 changes: 5 additions & 4 deletions app/controllers/index.js
Original file line number Diff line number Diff line change
@@ -1,20 +1,21 @@
import Ember from 'ember';
import { computed } from '@ember/object';
import Controller from '@ember/controller';
import ProjectsMixin from '../mixins/projects';

export default Ember.Controller.extend(ProjectsMixin, {
export default Controller.extend(ProjectsMixin, {
isIndexController: true,
channel: 'beta',
includeReleasesInFileList: true,
channelDescription: 'Release builds are production-ready versions of Ember and Ember-Data that have been through a six-week beta cycle.',

latestVersionOfDocs: Ember.computed('model.release.lastRelease', function() {
latestVersionOfDocs: computed('model.release.lastRelease', function() {
let release = this.get('model.release.lastRelease');
let [major, minor] = release.split('.');

return `${major}.${minor}.0`;
}),

emberBetaProject: Ember.computed('projects.@each.isEmberBeta', function() {
emberBetaProject: computed('projects.@each.isEmberBeta', function() {
return this.get('projects').find(p => p.isEmberBeta);
})
});
4 changes: 2 additions & 2 deletions app/controllers/release.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import Ember from 'ember';
import Controller from '@ember/controller';
import ProjectsMixin from '../mixins/projects';

export default Ember.Controller.extend(ProjectsMixin, {
export default Controller.extend(ProjectsMixin, {
channel: 'release',
includeReleasesInFileList: true,
channelDescription: 'Release builds are production-ready versions of Ember and Ember-Data that have been through a six-week beta cycle.'
Expand Down
4 changes: 2 additions & 2 deletions app/controllers/tagged.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import Ember from 'ember';
import Controller from '@ember/controller';
import ProjectsMixin from '../mixins/projects';

export default Ember.Controller.extend(ProjectsMixin, {
export default Controller.extend(ProjectsMixin, {
channel: 'tagged'
});
4 changes: 2 additions & 2 deletions app/helpers/format-date-time.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import Ember from 'ember';
import { helper } from '@ember/component/helper';
import moment from 'moment';

export function formatDateTime([date, format]/*, hash*/) {
Expand All @@ -7,4 +7,4 @@ export function formatDateTime([date, format]/*, hash*/) {
return moment(date).fromNow();
}

export default Ember.Helper.helper(formatDateTime);
export default helper(formatDateTime);
4 changes: 2 additions & 2 deletions app/helpers/params.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import Ember from 'ember';
import { helper } from '@ember/component/helper';

export function params(params/*, hash*/) {
return params;
}

export default Ember.Helper.helper(params);
export default helper(params);
4 changes: 2 additions & 2 deletions app/helpers/printf.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import Ember from 'ember';
import { helper } from '@ember/component/helper';

export function printf([template, value]/*, hash*/) {
return template.replace(/%s/g, value);
}

export default Ember.Helper.helper(printf);
export default helper(printf);
6 changes: 4 additions & 2 deletions app/helpers/script-tag.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
import { helper } from '@ember/component/helper';
import { htmlSafe } from '@ember/string';
import Ember from 'ember';

export function scriptTag([url]/*, hash*/) {
let escapedURL = Ember.Handlebars.Utils.escapeExpression(url);

return Ember.String.htmlSafe(`<script src="${escapedURL}"></script>`);
return htmlSafe(`<script src="${escapedURL}"></script>`);
}

export default Ember.Helper.helper(scriptTag);
export default helper(scriptTag);
4 changes: 2 additions & 2 deletions app/helpers/tag-url-path.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import Ember from 'ember';
import { helper } from '@ember/component/helper';

export function tagUrlPath([url]/*, hash*/) {
let pathIndex = url.indexOf('tags');

return url.slice(pathIndex);
}

export default Ember.Helper.helper(tagUrlPath);
export default helper(tagUrlPath);
4 changes: 2 additions & 2 deletions app/lib/project.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import Ember from 'ember';
import EmberObject from '@ember/object';

import EmberTagged from '../fixtures/ember/tagged';
import EmberCanary from '../fixtures/ember/canary';
Expand All @@ -11,7 +11,7 @@ import EmberDataTagged from '../fixtures/ember-data/tagged';
import EmberDataBeta from '../fixtures/ember-data/beta';
import EmberDataCanary from '../fixtures/ember-data/canary';

const Project = Ember.Object.extend();
const Project = EmberObject.extend();

const FIXTURES = [
EmberTagged,
Expand Down
33 changes: 18 additions & 15 deletions app/lib/s3-bucket.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
import Ember from 'ember';
import $ from 'jquery';
import { on } from '@ember/object/evented';
import { A } from '@ember/array';
import EmberObject, { computed, observer } from '@ember/object';
import S3File from './s3-file';


export default Ember.Object.extend({
export default EmberObject.extend({
files: [],
isLoading: false,

Expand All @@ -14,46 +17,46 @@ export default Ember.Object.extend({
bucket: 'builds.emberjs.com',
endpoint: 's3.amazonaws.com',

delimiterParameter: Ember.computed('delimiter', function(){
delimiterParameter: computed('delimiter', function(){
let delimiter = this.getWithDefault('delimiter','').toString();
return (delimiter) ? 'delimiter=' + delimiter : '';
}),

maxKeysParameter: Ember.computed('maxKeys', function(){
maxKeysParameter: computed('maxKeys', function(){
return 'max-keys=' + this.getWithDefault('maxKeys','').toString();
}),

prefixParameter: Ember.computed('prefix', function(){
prefixParameter: computed('prefix', function(){
return 'prefix=' + this.getWithDefault('prefix','').toString();
}),

queryProtocol: Ember.computed('queryUseSSL', function() {
queryProtocol: computed('queryUseSSL', function() {
return this.get('queryUseSSL') ? 'https://' : 'http://';
}),

queryBaseUrl: Ember.computed('queryProtocol', 'endpoint', 'bucket', function(){
queryBaseUrl: computed('queryProtocol', 'endpoint', 'bucket', function(){
return this.get('queryProtocol') + this.get('endpoint') + '/' + this.get('bucket');
}),

objectProtocol: Ember.computed('objectUseSSL', function() {
objectProtocol: computed('objectUseSSL', function() {
return this.get('objectUseSSL') ? 'https://' : 'http://';
}),

objectBaseUrl: Ember.computed('objectProtocol', 'bucket', function(){
objectBaseUrl: computed('objectProtocol', 'bucket', function(){
return this.get('objectProtocol') + this.get('bucket');
}),

queryParams: Ember.computed('delimiterParameter', 'maxKeysParameter', 'prefixParameter', function(){
queryParams: computed('delimiterParameter', 'maxKeysParameter', 'prefixParameter', function(){
return this.get('delimiterParameter') + '&' +
this.get('maxKeysParameter') + '&' +
this.get('prefixParameter');
}),

queryUrl: Ember.computed('queryBaseUrl', 'queryParams', function(){
queryUrl: computed('queryBaseUrl', 'queryParams', function(){
return this.get('queryBaseUrl') + '?' + this.get('queryParams');
}),

filesPresent: Ember.computed('files.[]', function(){
filesPresent: computed('files.[]', function(){
return this.get('files').length;
}),

Expand All @@ -62,14 +65,14 @@ export default Ember.Object.extend({

return files.filter(function(e) {
let name = e.get('name');
let ignored = Ember.A(ignoreFiles).any(f => name.indexOf(f) >= 0);
let ignored = A(ignoreFiles).any(f => name.indexOf(f) >= 0);
let selected = filter.any(f => name.match(f));

return !ignored && selected;
});
},

load: Ember.on('init', Ember.observer('queryUrl', function() {
load: on('init', observer('queryUrl', function() {
let self = this;
this.set('isLoading', true);

Expand All @@ -85,7 +88,7 @@ export default Ember.Object.extend({
let self = this;
let baseUrl = this.get('objectBaseUrl');

return Ember.$.get(this.get('queryUrl') + '&marker=' + marker).then(function(data) {
return $.get(this.get('queryUrl') + '&marker=' + marker).then(function(data) {
let contents = data.getElementsByTagName('Contents');
let isTruncated = data.getElementsByTagName('IsTruncated')[0].firstChild.data === "true";
let length = contents.length;
Expand Down
10 changes: 6 additions & 4 deletions app/lib/s3-file.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
import { htmlSafe } from '@ember/string';
import EmberObject, { computed } from '@ember/object';
import Ember from 'ember';

export default Ember.Object.extend({
scriptTag: Ember.computed('url', function() {
export default EmberObject.extend({
scriptTag: computed('url', function() {
let escapedURL = Ember.Handlebars.Utils.escapeExpression(this.get('url'));

return new Ember.String.htmlSafe('<script src="' + escapedURL + '"></script>').toString();
return new htmlSafe('<script src="' + escapedURL + '"></script>').toString();
}),

url: Ember.computed('baseUrl', 'relativePath', function() {
url: computed('baseUrl', 'relativePath', function() {
return this.get('baseUrl') + '/' + this.get('relativePath');
})
});
2 changes: 1 addition & 1 deletion app/mirage/factories/contact.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
Create more files in this directory to define additional factories.
*/
import Mirage/*, {faker} */ from 'ember-cli-mirage';
import Mirage/*, { faker } */ from 'ember-cli-mirage';

export default Mirage.Factory.extend({
// name: 'Pete', // strings
Expand Down

0 comments on commit c0bea12

Please sign in to comment.