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
text/coffeescript
# 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()