Skip to content

Commit

Permalink
Merge pull request #193 from stefanpenner/moment-from-moment-to
Browse files Browse the repository at this point in the history
Add moment-from and moment-to helpers, fix build for beta and canary, bump deps
  • Loading branch information
jasonmit authored Oct 14, 2016
2 parents b374b55 + f0226cf commit 0ef8349
Show file tree
Hide file tree
Showing 41 changed files with 337 additions and 132 deletions.
14 changes: 0 additions & 14 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -13,22 +13,8 @@ insert_final_newline = true
indent_style = space
indent_size = 2

[*.js]
indent_style = space
indent_size = 2

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

[*.css]
indent_style = space
indent_size = 2

[*.html]
indent_style = space
indent_size = 2

[*.{diff,md}]
trim_trailing_whitespace = false
2 changes: 1 addition & 1 deletion .jshintrc
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,6 @@
"strict": false,
"white": false,
"eqnull": true,
"esnext": true,
"esversion": 6,
"unused": true
}
17 changes: 9 additions & 8 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
language: node_js
node_js:
- "0.12"
- "4"

sudo: false

Expand All @@ -15,23 +15,24 @@ env:
- EMBER_TRY_SCENARIO=ember-release
- EMBER_TRY_SCENARIO=ember-beta
- EMBER_TRY_SCENARIO=ember-canary
- EMBER_TRY_SCENARIO=ember-alpha

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

before_install:
- export PATH=/usr/local/phantomjs-2.0.0/bin:$PATH
- "npm config set spin false"
- "npm install -g npm@^2"
- npm config set spin false
- npm install -g bower
- bower --version
- npm install phantomjs-prebuilt
- node_modules/phantomjs-prebuilt/bin/phantomjs --version

install:
- npm install -g bower
- npm install
- bower install

