Swiftpack.co - Package - junkpiano/scientist

Scientist

Build Status Coverage Status codecov Documentation

A Swift library for carefully refactoring critical paths.

Installation

Cocoapods

pod 'Scientist', '~> 0.1.0'

Swift Package Manager

(snip)
dependencies: [
	.package(url: "https://github.com/junkpiano/scientist.git", from: "0.1.0")
]
(snip)

Usage

func allow(user: User) -> Bool {
  do {
    return try Scienctist<Bool>().science({
      experiment in
      // required to enable Experiment
      experiment.enabled = { return true }

      // alternatively, you can use A/B test-like logic.
      experiment.enabled = {
        return Int(arc4random_uniform(6) + 1) % 3 == 0
      }

      experiment.publish = { result in
        // do something to publish Result data.
        // send to your log server(Graphite, InfluxDB, etc.), or 3rd party logger like NewRelic, Firebase.
      }

      experiment.use {
        return module.check_user(user)
      }

      experiment.tryNew {
        return user.allowed
      }
    })
  } catch {
    return false
  }
}

Full Documentation is available Here.

Development

swift package generate-xcodeproj
open Scientist.xcodeproj

please run test before you send pull request

swift test

Porting from

Author

Github

link
Stars: 4
Help us keep the lights on

Dependencies

Used By

Total: 0

Releases

0.1.0 - Jul 25, 2018

  • Initial Version.