Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
Thibault Wittemberg committed Sep 10, 2020
2 parents 31557fa + 56eacad commit 30cf8c6
Show file tree
Hide file tree
Showing 62 changed files with 5,637 additions and 2,811 deletions.
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@ RxFlow is a navigation framework for iOS applications based on a **Reactive Flow
This README is a short story of the whole conception process that led me to this framework.

You will find a very detail explanation of the whole project on my blog:
- [RxFlow Part 1: In Theory](https://twittemb.github.io/swift/coordinator/rxswift/rxflow/reactive%20programming/2017/11/08/rxflow-part-1-in-theory/)
- [RxFlow Part 2: In Practice](https://twittemb.github.io/swift/coordinator/reactive/rxflow/reactive%20programming/2017/12/09/rxflow-part-2-in-practice/)
- [RxFlow Part 3: Tips and Tricks](https://twittemb.github.io/swift/coordinator/reactive/rxswift/reactive%20programming/rxflow/2017/12/22/rxflow-part-3-tips-and-tricks/)
- [RxFlow Part 1: In Theory](https://twittemb.github.io/posts/2017-11-08-RxFlow-Part1/)
- [RxFlow Part 2: In Practice](https://twittemb.github.io/posts/2017-12-09-RxFlow-Part2/)
- [RxFlow Part 3: Tips and Tricks](https://twittemb.github.io/posts/2017-12-22-RxFlow-Part3/)

The Jazzy documentation can be seen here as well: [Documentation](http://community.rxswift.org/RxFlow/)

Expand Down
4 changes: 2 additions & 2 deletions RxFlow.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -587,7 +587,7 @@
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MARKETING_VERSION = 2.9.0;
MARKETING_VERSION = 2.9.1;
PRODUCT_BUNDLE_IDENTIFIER = io.warpfactor.RxFlow;
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
PROVISIONING_PROFILE_SPECIFIER = "";
Expand Down Expand Up @@ -618,7 +618,7 @@
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MARKETING_VERSION = 2.9.0;
MARKETING_VERSION = 2.9.1;
PRODUCT_BUNDLE_IDENTIFIER = io.warpfactor.RxFlow;
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
PROVISIONING_PROFILE_SPECIFIER = "";
Expand Down
4 changes: 4 additions & 0 deletions RxFlow/Stepper.swift
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,10 @@ public class CompositeStepper: Stepper {
.concat(nextSteps)
.bind(to: self.steps)
.disposed(by: self.disposeBag)

self.innerSteppers.forEach { stepper in
stepper.readyToEmitSteps()
}
}
}

Expand Down
20 changes: 20 additions & 0 deletions RxFlowTests/StepperTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,17 @@ final class StepperClass: Stepper {
let steps = PublishRelay<Step>()
let initialStep: Step
let nextStep: Step
private(set) var madeReady = false

init(with initialStep: Step, andNextStep nextStep: Step) {
self.initialStep = initialStep
self.nextStep = nextStep
}

func readyToEmitSteps() {
madeReady = true
}

func emitNextStep () {
self.steps.accept(self.nextStep)
}
Expand Down Expand Up @@ -121,6 +126,21 @@ final class StepperTests: XCTestCase {
XCTAssertEqual(observer.events[2].value.element as? StepperTestsStep, StepperTestsStep.stepThree)
}

func testCompositeStepperReadyToEmitSteps() {

// Given: a compositeStepper
let stepper1 = StepperClass(with: StepperTestsStep.stepOne, andNextStep: StepperTestsStep.stepTwo)
let stepper2 = StepperClass(with: StepperTestsStep.stepOne, andNextStep: StepperTestsStep.stepTwo)
let compositeStepper = CompositeStepper(steppers: [stepper1, stepper2])

// When: ready to emit steps
compositeStepper.readyToEmitSteps()

// Then: the composite steppers are made ready
XCTAssertTrue(stepper1.madeReady)
XCTAssertTrue(stepper2.madeReady)
}

func testCompositeStepper() {

let initialStepsToEmit = [StepperTestsStep.stepOne, StepperTestsStep.stepTwo, StepperTestsStep.stepThree]
Expand Down
118 changes: 29 additions & 89 deletions docs/Classes.html
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,21 @@
<script src="js/jquery.min.js" defer></script>
<script src="js/jazzy.js" defer></script>

<script src="js/lunr.min.js" defer></script>
<script src="js/typeahead.jquery.js" defer></script>
<script src="js/jazzy.search.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Section/Classes" class="dashAnchor"></a>
<a title="Classes Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="index.html">RxFlow Docs</a> (98% documented)</p>
<p><a href="index.html">RxFlow 2.9.0 Docs</a> (0% documented)</p>
<p class="header-right">
<form role="search" action="search.json">
<input type="text" placeholder="Search documentation" data-typeahead>
</form>
</p>
</div>
</header>
<div class="content-wrapper">
Expand All @@ -39,9 +47,6 @@
<li class="nav-group-task">
<a href="Classes/FlowCoordinator.html">FlowCoordinator</a>
</li>
<li class="nav-group-task">
<a href="Classes/Flows.html">Flows</a>
</li>
<li class="nav-group-task">
<a href="Classes/OneStepper.html">OneStepper</a>
</li>
Expand All @@ -56,6 +61,12 @@
<li class="nav-group-task">
<a href="Enums/FlowContributors.html">FlowContributors</a>
</li>
<li class="nav-group-task">
<a href="Enums/Flows.html">Flows</a>
</li>
<li class="nav-group-task">
<a href="Enums/Flows/ExecuteStrategy.html">– ExecuteStrategy</a>
</li>
<li class="nav-group-task">
<a href="Enums/RxFlowStep.html">RxFlowStep</a>
</li>
Expand All @@ -71,10 +82,10 @@
<a href="Extensions/Reactive.html">Reactive</a>
</li>
<li class="nav-group-task">
<a href="Extensions.html#/c:objc(cs)UIViewController">UIViewController</a>
<a href="Extensions.html#/UIViewController">UIViewController</a>
</li>
<li class="nav-group-task">
<a href="Extensions.html#/c:objc(cs)UIWindow">UIWindow</a>
<a href="Extensions.html#/UIWindow">UIWindow</a>
</li>
</ul>
</li>
Expand All @@ -88,24 +99,13 @@
<a href="Protocols/Presentable.html">Presentable</a>
</li>
<li class="nav-group-task">
<a href="Protocols.html#/s:6RxFlow4StepP">Step</a>
<a href="Protocols.html#/Step">Step</a>
</li>
<li class="nav-group-task">
<a href="Protocols/Stepper.html">Stepper</a>
</li>
<li class="nav-group-task">
<a href="Protocols.html#/s:6RxFlow14SynchronizableP">Synchronizable</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Typealiases.html">Type Aliases</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Typealiases.html#/s:6RxFlow11Coordinatora">Coordinator</a>
</li>
<li class="nav-group-task">
<a href="Typealiases.html#/s:6RxFlow04NextB5Itemsa">NextFlowItems</a>
<a href="Protocols.html#/Synchronizable">Synchronizable</a>
</li>
</ul>
</li>
Expand All @@ -124,37 +124,9 @@ <h1>Classes</h1>
<li class="item">
<div>
<code>
<a name="/s:6RxFlow5FlowsC"></a>
<a name="//apple_ref/swift/Class/Flows" class="dashAnchor"></a>
<a class="token" href="#/s:6RxFlow5FlowsC">Flows</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Utility functions to synchronize Flows readyness</p>

<a href="Classes/Flows.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">Flows</span></code></pre>

</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/c:@M@RxFlow@objc(cs)FlowCoordinator"></a>
<a name="/"></a>
<a name="//apple_ref/swift/Class/FlowCoordinator" class="dashAnchor"></a>
<a class="token" href="#/c:@M@RxFlow@objc(cs)FlowCoordinator">FlowCoordinator</a>
<a class="token" href="#/">FlowCoordinator</a>
</code>
</div>
<div class="height-container">
Expand All @@ -166,14 +138,6 @@ <h4>Declaration</h4>

<a href="Classes/FlowCoordinator.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">final</span> <span class="kd">class</span> <span class="kt">FlowCoordinator</span> <span class="p">:</span> <span class="kt">NSObject</span></code></pre>

</div>
</div>
</section>
</div>
</li>
Expand All @@ -193,9 +157,9 @@ <h3 class="section-name"><p>default implementation</p>
<li class="item">
<div>
<code>
<a name="/s:6RxFlow10OneStepperC"></a>
<a name="/"></a>
<a name="//apple_ref/swift/Class/OneStepper" class="dashAnchor"></a>
<a class="token" href="#/s:6RxFlow10OneStepperC">OneStepper</a>
<a class="token" href="#/">OneStepper</a>
</code>
</div>
<div class="height-container">
Expand All @@ -207,23 +171,15 @@ <h3 class="section-name"><p>default implementation</p>

<a href="Classes/OneStepper.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">OneStepper</span> <span class="p">:</span> <span class="kt"><a href="Protocols/Stepper.html">Stepper</a></span></code></pre>

</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:6RxFlow14DefaultStepperC"></a>
<a name="/"></a>
<a name="//apple_ref/swift/Class/DefaultStepper" class="dashAnchor"></a>
<a class="token" href="#/s:6RxFlow14DefaultStepperC">DefaultStepper</a>
<a class="token" href="#/">DefaultStepper</a>
</code>
</div>
<div class="height-container">
Expand All @@ -235,23 +191,15 @@ <h4>Declaration</h4>

<a href="Classes/DefaultStepper.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">DefaultStepper</span> <span class="p">:</span> <span class="kt"><a href="Classes/OneStepper.html">OneStepper</a></span></code></pre>

</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:6RxFlow16CompositeStepperC"></a>
<a name="/"></a>
<a name="//apple_ref/swift/Class/CompositeStepper" class="dashAnchor"></a>
<a class="token" href="#/s:6RxFlow16CompositeStepperC">CompositeStepper</a>
<a class="token" href="#/">CompositeStepper</a>
</code>
</div>
<div class="height-container">
Expand All @@ -264,14 +212,6 @@ <h4>Declaration</h4>

<a href="Classes/CompositeStepper.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">CompositeStepper</span> <span class="p">:</span> <span class="kt"><a href="Protocols/Stepper.html">Stepper</a></span></code></pre>

</div>
</div>
</section>
</div>
</li>
Expand All @@ -280,8 +220,8 @@ <h4>Declaration</h4>
</section>
</section>
<section id="footer">
<p>&copy; 2020 <a class="link" href="https://github.com/RxSwiftCommunity/RxFlow" target="_blank" rel="external">Thibault Wittemberg and RxSwiftCommunity</a>. All rights reserved. (Last updated: 2020-01-10)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.13.1</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
<p>&copy; 2020 <a class="link" href="https://github.com/RxSwiftCommunity/RxFlow" target="_blank" rel="external">Thibault Wittemberg and RxSwiftCommunity</a>. All rights reserved. (Last updated: 2020-09-09)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.13.5</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
Expand Down
Loading

0 comments on commit 30cf8c6

Please sign in to comment.