diff --git a/.travis.yml b/.travis.yml
index a3ae7e3..505b5bc 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -5,13 +5,15 @@ os:
language: generic
sudo: required
dist: trusty
-osx_image: xcode10.2
+osx_image: xcode12.2
env:
- - BUILD="pushd Examples && pod repo update && pod install && set -o pipefail && (xcodebuild -workspace Examples.xcworkspace -scheme Example -destination 'platform=iOS Simulator,name=iPhone 7' build) | xcpretty"
+ - BUILD="pushd Examples && pod repo update && pod install && set -o pipefail && (xcodebuild -workspace Examples.xcworkspace -scheme Example -destination 'platform=iOS Simulator,name=iPhone 12' build) | xcpretty"
- BUILD="pod repo update && pod lib lint RxFeedback.podspec --verbose"
- BUILD="swift build"
- - BUILD="carthage update --platform ios && carthage build --no-skip-current --platform iOS && set -o pipefail && (xcodebuild -project RxFeedback.xcodeproj -scheme RxFeedbackTests -destination 'platform=iOS Simulator,name=iPhone 7' test) | xcpretty"
- - BUILD="carthage update --platform tvOS && carthage build --no-skip-current --platform tvOS"
+
+ # Carthage is still broken for Xcode 12, until support for XCFrameworks is added
+ # - BUILD="carthage update --platform ios && carthage build --no-skip-current --platform iOS && set -o pipefail && (xcodebuild -project RxFeedback.xcodeproj -scheme RxFeedbackTests -destination 'platform=iOS Simulator,name=iPhone 7' test) | xcpretty"
+ # - BUILD="carthage update --platform tvOS && carthage build --no-skip-current --platform tvOS"
script: eval "${BUILD}"
diff --git a/Examples/Examples.xcworkspace/contents.xcworkspacedata b/Examples/Examples.xcworkspace/contents.xcworkspacedata
new file mode 100644
index 0000000..0a69e11
--- /dev/null
+++ b/Examples/Examples.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
diff --git a/Examples/Examples.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Examples/Examples.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
new file mode 100644
index 0000000..18d9810
--- /dev/null
+++ b/Examples/Examples.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
@@ -0,0 +1,8 @@
+
+
+
+
+ IDEDidComputeMac32BitWarning
+
+
+
diff --git a/Examples/Examples/GithubPaginatedSearch.swift b/Examples/Examples/GithubPaginatedSearch.swift
index 11cb1de..f71ab9c 100644
--- a/Examples/Examples/GithubPaginatedSearch.swift
+++ b/Examples/Examples/GithubPaginatedSearch.swift
@@ -220,7 +220,7 @@ extension URLSession {
.response(request: URLRequest(url: resource))
.retry(3)
.map(Repository.parse)
- .retryWhen { errorTrigger in
+ .retry(when: { errorTrigger in
return errorTrigger.enumerated().flatMap { (attempt, error) -> Observable in
if attempt >= maxAttempts - 1 {
return Observable.error(error)
@@ -229,7 +229,7 @@ extension URLSession {
return Observable
.timer(.milliseconds((attempt + 1) * 1000), scheduler: MainScheduler.instance).take(1)
}
- }
+ })
}
}
diff --git a/Examples/Examples/Todo+UI.swift b/Examples/Examples/Todo+UI.swift
index 63bcedc..92e3df5 100644
--- a/Examples/Examples/Todo+UI.swift
+++ b/Examples/Examples/Todo+UI.swift
@@ -28,7 +28,7 @@ class TodoViewController: UIViewController {
// this dependency would be ideally injected in some way
let synchronize: (Task) -> Single = { task in
return Single.create { single in
- let state: SingleEvent = arc4random_uniform(3) != 0 ? .success(.success) : .error(SystemError(""))
+ let state: SingleEvent = arc4random_uniform(3) != 0 ? .success(.success) : .failure(SystemError(""))
single(state)
return Disposables.create()
}
diff --git a/Examples/Podfile.lock b/Examples/Podfile.lock
new file mode 100644
index 0000000..4db28e8
--- /dev/null
+++ b/Examples/Podfile.lock
@@ -0,0 +1,33 @@
+PODS:
+ - RxCocoa (6.0.0):
+ - RxRelay (= 6.0.0)
+ - RxSwift (= 6.0.0)
+ - RxFeedback (4.0.0):
+ - RxCocoa (~> 6.0)
+ - RxSwift (~> 6.0)
+ - RxRelay (6.0.0):
+ - RxSwift (= 6.0.0)
+ - RxSwift (6.0.0)
+
+DEPENDENCIES:
+ - RxFeedback (from `..`)
+
+SPEC REPOS:
+ trunk:
+ - RxCocoa
+ - RxRelay
+ - RxSwift
+
+EXTERNAL SOURCES:
+ RxFeedback:
+ :path: ".."
+
+SPEC CHECKSUMS:
+ RxCocoa: 3f79328fafa3645b34600f37c31e64c73ae3a80e
+ RxFeedback: c762a59b678ed8e30b5c84b6e4e03ad0341d2ecb
+ RxRelay: 8d593be109c06ea850df027351beba614b012ffb
+ RxSwift: c14e798c59b9f6e9a2df8fd235602e85cc044295
+
+PODFILE CHECKSUM: 1c64147e23f9070efe02f93aa36b8029d82c504e
+
+COCOAPODS: 1.10.0
diff --git a/RxFeedback.podspec b/RxFeedback.podspec
index e703ee8..416d2c2 100644
--- a/RxFeedback.podspec
+++ b/RxFeedback.podspec
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = "RxFeedback"
- s.version = "3.0.0"
+ s.version = "4.0.0"
s.summary = "Simplest architecture for RxSwift. State + feedback loops."
s.description = <<-DESC
* Straightforward