script:
- ember try $EMBER_TRY_SCENARIO test
# Usually, it's ok to finish the test scenario without reverting
# to the addon's original dependency state, skipping "cleanup".
- ember try:one $EMBER_TRY_SCENARIO test --skip-cleanup
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,8 @@ Ships with the following computed property macros: `duration`, `humanize`, `loca
## Helpers

```hbs
{{moment-format date outputFormat inputFormat}} {{!-- outputFormat and inputFormat is optional --}}
{{moment '12-25-1995' 'MM-DD-YYYY'}}
{{moment-format '12-25-1995' 'MM/DD/YYYY' 'MM-DD-YYYY'}} {{!-- outputFormat and inputFormat are optional --}}
{{moment-from-now (now) hideSuffix=true}} {{!-- hideSuffix is optional --}}
{{moment-to-now (unix timeStamp) date hidePrefix=true}} {{!-- hidePrefix is optional --}}
{{moment-duration number units}} {{!-- units is optional --}}
Expand Down
9 changes: 5 additions & 4 deletions addon/helpers/-base.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,15 @@ export default Helper.extend({
},

morphMoment(time, { locale, timeZone }) {
locale = locale || get(this, 'moment.locale');
const momentService = get(this, 'moment');

if (locale) {
locale = locale || get(momentService, 'locale');
timeZone = timeZone || get(momentService, 'timeZone');

if (locale && time.locale) {
time = time.locale(locale);
}

timeZone = timeZone || get(this, 'moment.timeZone');

if (timeZone && time.tz) {
time = time.tz(timeZone);
}
Expand Down
9 changes: 3 additions & 6 deletions addon/helpers/is-between.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import Ember from 'ember';
import moment from 'moment';

import computeFn from '../utils/helper-compute';
Expand All @@ -10,21 +9,19 @@ export default BaseHelper.extend({
compute: computeFn(function(params, { precision, inclusivity, locale, timeZone }) {
this._super(...arguments);

const _params = [].concat(params);
const { length } = params;

if (length < 2 || length > 3) {
throw new TypeError('ember-moment: Invalid Number of arguments, expected 2 or 3');
}

const args = [];
const comparisonArgs = Ember.A();

if (length > 2) {
args.push(params.shift());
args.push(_params.shift());
}

comparisonArgs.pushObjects(params);

return this.morphMoment(moment(...args), { locale, timeZone }).isBetween(...comparisonArgs, precision, inclusivity);
return this.morphMoment(moment(...args), { locale, timeZone }).isBetween(..._params, precision, inclusivity);
})
});
14 changes: 14 additions & 0 deletions addon/helpers/moment-from.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import moment from 'moment';

import computeFn from '../utils/helper-compute';
import BaseHelper from './-base';

export default BaseHelper.extend({
globalAllowEmpty: false,

compute: computeFn(function([ datetime, ...params ], { locale, timeZone }) {
this._super(...arguments);

return this.morphMoment(moment(datetime), { locale, timeZone }).from(...params);
})
});
14 changes: 14 additions & 0 deletions addon/helpers/moment-to.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import moment from 'moment';

import computeFn from '../utils/helper-compute';
import BaseHelper from './-base';

export default BaseHelper.extend({
globalAllowEmpty: false,

compute: computeFn(function([ datetime, ...params ], { locale, timeZone }) {
this._super(...arguments);

return this.morphMoment(moment(datetime), { locale, timeZone }).to(...params);
})
});
8 changes: 8 additions & 0 deletions addon/helpers/moment.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import Ember from 'ember';
import moment from 'moment';

export default Ember.Helper.extend({
compute(params) {
return moment(...params);
}
});
28 changes: 14 additions & 14 deletions addon/services/moment.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import Ember from 'ember';
import moment from 'moment';

const { computed, Logger:logger } = Ember;
const { computed, get, set, Logger:logger } = Ember;

export default Ember.Service.extend({
_timeZone: null,
Expand All @@ -11,7 +11,7 @@ export default Ember.Service.extend({

timeZone: computed('_timeZone', {
get() {
return this.get('_timeZone');
return get(this, '_timeZone');
},

set(propertyKey, timeZone) {
Expand All @@ -20,37 +20,37 @@ export default Ember.Service.extend({
return;
}

this.set('_timeZone', timeZone);
set(this, '_timeZone', timeZone);

return timeZone;
}
}),

changeLocale(locale) {
this.set('locale', locale);
set(this, 'locale', locale);
},

changeTimeZone(timeZone) {
this.set('timeZone', timeZone);
set(this, 'timeZone', timeZone);
},

isMoment(obj) {
return moment.isMoment(obj);
},

moment() {
let time = moment(...arguments);
const locale = this.get('locale');
const timeZone = this.get('timeZone');
let momentObj = moment(...arguments);
const locale = get(this, 'locale');
const timeZone = get(this, 'timeZone');

if (locale) {
time = time.locale(locale);
if (locale && momentObj.locale) {
momentObj = momentObj.locale(locale);
}

if (timeZone && time.tz) {
time = time.tz(timeZone);
if (timeZone && momentObj.tz) {
momentObj = momentObj.tz(timeZone);
}

return time;
return momentObj;
}
});
8 changes: 4 additions & 4 deletions addon/utils/helper-compute.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import Ember from 'ember';

const { isBlank } = Ember;
const { isBlank, get, Logger: { warn } } = Ember;

export default function(cb) {
return function(params, hash) {
Expand All @@ -13,15 +13,15 @@ export default function(cb) {
let allowEmpty = hash.allowEmpty || hash['allow-empty'];

if (allowEmpty === undefined || allowEmpty === null) {
allowEmpty = !!this.get('globalAllowEmpty');
allowEmpty = !!get(this, 'globalAllowEmpty');
}

if (isBlank(datetime)) {
if (allowEmpty) {
return;
} else {
Ember.Logger.warn('ember-moment: an empty value (null, undefined, or "") was passed to moment-format');
}

warn('ember-moment: an empty value (null, undefined, or "") was passed to moment-format');
}

return cb.apply(this, arguments);
Expand Down
4 changes: 2 additions & 2 deletions app/helpers/moment-from-now.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import Ember from 'ember';
import config from '../config/environment';
import DurationHelper from 'ember-moment/helpers/moment-from-now';
import FromNowHelper from 'ember-moment/helpers/moment-from-now';

export default DurationHelper.extend({
export default FromNowHelper.extend({
globalAllowEmpty: !!Ember.get(config, 'moment.allowEmpty')
});
7 changes: 7 additions & 0 deletions app/helpers/moment-from.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import Ember from 'ember';
import config from '../config/environment';
import FromHelper from 'ember-moment/helpers/moment-from';

export default FromHelper.extend({
globalAllowEmpty: !!Ember.get(config, 'moment.allowEmpty')
});
7 changes: 7 additions & 0 deletions app/helpers/moment-to.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import Ember from 'ember';
import config from '../config/environment';
import ToHelper from 'ember-moment/helpers/moment-to';

export default ToHelper.extend({
globalAllowEmpty: !!Ember.get(config, 'moment.allowEmpty')
});
1 change: 1 addition & 0 deletions app/helpers/moment-unix.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { default, unix } from 'ember-moment/helpers/unix';
1 change: 1 addition & 0 deletions app/helpers/moment.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { default } from 'ember-moment/helpers/moment';
6 changes: 2 additions & 4 deletions bower.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
{
"name": "ember-moment",
"dependencies": {
"ember": "~2.5.0",
"ember-cli-shims": "0.1.1",
"ember-cli-test-loader": "0.2.2",
"ember-qunit-notifications": "0.1.0"
"ember": "~2.8.0",
"ember-cli-shims": "0.1.1"
}
}
11 changes: 0 additions & 11 deletions config/ember-try.js
Original file line number Diff line number Diff line change
Expand Up @@ -50,17 +50,6 @@ module.exports = {
'ember': 'canary'
}
}
},
{
name: 'ember-alpha',
bower: {
dependencies: {
'ember': 'alpha'
},
resolutions: {
'ember': 'alpha'
}
}
}
]
};
18 changes: 9 additions & 9 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,36 +7,36 @@
"test": "tests"
},
"scripts": {
"start": "ember server",
"build": "ember build",
"test": "ember try:testall"
"start": "ember server",
"test": "ember try:each"
},
"repository": "https://github.com/stefanpenner/ember-moment",
"repository": "",
"engines": {
"node": ">= 0.10.0"
},
"author": "Stefan Penner & Yapp Labs",
"author": "",
"license": "MIT",
"devDependencies": {
"broccoli-asset-rev": "^2.4.2",
"ember-cli": "2.5.0",
"ember-cli": "2.8.0",
"ember-cli-app-version": "^1.0.0",
"ember-cli-dependency-checker": "^1.2.0",
"ember-cli-htmlbars": "^1.0.3",
"ember-cli-htmlbars-inline-precompile": "^0.3.1",
"ember-cli-inject-live-reload": "^1.4.0",
"ember-cli-moment-shim": "^1.2.0",
"ember-cli-jshint": "^1.0.0",
"ember-cli-qunit": "^1.4.0",
"ember-cli-release": "0.2.8",
"ember-cli-moment-shim": "^1.3.0",
"ember-cli-qunit": "^2.1.0",
"ember-cli-release": "^0.2.9",
"ember-cli-sri": "^2.1.0",
"ember-cli-test-loader": "^1.1.0",
"ember-cli-uglify": "^1.2.0",
"ember-disable-prototype-extensions": "^1.1.0",
"ember-export-application-global": "^1.0.5",
"ember-getowner-polyfill": "^1.0.1",
"ember-load-initializers": "^0.5.1",
"ember-resolver": "^2.0.3",
"ember-try": "^0.2.2",
"loader.js": "^4.0.1",
"moment": "^2.13.0",
"moment-timezone": "^0.5.0"
Expand Down
6 changes: 3 additions & 3 deletions tests/.jshintrc
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@
"currentURL",
"currentPath",
"currentRouteName",
"test",
"module"
"module",
"test"
],
"node": false,
"browser": false,
Expand All @@ -49,6 +49,6 @@
"strict": false,
"white": false,
"eqnull": true,
"esnext": true,
"esversion": 6,
"unused": true
}
Loading

0 comments on commit 0ef8349

Please sign in to comment.