    For example, given this array `[red, green, blue]` and a scale of `0.25` you will get a kaki color.
 
    - parameter scale: A float value between 0.0 and 1.0.
+   - returns: A DynamicColor object corresponding to the correct color at the given scale.
    */
   public func colorAt(scale: CGFloat) -> DynamicColor {
     guard self.count > 0 else {

      return (0 ..< amount).map { _ in self[0] }
    }

    let increment              = 1 / CGFloat(amount - 1)
    var colors: [DynamicColor] = []

    for i in 0 ..< amount {
      colors.append(colorAt(scale: CGFloat(i) * increment))
    }

    return colors
  }

  /**

  /**
   Grab an `amount` of equi-distant colors from a color scale.
   
   - parameter amount: An amount of colors to return. 2 by default.
   - returns: An array of DynamicColor objects with equi-distant space in the gradient.
   */
  public func colors(amount: UInt = 2) -> [DynamicColor] {
    guard amount > 0 && self.count > 0 else {
