github.com/github.com/PerfectlySoft/Perfect-Repeater

A simple library that takes a closure and executes it at the specified interval until the closure returns false or the application is terminated.


Keywords
server-side-swift, swift
License
Apache-2.0

Documentation

Perfect Repeater

Get Involed with Perfect!

Star Perfect On Github Stack Overflow Follow Perfect on Twitter Join the Perfect Slack

Swift 3.0 Platforms OS X | Linux License Apache PerfectlySoft Twitter Slack Status

The Perfect "Repeater" is a simple library that takes a closure and executes it at the specified interval until the closure returns false or the application is terminated.

Note that a demo is located at https://github.com/PerfectExamples/Perfect-Repeater-Demo that shows the operation of the library.

Compatibility with Swift

The master branch of this project currently compiles with Xcode 8.1 or the Swift 3.0.1 toolchain on Ubuntu.

Building

Add this project as a dependency in your Package.swift file.

.Package(url:"https://github.com/PerfectlySoft/Perfect-Repeater.git", majorVersion: 1)

Usage

Include in your file the import statement:

import PerfectRepeater

The base form of executing this is:

Repeater.exec(timer: <Double>, callback: <Closure>)

To demonstrate the process of repeating a closure containing your code and optionally re-queuing:

var opt = 1

let c = {
    () -> Bool in
    print("XXXXXX")
    return true
}
let cc = {
    () -> Bool in
    print("Hello, world! (\(opt))")
    if opt < 10 {
        opt += 1
        return true
    } else {
        print("cc exiting.")
        return false
    }
}

Repeater.exec(timer: 3.0, callback: c)
Repeater.exec(timer: 2.0, callback: cc)

Issues

We are transitioning to using JIRA for all bugs and support related issues, therefore the GitHub issues has been disabled.

If you find a mistake, bug, or any other helpful suggestion you'd like to make on the docs please head over to http://jira.perfect.org:8080/servicedesk/customer/portal/1 and raise it.

A comprehensive list of open issues can be found at http://jira.perfect.org:8080/projects/ISS/issues

Further Information

For more information on the Perfect project, please visit perfect.org.