Skip to content

Instantly share code, notes, and snippets.

@lukemelia
Created March 19, 2013 14:56
Show Gist options
  • Save lukemelia/5196804 to your computer and use it in GitHub Desktop.
Save lukemelia/5196804 to your computer and use it in GitHub Desktop.
How we are using the new resolver hook in ember.js master to auto-require most of our minispade modules
get = Ember.get
decamelize = Ember.String.decamelize
classify = Ember.String.classify
MinispadeResolver = Ember.DefaultResolver.extend
logFailedLookups: true
resolveTemplate: (parsedName)->
resolvedTemplate = @_super(parsedName)
unless resolvedTemplate
try
require "templates:#{parsedName.fullNameWithoutType}"
catch e
if @logFailedLookups
Ember.Logger.warn("Could not find templates:#{parsedName.fullNameWithoutType}")
resolvedTemplate = Ember.TEMPLATES[parsedName.fullNameWithoutType]
resolvedTemplate
parseName: (fullName)->
parsedName = @_super(fullName)
if parsedName.type == 'model'
parsedName.suffix = ''
else
parsedName.suffix = parsedName.type
parsedName
resolveOther: (parsedName)->
className = classify(parsedName.name) + classify(parsedName.suffix)
factory = get(parsedName.root, className)
unless factory
try
minispade.require "#{parsedName.type}s/#{decamelize(parsedName.name)}"
catch e
if @logFailedLookups
Ember.Logger.warn("Could not find #{parsedName.fullName}")
factory = get(parsedName.root, className)
factory
window.App = Ember.Application.create
resolver: MinispadeResolver
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment