Skip to content

Commit

Permalink
Adds support for 1.13, upgrades deps, fixes fragile tests
Browse files Browse the repository at this point in the history
  • Loading branch information
jasonmit committed Jul 18, 2015
1 parent 4b64dbe commit 36b5cc8
Show file tree
Hide file tree
Showing 38 changed files with 334 additions and 284 deletions.
3 changes: 2 additions & 1 deletion .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ indent_style = space
indent_size = 2

[*.hbs]
insert_final_newline = false
indent_style = space
indent_size = 2

Expand All @@ -29,5 +30,5 @@ indent_size = 2
indent_style = space
indent_size = 2

[*.md]
[*.{diff,md}]
trim_trailing_whitespace = false
15 changes: 15 additions & 0 deletions .npmignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
bower_components/
tests/
tmp/
dist/

.bowerrc
.editorconfig
.ember-cli
.travis.yml
.npmignore
**/.gitkeep
bower.json
ember-cli-build.js
Brocfile.js
testem.json
18 changes: 17 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,22 @@ language: node_js

sudo: false

env:
global:
- EMBER_VERSION='default'
- TESTEM_LAUNCHER='PhantomJS'
matrix:
- EMBER_TRY_SCENARIO=default
- EMBER_TRY_SCENARIO=ember-release
- EMBER_TRY_SCENARIO=ember-beta
- EMBER_TRY_SCENARIO=ember-canary

matrix:
fast_finish: true
allow_failures:
- env: EMBER_TRY_SCENARIO=ember-beta
- env: EMBER_TRY_SCENARIO=ember-canary

cache:
directories:
- node_modules
Expand All @@ -17,4 +33,4 @@ install:
- bower install

script:
- npm test
- ember try $EMBER_TRY_SCENARIO test --port=8080 --launch=${TESTEM_LAUNCHER} --skip-cleanup
3 changes: 3 additions & 0 deletions .watchmanconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"ignore_dirs": ["tmp"]
}
16 changes: 3 additions & 13 deletions Brocfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
var EmberAddon = require('ember-cli/lib/broccoli/ember-addon');

var app = new EmberAddon({
vendorFiles: {
'handlebars.js': null
}
'ember-moment': {
includeTimezone: 'all'
}
});

