From d91b3cbc1e6f083bccd451261f993fd8ccfc8154 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20Rupe=CC=81rez?= Date: Thu, 23 Feb 2017 10:33:50 +0100 Subject: [PATCH] Open Source! --- CHANGELOG.md | 0 Kommander.png | Bin 0 -> 33022 bytes Kommander.podspec | 4 +-- LICENSE | 12 +++++---- Package.swift | 6 +++++ README.md | 63 +++++++++++++++++++++++++++++++++++++++++++--- _config.yml | 1 + 7 files changed, 76 insertions(+), 10 deletions(-) create mode 100644 CHANGELOG.md create mode 100644 Kommander.png create mode 100644 Package.swift create mode 100644 _config.yml diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..e69de29 diff --git a/Kommander.png b/Kommander.png new file mode 100644 index 0000000000000000000000000000000000000000..339c603d0420d4adeef86f1e4d8584bfb042e356 GIT binary patch literal 33022 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 sT6yi 'MIT', :file => 'LICENSE' } s.author = { 'Alex Rupérez' => 'alejandro.ruperez@intelygenz.com', 'Juan Trías' => 'juan.trias@intelygenz.com', 'Roberto Estrada' => 'roberto.estrada@intelygenz.com' } - s.source = { :git => 'https://gitlab.intelygenz.com/ios/kommander.git', :tag => s.version.to_s } + s.source = { :git => 'https://github.com/intelygenz/Kommander-iOS.git', :tag => s.version.to_s } s.ios.deployment_target = '8.0' diff --git a/LICENSE b/LICENSE index 5229b32..eac2d8c 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,6 @@ -Copyright (c) 2017 Alex Rupérez +MIT License + +Copyright (c) 2017 Intelygenz Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -7,13 +9,13 @@ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/Package.swift b/Package.swift new file mode 100644 index 0000000..e197760 --- /dev/null +++ b/Package.swift @@ -0,0 +1,6 @@ +import PackageDescription + +let package = Package( + name: "Kommander" + origin: "com.intelygenz" +) \ No newline at end of file diff --git a/README.md b/README.md index e63b6d7..53f6d83 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,31 @@ # Kommander -[![CI Status](http://img.shields.io/travis/intelygenz/Kommander-iOS.svg?style=flat)](https://travis-ci.org/intelygenz/Kommander-iOS) +[![Twitter](https://img.shields.io/badge/contact-@intelygenz-0FABFF.svg?style=flat)](http://twitter.com/intelygenz) [![Version](https://img.shields.io/cocoapods/v/Kommander.svg?style=flat)](http://cocoapods.org/pods/Kommander) [![License](https://img.shields.io/cocoapods/l/Kommander.svg?style=flat)](http://cocoapods.org/pods/Kommander) [![Platform](https://img.shields.io/cocoapods/p/Kommander.svg?style=flat)](http://cocoapods.org/pods/Kommander) +[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) + +**Kommander** is a Swift library to manage the task execution in different threads. Through the definition a simple but powerful concept, [**Kommand**](https://en.wikipedia.org/wiki/Command_pattern). + +![Kommander](https://raw.githubusercontent.com/intelygenz/Kommander-iOS/master/Kommander.png) + +## Features + +- [x] Make kommand or multiple kommands +- [x] Execute kommand or multiple kommands +- [x] Cancel kommand or multiple kommands +- [x] Set kommand success block +- [x] Set kommand error block +- [x] Main threat dispatcher +- [x] Current threat dispatcher +- [x] Custom OperationQueue dispatcher +- [x] Custom DispatchQueue dispatcher +- [x] Execute single or multiple Operation +- [x] Execute sequential or concurrent blocks +- [x] Execute DispatchWorkItem +- [x] Swift 2 version +- [x] Objective-C version ## Installation @@ -17,15 +39,50 @@ pod 'Kommander' For Swift 2 compatibility use: ```ruby -pod 'Kommander', :git => 'https://gitlab.intelygenz.com/ios/kommander.git', :tag => '0.2.2-swift2' +pod 'Kommander', :git => 'https://github.com/intelygenz/Kommander-iOS.git', :tag => '0.2.2-swift2' ``` For Objective-C compatibility use: ```ruby -pod 'Kommander', :git => 'https://gitlab.intelygenz.com/ios/kommander.git', :tag => '0.2.2-objc' +pod 'Kommander', :git => 'https://github.com/intelygenz/Kommander-iOS.git', :tag => '0.2.2-objc' +``` + +#### Or you can install it with [Carthage](https://github.com/Carthage/Carthage): + +```ogdl +github "intelygenz/Kommander-iOS" +``` + +#### Or install it with [Swift Package Manager](https://swift.org/package-manager/): + +```swift +dependencies: [ + .Package(url: "https://github.com/intelygenz/Kommander-iOS.git") +] ``` +## Usage + +```swift +Kommander().makeKommand { () -> Void in + // Your code here +}.execute() +``` + +## Etc. + +* Contributions are very welcome. +* Attribution is appreciated (let's spread the word!), but not mandatory. + +## Authors + +'Juan Trías' => 'juan.trias@intelygenz.com', 'Roberto Estrada' => 'roberto.estrada@intelygenz.com' + +[alexruperez](https://github.com/alexruperez), alejandro.ruperez@intelygenz.com +[juantrias](https://github.com/juantrias), juan.trias@intelygenz.com +[RobertoEstrada](https://github.com/RobertoEstrada), roberto.estrada@intelygenz.com' + ## License Kommander is available under the MIT license. See the LICENSE file for more info. diff --git a/_config.yml b/_config.yml new file mode 100644 index 0000000..3397c9a --- /dev/null +++ b/_config.yml @@ -0,0 +1 @@ +theme: jekyll-theme-architect \ No newline at end of file