Namespacing Classes

Namespacing Classes

by patelsan

CoffeeScript

class Object
 toString: (name)->
  return 'I am an Object with name ' + name

namespace = (target, name, block) ->
  [target, name, block] = [(if typeof exports isnt 'undefined' then exports else window), arguments...] if arguments.length < 3
  top    = target
  target = target[item] or= {} for item in name.split '.'
  block target, top

namespace '', (exports, root) -> root.namespace = namespace

#console.log(window.namespace)   

namespace "System.IO",(exports)->
  exports.Object = Object
  
obj = new System.IO.Object()
console.log obj.toString('Computer')

#<-- Following Doesnt Work
namespace 'System.Web',(exports)->
 class Browser
  version = ()->
   return 'Chrome'
   
client = new System.Web.Browser()
console.log client.version()