diff --git a/CHANGELOG.md b/CHANGELOG.md index f31715b..233fc6d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ **v0.3.0edge** (unreleased): - Fixed #71: indexOf not supported in IE7 (thanks @jaekwon). + - Added better error reporting to express adapter. [benekastah] **v0.3.0** (2011-09-04): diff --git a/docs/coffeekup.html b/docs/coffeekup.html index 39779a7..16fb80e 100644 --- a/docs/coffeekup.html +++ b/docs/coffeekup.html @@ -14,7 +14,7 @@ coffeekup = exports coffee = require 'coffee-script' -coffeekup.version = 'unreleased'

Values available to the doctype function inside a template. +coffeekup.version = '0.3.0edge'

Values available to the doctype function inside a template. Ex.: doctype 'strict'

coffeekup.doctypes =
   'default': '<!DOCTYPE html>'
   '5': '<!DOCTYPE html>'
@@ -253,11 +253,24 @@
 unless window?
   coffeekup.adapters =

Legacy adapters for when CoffeeKup expected data in the context attribute.

    simple: coffeekup.render
     meryl: coffeekup.render
-    

Allows partial 'foo' instead of text @partial 'foo'.

    express:
-      compile: (template, data) -> 
-        data.hardcode ?= {}
+    
+    express:
+      TemplateError: class extends Error
+        constructor: (@message) ->
+          Error.call this, @message
+          Error.captureStackTrace this, arguments.callee
+        name: 'TemplateError'
+        
+      compile: (template, data) -> 

Allows partial 'foo' instead of text @partial 'foo'.

        data.hardcode ?= {}
         data.hardcode.partial = ->
             text @partial.apply @, arguments
-        coffeekup.compile(template, data)
+        
+        TemplateError = @TemplateError
+        try tpl = coffeekup.compile(template, data)
+        catch e then throw new TemplateError "Error compiling #{data.filename}: #{e.message}"
+        
+        return ->
+          try tpl arguments...
+          catch e then throw new TemplateError "Error rendering #{data.filename}: #{e.message}"
 
 
\ No newline at end of file diff --git a/package.json b/package.json index 6a12544..50a7e77 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ "Vladimir Dronnikov ", "James Campos ", "Martin Westergaard Lassen ", + "Paul Harper ", "Esa-Matti Suuronen ", "Jason King ", "Brandon Bloom ", diff --git a/src/coffeekup.coffee b/src/coffeekup.coffee index e9f6874..5fdd713 100644 --- a/src/coffeekup.coffee +++ b/src/coffeekup.coffee @@ -334,14 +334,15 @@ unless window? simple: coffeekup.render meryl: coffeekup.render - # Allows `partial 'foo'` instead of `text @partial 'foo'`. express: TemplateError: class extends Error constructor: (@message) -> Error.call this, @message Error.captureStackTrace this, arguments.callee - name: "TemplateError" + name: 'TemplateError' + compile: (template, data) -> + # Allows `partial 'foo'` instead of `text @partial 'foo'`. data.hardcode ?= {} data.hardcode.partial = -> text @partial.apply @, arguments @@ -349,7 +350,7 @@ unless window? TemplateError = @TemplateError try tpl = coffeekup.compile(template, data) catch e then throw new TemplateError "Error compiling #{data.filename}: #{e.message}" - + return -> try tpl arguments... - catch e then throw new TemplateError "Error rendering #{data.filename}: #{e.message}" + catch e then throw new TemplateError "Error rendering #{data.filename}: #{e.message}" \ No newline at end of file