Skip to content

Commit

Permalink
Merge pull request #16 from linus/master
Browse files Browse the repository at this point in the history
Implement require extension
  • Loading branch information
balupton committed Aug 31, 2012
2 parents 595d5ec + ba118b8 commit fa0b0ff
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 2 deletions.
6 changes: 5 additions & 1 deletion src/lib/cson.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,10 @@ CSON =
# Return
result

# Add require extension, so you can require 'foo.cson'
if require.extensions
require.extensions['.cson'] = (module, filename) ->
module.exports = CSON.parseFileSync filename

# Export
module.exports = CSON
module.exports = CSON
11 changes: 10 additions & 1 deletion src/test/sync.test.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ joe.describe 'sync', (describe,it) ->
expectedJsonPath = outPath+'/'+index+'.json'
expectedCsonPath = outPath+'/'+index+'.cson'
obj = null
requiredObj = null
actualJsonStr = null
actualCsonStr = null
expectedJsonStr = null
Expand All @@ -32,6 +33,14 @@ joe.describe 'sync', (describe,it) ->
return done(obj) if obj instanceof Error
done()

it "require source file", (done) ->
requiredObj = require(srcCsonPath)
return done(requiredObj) if requiredObj instanceof Error
done()

it "compare parse and require", ->
assert.deepEqual(obj,requiredObj)

it "grab conversions", (done) ->
actualJsonStr = JSON.stringify(obj)
actualCsonStr = CSON.stringifySync(obj)
Expand All @@ -50,4 +59,4 @@ joe.describe 'sync', (describe,it) ->
# Create Tests
testExtensions = ['cson','cson','cson','json','coffee','js','cson']
for testExtension,i in testExtensions
createTest(testExtension,i)
createTest(testExtension,i)

0 comments on commit fa0b0ff

Please sign in to comment.