Skip to content

Instantly share code, notes, and snippets.

@bryanaka
Last active August 29, 2015 14:14
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save bryanaka/7d6e2c1ec5f1e83c7c5a to your computer and use it in GitHub Desktop.
Ember-Rails to Ember CLI
import Ember from 'ember';
import EmberResolver from 'ember/resolver';
var Em = Ember;
var HybridResolver = EmberResolver.extend({
resolveOther: function(parsedName) {
var factory = this.resolveGlobal(parsedName);
if(factory) { return factory; }
return this._super.apply(this, arguments);
},
// https://github.com/emberjs/ember.js/blob/v1.4.0/packages/ember-application/lib/system/resolver.js#L274
resolveGlobal: function(parsedName) {
var name, className, factory;
name = parsedName.name.replace(/[\.\/]/g, '_');
if(name === 'basic' || name === 'main') { name = ''; }
className = Em.String.classify(name) + Em.String.classify(parsedName.type);
factory = Em.get(parsedName.root, className);
if(factory) { return factory; }
},
// https://github.com/emberjs/ember.js/blob/v1.4.0/packages/ember-application/lib/system/resolver.js#L183
resolveTemplate: function(parsedName) {
var templateName;
templateName = parsedName.fullNameWithoutType.replace(/\./g, '/');
if(Ember.TEMPLATES[templateName]) { return Ember.TEMPLATES[templateName]; }
// dasherized
templateName = Em.String.decamelize(templateName);
if(Ember.TEMPLATES[templateName]) { return Ember.TEMPLATES[templateName]; }
// underscores: are they being deprecated?
templateName = Em.String.underscore(templateName);
if(Ember.TEMPLATES[templateName]) { return Ember.TEMPLATES[templateName]; }
},
// https://github.com/emberjs/ember.js/blob/v1.4.0/packages/ember-application/lib/system/resolver.js#L247
resolveHelper: function(parsedName) {
return this.resolveOther(parsedName) || Ember.Handlebars.helpers[parsedName.fullNameWithoutType];
}
});
export default HybridResolver;
var HybridResolver = require('converted-app/hybrid-resolver')['default'];
App = Ember.Application.create({
modulePrefix: 'your-project',
Resolver: HybridResolver
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment