diff --git a/.bowerrc b/.bowerrc deleted file mode 100644 index 959e169..0000000 --- a/.bowerrc +++ /dev/null @@ -1,4 +0,0 @@ -{ - "directory": "bower_components", - "analytics": false -} diff --git a/.editorconfig b/.editorconfig index 2fe4874..219985c 100644 --- a/.editorconfig +++ b/.editorconfig @@ -13,21 +13,8 @@ insert_final_newline = true indent_style = space indent_size = 2 -[*.js] -indent_style = space -indent_size = 2 - [*.hbs] -indent_style = space -indent_size = 2 - -[*.css] -indent_style = space -indent_size = 2 - -[*.html] -indent_style = space -indent_size = 2 +insert_final_newline = false [*.{diff,md}] trim_trailing_whitespace = false diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..2873e2f --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,13 @@ +module.exports = { + root: true, + parserOptions: { + ecmaVersion: 2017, + sourceType: 'module' + }, + extends: 'eslint:recommended', + env: { + browser: true + }, + rules: { + } +}; diff --git a/.gitignore b/.gitignore index ea3d81f..8fa39a6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ -# See http://help.github.com/ignore-files/ for more about ignoring files. +# See https://help.github.com/ignore-files/ for more about ignoring files. # compiled output /dist @@ -13,8 +13,11 @@ /connect.lock /coverage/* /libpeerconnection.log -npm-debug.log +npm-debug.log* +yarn-error.log testem.log -.idea -.DS_Store +# ember-try +.node_modules.ember-try/ +bower.json.ember-try +package.json.ember-try diff --git a/.jscsrc b/.jscsrc deleted file mode 100644 index 6c830f6..0000000 --- a/.jscsrc +++ /dev/null @@ -1,67 +0,0 @@ -{ - "esnext": true, - "disallowSpacesInNamedFunctionExpression": { - "beforeOpeningRoundBrace": true - }, - "disallowSpacesInFunctionExpression": { - "beforeOpeningRoundBrace": true - }, - "disallowSpacesInAnonymousFunctionExpression": { - "beforeOpeningRoundBrace": true - }, - "disallowSpacesInFunctionDeclaration": { - "beforeOpeningRoundBrace": true - }, - "disallowEmptyBlocks": true, - "disallowSpacesInsideArrayBrackets": true, - "disallowSpacesInsideParentheses": true, - "disallowQuotedKeysInObjects": true, - "disallowSpaceAfterObjectKeys": true, - "disallowSpaceAfterPrefixUnaryOperators": true, - "disallowSpaceBeforePostfixUnaryOperators": true, - "disallowSpaceBeforeBinaryOperators": [ - "," - ], - "disallowMixedSpacesAndTabs": true, - "disallowTrailingWhitespace": true, - "disallowTrailingComma": true, - "disallowYodaConditions": true, - "disallowKeywords": [ - "with" - ], - "disallowMultipleLineBreaks": true, - "disallowMultipleVarDecl": true, - "requireSpaceBeforeBlockStatements": true, - "requireParenthesesAroundIIFE": true, - "requireSpacesInConditionalExpression": true, - "requireBlocksOnNewline": 1, - "requireCommaBeforeLineBreak": true, - "requireSpaceBeforeBinaryOperators": true, - "requireSpaceAfterBinaryOperators": true, - "requireCamelCaseOrUpperCaseIdentifiers": true, - "requireLineFeedAtFileEnd": true, - "requireCapitalizedConstructors": true, - "requireDotNotation": true, - "requireSpacesInForStatement": true, - "requireSpaceBetweenArguments": true, - "requireCurlyBraces": [ - "do" - ], - "requireSpaceAfterKeywords": [ - "if", - "else", - "for", - "while", - "do", - "switch", - "case", - "return", - "try", - "catch", - "typeof" - ], - "safeContextKeyword": "_this", - "validateLineBreaks": "LF", - "validateQuoteMarks": "'", - "validateIndentation": 2 -} diff --git a/.jshintrc b/.jshintrc deleted file mode 100644 index 08096ef..0000000 --- a/.jshintrc +++ /dev/null @@ -1,32 +0,0 @@ -{ - "predef": [ - "document", - "window", - "-Promise" - ], - "browser": true, - "boss": true, - "curly": true, - "debug": false, - "devel": true, - "eqeqeq": true, - "evil": true, - "forin": false, - "immed": false, - "laxbreak": false, - "newcap": true, - "noarg": true, - "noempty": false, - "nonew": false, - "nomen": false, - "onevar": false, - "plusplus": false, - "regexp": false, - "undef": true, - "sub": true, - "strict": false, - "white": false, - "eqnull": true, - "esnext": true, - "unused": true -} diff --git a/.travis.yml b/.travis.yml index e69de29..ac366b8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -0,0 +1,45 @@ +--- +language: node_js +node_js: + # we recommend testing addons with the same minimum supported node version as Ember CLI + # so that your addon works for all apps + - "4" + +sudo: false +dist: trusty + +addons: + chrome: stable + +cache: + directories: + - $HOME/.npm + +env: + global: + # See https://git.io/vdao3 for details. + - JOBS=1 + matrix: + # we recommend new addons test the current and previous LTS + # as well as latest stable release (bonus points to beta/canary) + - EMBER_TRY_SCENARIO=ember-lts-2.8 + - EMBER_TRY_SCENARIO=ember-lts-2.12 + - EMBER_TRY_SCENARIO=ember-release + - EMBER_TRY_SCENARIO=ember-beta + - EMBER_TRY_SCENARIO=ember-canary + - EMBER_TRY_SCENARIO=ember-default + +matrix: + fast_finish: true + allow_failures: + - env: EMBER_TRY_SCENARIO=ember-canary + +before_install: + - npm config set spin false + - npm install -g npm@4 + - npm --version + +script: + # Usually, it's ok to finish the test scenario without reverting + # to the addon's original dependency state, skipping "cleanup". + - node_modules/.bin/ember try:one $EMBER_TRY_SCENARIO --skip-cleanup diff --git a/Brocfile.js b/Brocfile.js deleted file mode 100644 index 042a64d..0000000 --- a/Brocfile.js +++ /dev/null @@ -1,21 +0,0 @@ -/* jshint node: true */ -/* global require, module */ - -var EmberAddon = require('ember-cli/lib/broccoli/ember-addon'); - -var app = new EmberAddon(); - -// Use `app.import` to add additional libraries to the generated -// output files. -// -// If you need to use different assets in different -// environments, specify an object as the first parameter. That -// object's keys should be the environment name and the values -// should be the asset to use in that environment. -// -// If the library that you are including contains AMD or ES6 -// modules that you would like to import into your application -// please specify an object with the list of modules as keys -// along with the exports of each module as its value. - -module.exports = app.toTree(); diff --git a/app/mixins/google-pageview.js b/app/mixins/google-pageview.js index 1590444..72eb090 100644 --- a/app/mixins/google-pageview.js +++ b/app/mixins/google-pageview.js @@ -2,19 +2,16 @@ import Ember from 'ember'; import ENV from '../config/environment'; export default Ember.Mixin.create({ - beforePageviewToGA: function (ga) { - - }, - + beforePageviewToGA(/*ga*/) {}, pageviewToGA: Ember.on('didTransition', function(page, title) { - var page = page ? page : this.get('url'); - var title = title ? title : this.get('url'); + page = page ? page : this.get('url'); + title = title ? title : this.get('url'); if (Ember.get(ENV, 'googleAnalytics.webPropertyId') != null) { - var trackerType = Ember.getWithDefault(ENV, 'googleAnalytics.tracker', 'analytics.js'); + let trackerType = Ember.getWithDefault(ENV, 'googleAnalytics.tracker', 'analytics.js'); if (trackerType === 'analytics.js') { - var globalVariable = Ember.getWithDefault(ENV, 'googleAnalytics.globalVariable', 'ga'); + let globalVariable = Ember.getWithDefault(ENV, 'googleAnalytics.globalVariable', 'ga'); this.beforePageviewToGA(window[globalVariable]); @@ -27,5 +24,4 @@ export default Ember.Mixin.create({ } } }) - }); diff --git a/bower.json b/bower.json deleted file mode 100644 index 5db4de2..0000000 --- a/bower.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "ember-cli-google-analytics", - "dependencies": { - "handlebars": "~1.3.0", - "jquery": "^1.11.1", - "ember": "1.8.1", - "ember-data": "1.0.0-beta.12", - "ember-resolver": "~0.1.11", - "loader.js": "ember-cli/loader.js#1.0.1", - "ember-cli-shims": "ember-cli/ember-cli-shims#0.0.3", - "ember-cli-test-loader": "ember-cli/ember-cli-test-loader#0.1.0", - "ember-load-initializers": "ember-cli/ember-load-initializers#0.0.2", - "ember-qunit": "0.1.8", - "ember-qunit-notifications": "0.0.5", - "qunit": "~1.17.1" - } -} diff --git a/config/ember-try.js b/config/ember-try.js new file mode 100644 index 0000000..21f6079 --- /dev/null +++ b/config/ember-try.js @@ -0,0 +1,83 @@ +/* eslint-env node */ +module.exports = { + scenarios: [ + { + name: 'ember-lts-2.8', + bower: { + dependencies: { + 'ember': 'components/ember#lts-2-8' + }, + resolutions: { + 'ember': 'lts-2-8' + } + }, + npm: { + devDependencies: { + 'ember-source': null + } + } + }, + { + name: 'ember-lts-2.12', + npm: { + devDependencies: { + 'ember-source': '~2.12.0' + } + } + }, + { + name: 'ember-release', + bower: { + dependencies: { + 'ember': 'components/ember#release' + }, + resolutions: { + 'ember': 'release' + } + }, + npm: { + devDependencies: { + 'ember-source': null + } + } + }, + { + name: 'ember-beta', + bower: { + dependencies: { + 'ember': 'components/ember#beta' + }, + resolutions: { + 'ember': 'beta' + } + }, + npm: { + devDependencies: { + 'ember-source': null + } + } + }, + { + name: 'ember-canary', + bower: { + dependencies: { + 'ember': 'components/ember#canary' + }, + resolutions: { + 'ember': 'canary' + } + }, + npm: { + devDependencies: { + 'ember-source': null + } + } + }, + { + name: 'ember-default', + npm: { + devDependencies: {} + } + } + ] +}; diff --git a/config/environment.js b/config/environment.js index 0dfaed4..012a412 100644 --- a/config/environment.js +++ b/config/environment.js @@ -1,3 +1,4 @@ +/* eslint-env node */ 'use strict'; module.exports = function(/* environment, appConfig */) { diff --git a/ember-cli-build.js b/ember-cli-build.js new file mode 100644 index 0000000..156e23f --- /dev/null +++ b/ember-cli-build.js @@ -0,0 +1,19 @@ +/* eslint-env node */ +'use strict'; + +const EmberAddon = require('ember-cli/lib/broccoli/ember-addon'); + +module.exports = function(defaults) { + let app = new EmberAddon(defaults, { + // Add options here + }); + + /* + This build file specifies the options for the dummy test app of this + addon, located in `/tests/dummy` + This build file does *not* influence how the addon or the app using it + behave. You most likely want to be modifying `./index.js` or app's build file + */ + + return app.toTree(); +}; diff --git a/package.json b/package.json index 8df98cb..96f2ba8 100644 --- a/package.json +++ b/package.json @@ -20,28 +20,29 @@ }, "homepage": "https://github.com/pgrippi/ember-cli-google-analytics", "engines": { - "node": ">= 0.10.0" + "node": "^4.5 || 6.* || >= 7.*" }, "author": "Peter Grippi", "license": "MIT", "devDependencies": { - "broccoli-asset-rev": "^2.0.0", - "broccoli-ember-hbs-template-compiler": "^1.6.1", - "broccoli-jscs": "0.0.14", - "ember-cli": "0.1.12", - "ember-cli-6to5": "^3.0.0", - "ember-cli-app-version": "0.3.1", - "ember-cli-content-security-policy": "0.3.0", - "ember-cli-dependency-checker": "0.0.7", - "ember-cli-ic-ajax": "0.1.1", - "ember-cli-inject-live-reload": "^1.3.0", - "ember-cli-qunit": "0.3.1", - "ember-cli-uglify": "1.0.1", - "ember-data": "1.0.0-beta.12", - "ember-disable-prototype-extensions": "^1.0.1", - "ember-export-application-global": "^1.0.0", - "express": "^4.8.5", - "glob": "^4.0.5" + "broccoli-asset-rev": "^2.4.5", + "ember-ajax": "^3.0.0", + "ember-cli": "~2.16.2", + "ember-cli-dependency-checker": "^2.0.0", + "ember-cli-eslint": "^4.0.0", + "ember-cli-htmlbars": "^2.0.1", + "ember-cli-htmlbars-inline-precompile": "^1.0.0", + "ember-cli-inject-live-reload": "^1.4.1", + "ember-cli-qunit": "^4.0.0", + "ember-cli-shims": "^1.1.0", + "ember-cli-sri": "^2.1.0", + "ember-cli-uglify": "^2.0.0", + "ember-disable-prototype-extensions": "^1.1.2", + "ember-export-application-global": "^2.0.0", + "ember-load-initializers": "^1.0.0", + "ember-resolver": "^4.0.0", + "ember-source": "~2.16.0", + "loader.js": "^4.2.3" }, "keywords": [ "ember-addon", diff --git a/testem.js b/testem.js new file mode 100644 index 0000000..e79c22e --- /dev/null +++ b/testem.js @@ -0,0 +1,22 @@ +/* eslint-env node */ +module.exports = { + test_page: 'tests/index.html?hidepassed', + disable_watching: true, + launch_in_ci: [ + 'Chrome' + ], + launch_in_dev: [ + 'Chrome' + ], + browser_args: { + Chrome: { + mode: 'ci', + args: [ + '--disable-gpu', + '--headless', + '--remote-debugging-port=9222', + '--window-size=1440,900' + ] + }, + } +}; diff --git a/testem.json b/testem.json deleted file mode 100644 index 42a4ddb..0000000 --- a/testem.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "framework": "qunit", - "test_page": "tests/index.html?hidepassed", - "launch_in_ci": [ - "PhantomJS" - ], - "launch_in_dev": [ - "PhantomJS", - "Chrome" - ] -} diff --git a/tests/helpers/resolver.js b/tests/helpers/resolver.js index 28f4ece..b208d38 100644 --- a/tests/helpers/resolver.js +++ b/tests/helpers/resolver.js @@ -1,7 +1,7 @@ -import Resolver from 'ember/resolver'; +import Resolver from '../../resolver'; import config from '../../config/environment'; -var resolver = Resolver.create(); +const resolver = Resolver.create(); resolver.namespace = { modulePrefix: config.modulePrefix, diff --git a/tests/helpers/start-app.js b/tests/helpers/start-app.js index 16cc7c3..681aa01 100644 --- a/tests/helpers/start-app.js +++ b/tests/helpers/start-app.js @@ -1,19 +1,16 @@ -import Ember from 'ember'; import Application from '../../app'; -import Router from '../../router'; import config from '../../config/environment'; +import { merge } from '@ember/polyfills'; +import { run } from '@ember/runloop'; export default function startApp(attrs) { - var application; + let attributes = merge({}, config.APP); + attributes = merge(attributes, attrs); // use defaults, but you can override; - var attributes = Ember.merge({}, config.APP); - attributes = Ember.merge(attributes, attrs); // use defaults, but you can override; - - Ember.run(function() { - application = Application.create(attributes); + return run(() => { + let application = Application.create(attributes); application.setupForTesting(); application.injectTestHelpers(); + return application; }); - - return application; } diff --git a/tests/index.html b/tests/index.html index 8fea6fe..5209b85 100644 --- a/tests/index.html +++ b/tests/index.html @@ -7,27 +7,27 @@ - {{content-for 'head'}} - {{content-for 'test-head'}} + {{content-for "head"}} + {{content-for "test-head"}} - - - + + + - {{content-for 'head-footer'}} - {{content-for 'test-head-footer'}} + {{content-for "head-footer"}} + {{content-for "test-head-footer"}}
+ {{content-for "body"}} + {{content-for "test-body"}} - {{content-for 'body'}} - {{content-for 'test-body'}} - - - - - + + + + + - {{content-for 'body-footer'}} - {{content-for 'test-body-footer'}} + {{content-for "body-footer"}} + {{content-for "test-body-footer"}}