1- # Ember -cli-adapter-pattern [ ![ Build Status] ( https://travis-ci.org/tomasbasham/ember-cli-adapter-pattern.svg?branch=master )] ( https://travis-ci.org/tomasbasham/ember-cli-adapter-pattern )
1+ # ember -cli-adapter-pattern [ ![ Build Status] ( https://travis-ci.org/tomasbasham/ember-cli-adapter-pattern.svg?branch=master )] ( https://travis-ci.org/tomasbasham/ember-cli-adapter-pattern )
22
33An [ Ember CLI] ( https://ember-cli.com/ ) addon to standardise a common adapter
44pattern.
@@ -37,11 +37,19 @@ service.
3737
3838``` JavaScript
3939// app/services/social.js
40- import Ember from ' ember' ;
40+ import Service from ' @ember/service' ;
41+
4142import Adaptable from ' ember-cli-adapter-pattern/mixins/adaptable' ;
4243import proxyToAdapter from ' ember-cli-adapter-pattern/utils/proxy-to-adapter' ;
4344
44- export default Ember .Service .extend (Adaptable, {
45+ import { getOwner } from ' @ember/application' ;
46+ import { A } from ' @ember/array' ;
47+ import { assert } from ' @ember/debug' ;
48+ import { get , getWithDefault } from ' @ember/object' ;
49+ import { on } from ' @embber/object/evented' ;
50+ import { dasherize } from ' @ember/string' ;
51+
52+ export default Service .extend (Adaptable, {
4553 login: proxyToAdapter (' login' ), // Provides a safe method to proxy your API to each adapter.
4654
4755 /**
@@ -51,13 +59,14 @@ export default Ember.Service.extend(Adaptable, {
5159 * `activateAdapters` method is
5260 * called.
5361 */
54- createAdapters: Ember . on (' init' , function () {
55- const adapters = Ember . getWithDefault (this , ' property.with.adapter.configurations' , Ember . A ());
62+ createAdapters: on (' init' , function () {
63+ const adapters = getWithDefault (this , ' property.with.adapter.configurations' , A ());
5664
5765 this .set (' _adapters' , {});
5866 this .set (' context' , {});
5967
60- this .activateAdapters (adapters); // This is important and activates configured adapters.
68+ // Activate configured adapter.
69+ this .activateAdapters (adapters);
6170 }),
6271
6372 /**
@@ -68,11 +77,11 @@ export default Ember.Service.extend(Adaptable, {
6877 * container.
6978 */
7079 _lookupAdapter (adapterName ) {
71- Ember . assert (' Could not find adapter without a name' , adapterName);
80+ assert (' Could not find adapter without a name' , adapterName);
7281
73- const container = this . get ( ' container ' );
74- const dasherizedAdapterName = Ember . String . dasherize (adapterName);
75- const adapter = container .lookup (` container:${ dasherizedAdapterName} ` );
82+ const owner = getOwner ( this );
83+ const dasherizedAdapterName = dasherize (adapterName);
84+ const adapter = owner .lookup (` container:${ dasherizedAdapterName} ` );
7685
7786 return adapter;
7887 }
@@ -92,14 +101,18 @@ ember object (i.e. a controller) and invoke it as normal.
92101
93102``` JavaScript
94103// app/controller/application.js
95- import Ember from ' ember' ;
104+ import Controller from ' @ ember/controller ' ;
96105
97- export default Ember .Controller .extend ({
98- social: Ember .Service .inject (),
106+ import { get } from ' @ember/object' ;
107+ import { inject } from ' @ember/service' ;
108+
109+ export default Controller .extend ({
110+ social: inject (),
99111
100112 actions: {
101113 loginWithService () {
102- this .get (' social' ).login ({ username: ' Jean-Luc Picard' , password: ' Enterprise-D' });
114+ const social = get (this , ' social' );
115+ social .login ({ username: ' Jean-Luc Picard' , password: ' Enterprise-D' });
103116 }
104117 }
105118});
@@ -115,14 +128,17 @@ then you must pass in it's name to the API call.
115128
116129``` JavaScript
117130// app/controller/application.js
118- import Ember from ' ember' ;
131+ import Controller from ' @ember/controller' ;
132+
133+ import { get } from ' @ember/object' ;
134+ import { inject } from ' @ember/service' ;
119135
120- export default Ember . Controller .extend ({
121- social: Ember . Service . inject (),
136+ export default Controller .extend ({
137+ social: inject (),
122138
123139 actions: {
124140 loginWithService () {
125- this . get (' social' ).login (' Facebook' , { username: ' Jean-Luc Picard' , password: ' Enterprise-D' });
141+ get (this , ' social' ).login (' Facebook' , { username: ' Jean-Luc Picard' , password: ' Enterprise-D' });
126142 }
127143 }
128144});
@@ -146,10 +162,10 @@ within the `Adaptable` mixin.
146162
147163``` JavaScript
148164// app/services/social.js
149- import Ember from ' ember' ;
165+ import Service from ' @ ember/service ' ;
150166import Adaptable from ' ember-cli-adapter-pattern/mixins/adaptable' ;
151167
152- export default Ember . Service .extend (Adaptable, {
168+ export default Service .extend (Adaptable, {
153169 login (... args ) {
154170 // Extended operations here.
155171 this .invoke (' login' , ... args);
0 commit comments