Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Modernize addon #99

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# unconventional js
/blueprints/*/files/
/vendor/

# compiled output
/dist/
/tmp/

# dependencies
/bower_components/
/node_modules/

# misc
/coverage/
!.*

# ember-try
/.node_modules.ember-try/
/bower.json.ember-try
/package.json.ember-try
48 changes: 44 additions & 4 deletions .eslintrc.js
Original file line number Diff line number Diff line change
@@ -1,16 +1,56 @@
module.exports = {
root: true,
parser: 'babel-eslint',
parserOptions: {
ecmaVersion: 2017,
sourceType: 'module'
ecmaVersion: 2018,
sourceType: 'module',
ecmaFeatures: {
legacyDecorators: true
}
},
plugins: [
'ember'
],
extends: [
'eslint:recommended',
'plugin:ember-suave/recommended'
'plugin:ember/recommended'
],
env: {
browser: true
},
rules: {
}
'ember/no-jquery': 'error'
},
overrides: [
// node files
{
files: [
'.eslintrc.js',
'.template-lintrc.js',
'ember-cli-build.js',
'index.js',
'testem.js',
'blueprints/*/index.js',
'config/**/*.js',
'tests/dummy/config/**/*.js'
],
excludedFiles: [
'addon/**',
'addon-test-support/**',
'app/**',
'tests/dummy/app/**'
],
parserOptions: {
sourceType: 'script'
},
env: {
browser: false,
node: true
},
plugins: ['node'],
rules: Object.assign({}, require('eslint-plugin-node').configs.recommended.rules, {
// add your custom rules and overrides for node files here
})
}
]
};
24 changes: 13 additions & 11 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,23 +1,25 @@
# See https://help.github.com/ignore-files/ for more about ignoring files.

# compiled output
/dist
/tmp
/dist/
/tmp/

# dependencies
/node_modules
/bower_components
/bower_components/
/node_modules/

# misc
/.env*
/.pnp*
/.sass-cache
/connect.lock
/coverage/*
/coverage/
/libpeerconnection.log
npm-debug.log*
yarn-error.log
testem.log
/npm-debug.log*
/testem.log
/yarn-error.log

# ember-try
.node_modules.ember-try/
bower.json.ember-try
package.json.ember-try
/.node_modules.ember-try/
/bower.json.ember-try
/package.json.ember-try
46 changes: 31 additions & 15 deletions .npmignore
Original file line number Diff line number Diff line change
@@ -1,16 +1,32 @@
/bower_components
# compiled output
/dist/
/tmp/

# dependencies
/bower_components/

# misc
/.bowerrc
/.editorconfig
/.ember-cli
/.env*
/.eslintignore
/.eslintrc.js
/.git/
/.gitignore
/.template-lintrc.js
/.travis.yml
/.watchmanconfig
/bower.json
/config/ember-try.js
/dist
/tests
/tmp
**/.gitkeep
.bowerrc
.editorconfig
.ember-cli
.gitignore
.eslintrc.js
.watchmanconfig
.travis.yml
bower.json
ember-cli-build.js
testem.js
/CONTRIBUTING.md
/ember-cli-build.js
/testem.js
/tests/
/yarn.lock
.gitkeep

# ember-try
/.node_modules.ember-try/
/bower.json.ember-try
/package.json.ember-try
10 changes: 10 additions & 0 deletions .template-lintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
'use strict';

module.exports = {
extends: 'octane',
rules: {
'no-curly-component-invocation': false,
'no-inline-styles': false,
'no-positive-tabindex': false
}
};
60 changes: 38 additions & 22 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
---
language: node_js
node_js:
- "6"
# we recommend testing addons with the same minimum supported node version as Ember CLI
# so that your addon works for all apps
- "8"

sudo: false
dist: trusty
Expand All @@ -17,29 +19,43 @@ env:
global:
# See https://git.io/vdao3 for details.
- JOBS=1
matrix:
- EMBER_TRY_SCENARIO=ember-lts-2.8
- EMBER_TRY_SCENARIO=ember-lts-2.12
- EMBER_TRY_SCENARIO=ember-lts-2.16
- EMBER_TRY_SCENARIO=ember-lts-2.18
- EMBER_TRY_SCENARIO=ember-lts-3.4
- EMBER_TRY_SCENARIO=ember-release
- EMBER_TRY_SCENARIO=ember-beta
- EMBER_TRY_SCENARIO=ember-canary
- EMBER_TRY_SCENARIO=ember-default
- EMBER_TRY_SCENARIO=ember-default-with-jquery

matrix:
fast_finish: true

branches:
only:
- master
# npm version tags
- /^v\d+\.\d+\.\d+/

