项目作者: mnmly

项目描述 :
A simple wrapper to allow CocoaScript to execute NSTask / Process asynchronously.
高级语言: Swift
项目地址: git://github.com/mnmly/MochaAsyncTask.git
创建时间: 2017-03-25T04:10:01Z
项目社区:https://github.com/mnmly/MochaAsyncTask

开源协议:

下载


AsyncTask for CocoaScript

A simple wrapper to allow CocoaScript to execute NSTask (Process) asynchronously.

API

execWithLaunchPath_arguments(launchPath: String, Arguments:[String])

Same arguments as Process

onData(data: String)

[Delegate] Executed when command receives data

onEnd

[Delegate] Executed when command ends

Usage

  1. @import "Debug/MochaJSDelegate.js"
  2. COScript.currentCOScript().setShouldKeepAround_(true)
  3. function loadFramework(pluginRoot, pluginName, className) {
  4. className = className ? `${pluginName}.${className}` : pluginName
  5. if ( NSClassFromString( className ) == null ) {
  6. let mocha = Mocha.sharedRuntime()
  7. return mocha.loadFrameworkWithName_inDirectory( pluginName, pluginRoot )
  8. } else {
  9. return true
  10. }
  11. }
  12. let result = loadFramework( "./", "MochaAsyncTask", "AsyncTask" )
  13. if ( result == 0 ) log( "Failed to load framework..." )
  14. let AsyncTask = NSClassFromString( "MochaAsyncTask.AsyncTask" )
  15. let task = AsyncTask.alloc().init()
  16. let delegate = new MochaJSDelegate()
  17. delegate.setHandlerForSelector("onData:", (data)=> {
  18. log(data)
  19. })
  20. delegate.setHandlerForSelector("onEnd", (data)=> {
  21. log("ENDED")
  22. })
  23. task.setDelegate( delegate.getClassInstance() )
  24. task.execWithLaunchPath_arguments("/usr/bin/curl", ["https://google.com"])

Development

Make sure you pull its submodules first.

  1. $ git submodule update --init