From 93add06d5f96058cd0774aa5260b152fd82392a8 Mon Sep 17 00:00:00 2001 From: Chris Wanstrath Date: Fri, 2 Sep 2011 19:48:08 -0700 Subject: [PATCH] implement ../ and ./ require() prefixes --- src/bootstrap.coffee | 22 ++++++++++++++-------- src/require.coffee | 6 ++++-- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/src/bootstrap.coffee b/src/bootstrap.coffee index 1c136194f..3e138f6be 100644 --- a/src/bootstrap.coffee +++ b/src/bootstrap.coffee @@ -5,11 +5,17 @@ root = OSX.NSBundle.mainBundle.resourcePath code = OSX.NSString.stringWithContentsOfFile path = "#{root}/src/require.js" __jsc__.evalJSString_withScriptPath code, path -console.log 'require tests:' -console.log require.resolve 'underscore' -console.log require.resolve 'osx' -console.log require.resolve 'tabs/tabs' -console.log require.resolve '~/.atomicity' -console.log require.resolve 'ace/requirejs/text!ace/css/editor.css' -console.log require.resolve 'ace/keyboard/keybinding' -console.log '--------------' +OSX.NSLog 'require tests:' +OSX.NSLog require.resolve 'underscore' +OSX.NSLog require.resolve 'osx' +OSX.NSLog require.resolve 'tabs/tabs' + +[ fn, window.__filename ] = [ __filename, "#{root}/src/bootstrap.js" ] +OSX.NSLog require.resolve './document' +OSX.NSLog require.resolve '../README.md' +window.__filename = fn + +OSX.NSLog require.resolve '~/.atomicity' +OSX.NSLog require.resolve 'ace/requirejs/text!ace/css/editor.css' +OSX.NSLog require.resolve 'ace/keyboard/keybinding' +OSX.NSLog '--------------' diff --git a/src/require.coffee b/src/require.coffee index 08bf11e58..4626ae0b1 100644 --- a/src/require.coffee +++ b/src/require.coffee @@ -60,10 +60,12 @@ resolve = (file) -> .stringByExpandingTildeInPath.toString() if file[0..1] is './' - throw "require: ./ prefix not yet implemented" + prefix = __filename.split('/')[0..-2].join '/' + file = file.replace './', "#{prefix}/" if file[0..2] is '../' - throw "require: ../ prefix not yet implemented" + prefix = __filename.split('/')[0..-3].join '/' + file = file.replace '../', "#{prefix}/" if file[0] isnt '/' paths.some (path) ->