// Use `app.import` to add additional libraries to the generated
Expand All @@ -22,14 +22,4 @@ var app = new EmberAddon({
// please specify an object with the list of modules as keys
// along with the exports of each module as its value.

app.import(app.bowerDirectory + '/ember-cli-moment-shim/moment-shim.js', {
exports: {
moment: ['default']
}
});

app.import(app.bowerDirectory + '/moment-timezone/moment-timezone.js');

app.import(app.bowerDirectory + '/ember/ember-template-compiler.js');

module.exports = app.toTree();
2 changes: 1 addition & 1 deletion LICENSE.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
The MIT License (MIT)

Copyright (c) 2014
Copyright (c) 2015

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

Expand Down
19 changes: 9 additions & 10 deletions addon/computeds/ago.js
Original file line number Diff line number Diff line change
@@ -1,20 +1,19 @@
import Ember from 'ember';
import moment from 'moment';
import { descriptorFor } from './moment';
import isDescriptor from '../utils/is-descriptor';

var get = Ember.get;
var emberComputed = Ember.computed;
let get = Ember.get;
let emberComputed = Ember.computed;

export default function computedAgo(date, maybeInputFormat) {
var args = [date];

var computed = emberComputed(date, function () {
var momentArgs, desc, input;
momentArgs = [get(this, date)];
let args = [date];

let computed = emberComputed(date, function () {
let momentArgs = [get(this, date)];

if (arguments.length > 1) {
desc = descriptorFor.call(this, maybeInputFormat);
input = desc ? get(this, maybeInputFormat) : maybeInputFormat;
let desc = isDescriptor(this[maybeInputFormat]);
let input = desc ? get(this, maybeInputFormat) : maybeInputFormat;

if (desc && computed._dependentKeys.indexOf(maybeInputFormat) === -1) {
computed.property(maybeInputFormat);
Expand Down
18 changes: 9 additions & 9 deletions addon/computeds/duration.js
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
import Ember from 'ember';
import moment from 'moment';
import { descriptorFor } from './moment';
import isDescriptor from '../utils/is-descriptor';

var get = Ember.get;
var emberComputed = Ember.computed;
let get = Ember.get;
let emberComputed = Ember.computed;

export default function computedDuration(val, maybeUnits) {
var numArgs = arguments.length;
var args = [val];
let numArgs = arguments.length;
let args = [val];

let computed = emberComputed(val, function () {
let momentArgs, desc, input;

var computed = emberComputed(val, function () {
var momentArgs, desc, input;

momentArgs = [get(this, val)];

if (numArgs > 1) {
desc = descriptorFor.call(this, maybeUnits);
desc = isDescriptor(this[maybeUnits]);
input = desc ? get(this, maybeUnits) : maybeUnits;

if (desc && computed._dependentKeys.indexOf(maybeUnits) === -1) {
Expand Down
38 changes: 13 additions & 25 deletions addon/computeds/moment.js
Original file line number Diff line number Diff line change
@@ -1,40 +1,28 @@
import Ember from 'ember';
import isDescriptor from '../utils/is-descriptor';
import moment from 'moment';

var get = Ember.get;
var emberComputed = Ember.computed;
var EnumerableUtils = Ember.EnumerableUtils;
var a_slice = Array.prototype.slice;

export function descriptorFor(propertyName) {
var meta = Ember.meta(this);

if (meta && meta.descs) {
return meta.descs[propertyName];
}
}
let { computed, EnumerableUtils, get, assert } = Ember;
let a_slice = Array.prototype.slice;

export default function computedMoment(date, outputFormat, maybeInputFormat) {
Ember.assert('More than one argument passed into moment computed', arguments.length > 1);

var args = a_slice.call(arguments);
var computed;
assert('More than one argument passed into moment computed', arguments.length > 1);

let args = a_slice.call(arguments);
let result;
args.shift();

return computed = emberComputed(date, function () {
var desc,
self = this,
momentArgs = [get(this, date)];
return result = computed(date, function () {
let momentArgs = [get(this, date)];

var propertyValues = EnumerableUtils.map(args, function (arg) {
desc = descriptorFor.call(self, arg);
let propertyValues = EnumerableUtils.map(args, (arg) => {
let desc = isDescriptor(this[arg]);

if (desc && computed._dependentKeys.indexOf(arg) === -1) {
computed.property(arg);
if (desc && result._dependentKeys.indexOf(arg) === -1) {
result.property(arg);
}

return desc ? get(self, arg) : arg;
return desc ? get(this, arg) : arg;
});

outputFormat = propertyValues[0];
Expand Down
6 changes: 3 additions & 3 deletions addon/helpers/ago.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import Ember from 'ember';
import moment from 'moment';

var ago;
let ago;

if (Ember.HTMLBars) {
ago = function ago(params) {
Expand All @@ -13,8 +13,8 @@ if (Ember.HTMLBars) {
};
} else {
ago = function ago(value, maybeInput) {
var length = arguments.length;
var args = [value];
let length = arguments.length;
let args = [value];

if (length === 1) {
throw new TypeError('Invalid Number of arguments, expected at least 1');
Expand Down
8 changes: 4 additions & 4 deletions addon/helpers/duration.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import Ember from 'ember';
import moment from 'moment';

var duration;
let duration;

if (Ember.HTMLBars) {
duration = function duration(params) {
var length = params.length;
let length = params.length;

if (length === 0 || length > 2) {
throw new TypeError('Invalid Number of arguments, expected 1 or 2');
Expand All @@ -15,15 +15,15 @@ if (Ember.HTMLBars) {
};
} else {
duration = function duration(arg1, arg2) {
var length = arguments.length;
let length = arguments.length;

if (length === 1 || length > 3) {
// there's one extra argument that handlebars adds to the end,
// which explains the difference in what we are checking and the error we are raising
throw new TypeError('Invalid Number of arguments, expected 1 or 2');
}

var args = [arg1];
let args = [arg1];

if (length === 3) {
args.push(arg2);
Expand Down
14 changes: 7 additions & 7 deletions addon/helpers/moment.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import Ember from 'ember';
import momentjs from 'moment';

var moment;
let moment;

if (Ember.HTMLBars) {
moment = function moment(params) {
var length = params.length;
var args = [];
var output;
let length = params.length;
let args = [];
let output;

if (length === 0 || length > 3) {
throw new TypeError('Invalid Number of arguments, expected at least 1 and at most 3');
Expand All @@ -28,9 +28,9 @@ if (Ember.HTMLBars) {
};
} else {
moment = function moment(value, maybeOutput, maybeInput) {
var length = arguments.length;
var args = [];
var output;
let length = arguments.length;
let args = [];
let output;

if (length === 1 || length > 4) {
// there's one extra argument that handlebars adds to the end,
Expand Down
10 changes: 10 additions & 0 deletions addon/utils/is-descriptor.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import Ember from 'ember';
let { typeOf, Descriptor } = Ember;

// credit: https://github.com/cibernox/ember-cpm/blob/master/addon/utils.js#L17-L20
function isDescriptor(prop) {
return typeOf(prop) === 'object' && (prop.constructor === Descriptor || // Ember < 1.11
prop.isDescriptor); // Ember >= 1.11.0
}

export default isDescriptor;
4 changes: 2 additions & 2 deletions app/initializers/ember-moment.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ import ago from 'ember-moment/helpers/ago';
import duration from 'ember-moment/helpers/duration';
import Ember from 'ember';

export var initialize = function(/* container, app */) {
var registerHelper;
export function initialize() {
let registerHelper;

if (Ember.HTMLBars) {
registerHelper = function (helperName, fn) {
Expand Down
16 changes: 8 additions & 8 deletions bower.json
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
{
"name": "ember-moment",
"dependencies": {
"jquery": "^1.11.1",
"ember": "1.10.0",
"ember-resolver": "~0.1.10",
"loader.js": "stefanpenner/loader.js#1.0.1",
"ember": "1.13.3",
"ember-cli-moment-shim": "jasonmit/ember-cli-moment-shim#0.0.3",
"ember-cli-shims": "stefanpenner/ember-cli-shims#0.0.3",
"ember-cli-test-loader": "ember-cli/ember-cli-test-loader#0.1.1",
"ember-load-initializers": "stefanpenner/ember-load-initializers#0.0.2",
"ember-qunit": "0.2.8",
"ember-cli-test-loader": "ember-cli-test-loader#0.1.3",
"ember-cli-shims": "ember-cli/ember-cli-shims#0.0.3",
"ember-load-initializers": "ember-cli/ember-load-initializers#0.1.5",
"ember-qunit": "0.4.1",
"ember-qunit-notifications": "0.0.7",
"ember-resolver": "~0.1.18",
"jquery": "^1.11.1",
"loader.js": "ember-cli/loader.js#3.2.0",
"moment": "~2.8.4",
"moment-timezone": "~0.2.5",
"qunit": "~1.17.1"
Expand Down
35 changes: 35 additions & 0 deletions config/ember-try.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
module.exports = {
scenarios: [
{
name: 'default',
dependencies: { }
},
{
name: 'ember-release',
dependencies: {
'ember': 'components/ember#release'
},
resolutions: {
'ember': 'release'
}
},
{
name: 'ember-beta',
dependencies: {
'ember': 'components/ember#beta'
},
resolutions: {
'ember': 'beta'
}
},
{
name: 'ember-canary',
dependencies: {
'ember': 'components/ember#canary'
},
resolutions: {
'ember': 'canary'
}
}
]
};
Loading

0 comments on commit 36b5cc8

Please sign in to comment.