Вход Регистрация
Файл: framework/admin/javascript/jquery-changetracker/spec/lib/jspec.growl.js
Строк: 123
<?php
// JSpec - Growl - Copyright TJ Holowaychuk <tj@vision-media.ca> (MIT Licensed)

;(function(){
  
  
Growl = {
    
    
// --- Version
    
    
version'1.0.0',
    
    
/**
     * Execute the given _cmd_, returning an array of lines from stdout.
     *
     * Examples:
     *
     *   Growl.exec('growlnotify', '-m', msg)
     *
     * @param  {string ...} cmd
     * @return {array}
     * @api public
     */

    
exec: function(cmd) {
      var 
lines = [], line
      with 
(JavaImporter(java.langjava.io)) {
        var 
proccess Runtime.getRuntime().exec(Array.prototype.slice.call(arguments))
        var 
stream = new DataInputStream(proccess.getInputStream())
        while (
line stream.readLine())
          
lines.push(line '')
        
stream.close()    
      }
      return 
lines
    
},
    
    
/**
     * Return the extension of the given _path_ or null.
     *
     * @param  {string} path
     * @return {string}
     * @api private
     */
    
    
extname: function(path) {
      return 
path.lastIndexOf('.') != -
        
path.slice(path.lastIndexOf('.') + 1path.length) :
          
null
    
},

    
/**
     * Version of the 'growlnotify' binary.
     *
     * @return {string}
     * @api private
     */

    
binVersion: function() {
      try { return 
this.exec('growlnotify''-v')[0].split(' ')[1] } catch (e) {}
    },

    
/**
     * Send growl notification _msg_ with _options_.
     *
     * Options:
     *
     *  - title   Notification title
     *  - sticky  Make the notification stick (defaults to false)
     *  - name    Application name (defaults to growlnotify)
     *  - image
     *    - path to an icon sets --iconpath
     *    - path to an image sets --image
     *    - capitalized word sets --appIcon
     *    - filename uses extname as --icon
     *    - otherwise treated as --icon
     *
     * Examples:
     *
     *   Growl.notify('New email')
     *   Growl.notify('5 new emails', { title: 'Thunderbird' })
     *
     * @param {string} msg
     * @param {options} hash
     * @api public
     */

    
notify: function(msgoptions) {
      
options options || {}
      var 
args = ['growlnotify''-m'msg]
      if (!
this.binVersion()) throw new Error('growlnotify executable is required')
      if (
image options.image) {
        var 
flagext this.extname(image)
        
flag flag || ext == 'icns' && 'iconpath'
        
flag flag || /^[A-Z]/.test(image) && 'appIcon'
        
flag flag || /^png|gif|jpe?g$/.test(ext) && 'image'
        
flag flag || ext && (image ext) && 'icon'
        
flag flag || 'icon'
        
args.push('--' flagimage)
      }
      if (
options.stickyargs.push('--sticky')
      if (
options.nameargs.push('--name'options.name)
      if (
options.titleargs.push(options.title)
      
this.exec.apply(thisargs)
    }
  }
  
  
JSpec.include({
    
name'Growl',
    
reporting: function(options){
      var 
stats JSpec.stats
      
if (stats.failuresGrowl.notify('failed ' stats.failures ' assertions', { title'JSpec'})
      else 
Growl.notify('passed ' stats.passes ' assertions', { title'JSpec' })
    }
  })
  
})()
?>
Онлайн: 2
Реклама