UNPKG

coffee-toaster

Version:

Minimalist manager and build system for CoffeeScript, an alternative for AMD's or CJS's OOP patterns, but with similar results. Made for those who dare to use class definitions in CoffeeScript while being able to easily inherit from external files. Powered with imports directives that use wildcards facilities, exposed scopes and excluded files filter options. The system can even use folders-as-namespaces to help you avoid naming collisions in architecture.

88 lines (60 loc) 1.47 kB
# requirements growl = require 'growl' # ICONS icon_warn = __dirname + '/../images/warning.png' icon_error = __dirname + '/../images/error.png' # LOGGING METHODS log = ( msg, send_to_growl = false ) -> console.log msg return msg debug = ( msg, send_to_growl = false ) -> msg = log "#{msg.magenta}" return msg error = ( msg, send_to_growl = true, file = null ) -> msg = log "ERROR ".bold.red + msg if send_to_growl # remove all colors msg = msg.replace /\[\d{2}m/g, "" # replaces all styles with _%string-here%_ msg = msg.replace /(\[\dm)([^\s]+)/ig, "<$2>$3" # queue for growl queue_msg msg: msg opts: title: 'Coffee Toaster' image: icon_error return msg warn = ( msg, send_to_growl = true ) -> msg = log "WARNING ".bold.yellow + msg if send_to_growl # remove all colors msg = msg.replace /\[\d{2}m/g, "" # replaces all styles with _%string-here%_ msg = msg.replace /(\[\dm)([^\s]+)/ig, "<$2>$3" # queue for growl queue_msg msg: msg opts: title: 'Coffee Toaster' image: icon_warn return msg # GROWL QUEUE PRO msgs = [] interval = null start_worker = () -> unless interval? interval = setInterval process_msgs, 150 process_msgs() stop_worker = () -> if interval? clearInterval interval interval = null queue_msg = (msg) -> msgs.push msg start_worker() process_msgs = () -> if msgs.length msg = msgs.shift() growl.notify msg.msg, msg.opts else stop_worker()