jobs:
fail_fast: true
allow_failures:
- env: EMBER_TRY_SCENARIO=ember-canary

before_install:
- npm config set spin false
- npm install -g npm@4
- npm --version
include:
# runs linting and tests with current locked deps
- stage: "Tests"
name: "Tests"
script:
- npm run lint:hbs
- npm run lint:js
- npm test

- stage: "Additional Tests"
name: "Floating Dependencies"
install:
- npm install --no-package-lock
script:
- npm test

# we recommend new addons test the current and previous LTS
# as well as latest stable release (bonus points to beta/canary)
- env: EMBER_TRY_SCENARIO=ember-lts-3.8
- env: EMBER_TRY_SCENARIO=ember-lts-3.12
- env: EMBER_TRY_SCENARIO=ember-release
- env: EMBER_TRY_SCENARIO=ember-beta
- env: EMBER_TRY_SCENARIO=ember-canary
- env: EMBER_TRY_SCENARIO=ember-default-with-jquery
- env: EMBER_TRY_SCENARIO=ember-classic

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
- node_modules/.bin/ember try:one $EMBER_TRY_SCENARIO
26 changes: 26 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# How To Contribute

## Installation

* `git clone <repository-url>`
* `cd my-addon`
* `npm install`

## Linting

* `npm run lint:hbs`
* `npm run lint:js`
* `npm run lint:js -- --fix`

## Running tests

* `ember test` – Runs the test suite on the current Ember version
* `ember test --server` – Runs the test suite in "watch mode"
* `ember try:each` – Runs the test suite against multiple Ember versions

## Running the dummy application

* `ember serve`
* Visit the dummy application at [http://localhost:4200](http://localhost:4200).

For more information on using ember-cli, visit [https://ember-cli.com/](https://ember-cli.com/).
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) 2017
Copyright (c) 2020

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
5 changes: 0 additions & 5 deletions addon/components/radio-button-input.js
Original file line number Diff line number Diff line change
Expand Up @@ -54,11 +54,6 @@ export default Component.extend({
let value = this.get('value');
let changedAction = this.get('changed');

if (typeof changedAction === 'string') {
this.sendAction('changed', value);
return;
}

if (changedAction) {
changedAction(value);
}
Expand Down
10 changes: 4 additions & 6 deletions addon/components/radio-button.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,10 @@ export default Component.extend({

checkedClass: 'checked',

checkedClassWithFallback: computed('checkedClass', function() {
return this.get('checkedClass') || 'checked';
}),

checked: computed('groupValue', 'value', function() {
return isEqual(this.get('groupValue'), this.get('value'));
}).readOnly(),
Expand All @@ -40,12 +44,6 @@ export default Component.extend({
changed(newValue) {
let changedAction = this.get('changed');

// support legacy actions
if (typeof changedAction === 'string') {
this.sendAction('changed', newValue);
return;
}

// providing a closure action is optional
if (changedAction) {
changedAction(newValue);
Expand Down
53 changes: 27 additions & 26 deletions addon/templates/components/radio-button.hbs
Original file line number Diff line number Diff line change
@@ -1,33 +1,34 @@
{{#if hasBlock}}
<label class="ember-radio-button {{if checked checkedClass}} {{joinedClassNames}}" for={{radioId}}>
<label class="ember-radio-button {{if this.checked this.checkedClassWithFallback}} {{this.joinedClassNames}}" for={{@radioId}}>
{{radio-button-input
class=radioClass
id=radioId
autofocus=autofocus
disabled=disabled
name=name
required=required
tabindex=tabindex
groupValue=groupValue
value=value
ariaLabelledby=ariaLabelledby
ariaDescribedby=ariaDescribedby
changed=(action "changed")}}

class=@radioClass
id=@radioId
autofocus=@autofocus
disabled=@disabled
name=@name
required=@required
tabindex=@tabindex
groupValue=@groupValue
value=@value
ariaLabelledby=@ariaLabelledby
ariaDescribedby=@ariaDescribedby
changed=this.changed
}}
{{yield}}
</label>
{{else}}
{{radio-button-input
class=radioClass
id=radioId
autofocus=autofocus
disabled=disabled
name=name
required=required
tabindex=tabindex
groupValue=groupValue
value=value
ariaLabelledby=ariaLabelledby
ariaDescribedby=ariaDescribedby
changed=(action "changed")}}
class=@radioClass
id=@radioId
autofocus=@autofocus
disabled=@disabled
name=@name
required=@required
tabindex=@tabindex
groupValue=@groupValue
value=@value
ariaLabelledby=@ariaLabelledby
ariaDescribedby=@ariaDescribedby
changed=this.changed
}}
{{/if}}
Loading