From d338c50ade002ea5591ac0dabbad87178acea662 Mon Sep 17 00:00:00 2001 From: Krunoslav Zaher Date: Sun, 20 Dec 2015 01:28:29 +0100 Subject: [PATCH] Adds RxTests podspec. --- Rx.xcworkspace/contents.xcworkspacedata | 16 +++++++ RxBlocking.podspec | 7 ++- RxCocoa.podspec | 6 +-- RxSwift.podspec | 24 +++++----- RxTests.podspec | 59 +++++++++++++++++++++++++ scripts/validate-podspec.sh | 25 +++++++---- 6 files changed, 113 insertions(+), 24 deletions(-) create mode 100644 RxTests.podspec diff --git a/Rx.xcworkspace/contents.xcworkspacedata b/Rx.xcworkspace/contents.xcworkspacedata index d811d7ae..51245e48 100644 --- a/Rx.xcworkspace/contents.xcworkspacedata +++ b/Rx.xcworkspace/contents.xcworkspacedata @@ -10,6 +10,22 @@ + + + + + + + + + + diff --git a/RxBlocking.podspec b/RxBlocking.podspec index af1806a7..c61dd51e 100644 --- a/RxBlocking.podspec +++ b/RxBlocking.podspec @@ -3,7 +3,12 @@ Pod::Spec.new do |s| s.version = "2.0.0-beta.4" s.summary = "RxSwift Blocking operatos" s.description = <<-DESC - Set of blocking operators for RxSwift. +Set of blocking operators for RxSwift. These operators are mostly intended for unit/integration tests +with a couple of other special scenarios where they could be useful. + +E.g. + +Waiting for observable sequence to complete before exiting command line application. DESC s.homepage = "https://github.com/ReactiveX/RxSwift" s.license = 'MIT' diff --git a/RxCocoa.podspec b/RxCocoa.podspec index 2cea7beb..a570fc33 100644 --- a/RxCocoa.podspec +++ b/RxCocoa.podspec @@ -3,9 +3,9 @@ Pod::Spec.new do |s| s.version = "2.0.0-beta.4" s.summary = "RxSwift Cocoa extensions" s.description = <<-DESC - * UI extensions - * NSURL extensions - * KVO extensions +* UI extensions +* NSURL extensions +* KVO extensions DESC s.homepage = "https://github.com/ReactiveX/RxSwift" s.license = 'MIT' diff --git a/RxSwift.podspec b/RxSwift.podspec index e81923e4..1f37fdd8 100644 --- a/RxSwift.podspec +++ b/RxSwift.podspec @@ -3,22 +3,22 @@ Pod::Spec.new do |s| s.version = "2.0.0-beta.4" s.summary = "Microsoft Reactive Extensions (Rx) for Swift and iOS/OSX platform" s.description = <<-DESC - This is a Swift port of [ReactiveX.io](https://github.com/ReactiveX) +This is a Swift port of [ReactiveX.io](https://github.com/ReactiveX) - Like the original [Rx](https://github.com/Reactive-extensions/Rx.Net), its intention is to enable easy composition of asynchronous operations and event streams. +Like the original [Rx](https://github.com/Reactive-extensions/Rx.Net), its intention is to enable easy composition of asynchronous operations and event streams. - It tries to port as many concepts from the original Rx as possible, but some concepts were adapted for more pleasant and performant integration with iOS/OSX environment. +It tries to port as many concepts from the original Rx as possible, but some concepts were adapted for more pleasant and performant integration with iOS/OSX environment. - Probably the best analogy for those who have never heard of Rx would be: +Probably the best analogy for those who have never heard of Rx would be: - ``` - git diff | grep bug | less # linux pipes - programs communicate by sending - # sequences of bytes, words, lines, '\0' terminated strings... - ``` - would become if written in RxSwift - ``` - gitDiff().grep("bug").less // sequences of swift objects - ``` +``` +git diff | grep bug | less # linux pipes - programs communicate by sending + # sequences of bytes, words, lines, '\0' terminated strings... +``` +would become if written in RxSwift +``` +gitDiff().grep("bug").less // sequences of swift objects +``` DESC s.homepage = "https://github.com/ReactiveX/RxSwift" s.license = 'MIT' diff --git a/RxTests.podspec b/RxTests.podspec new file mode 100644 index 00000000..d2879eec --- /dev/null +++ b/RxTests.podspec @@ -0,0 +1,59 @@ +Pod::Spec.new do |s| + s.name = "RxTests" + s.version = "2.0.0-beta.4" + s.summary = "RxSwift Testing extensions" + s.description = <<-DESC +Unit testing extensions for RxSwift. This library contains mock schedulers, observables, and observers +that should make unit testing your operators easy as unit testing RxSwift built-in operators. + +This library contains everything you need to write unit tests in the following way: +```swift +func testMap() { + let scheduler = TestScheduler(initialClock: 0) + + let xs = scheduler.createHotObservable([ + next(150, 1), + next(210, 0), + next(220, 1), + next(230, 2), + next(240, 4), + completed(300) + ]) + + let res = scheduler.start { xs.map { $0 * 2 } } + + let correctMessages = [ + next(210, 0 * 2), + next(220, 1 * 2), + next(230, 2 * 2), + next(240, 4 * 2), + completed(300) + ] + + let correctSubscriptions = [ + Subscription(200, 300) + ] + + XCTAssertEqual(res.messages, correctMessages) + XCTAssertEqual(xs.subscriptions, correctSubscriptions) + } +``` + + DESC + s.homepage = "https://github.com/ReactiveX/RxSwift" + s.license = 'MIT' + s.author = { "Krunoslav Zaher" => "krunoslav.zaher@gmail.com" } + s.source = { :git => "https://github.com/ReactiveX/RxSwift.git", :tag => s.version.to_s } + + s.requires_arc = true + + s.ios.deployment_target = '8.0' + s.osx.deployment_target = '10.9' + s.tvos.deployment_target = '9.0' + + s.source_files = 'RxTests/**/*.swift' + + s.framework = 'XCTest' + + s.dependency 'RxSwift', '~> 2.0.0-beta' +end diff --git a/scripts/validate-podspec.sh b/scripts/validate-podspec.sh index 59ae9b03..9089f612 100755 --- a/scripts/validate-podspec.sh +++ b/scripts/validate-podspec.sh @@ -25,19 +25,28 @@ mkdir -p RxTests/${VERSION} popd popd +#BRANCH=develop +BRANCH=feature\\/RxTests + cat RxSwift.podspec | -sed -E "s/s.source[^\}]+\}/s.source = { :git => '\/Users\/kzaher\/Projects\/Rx', :branch => \'develop\' }/" > ~/.cocoapods/repos/master/Specs/RxSwift/${VERSION}/RxSwift.podspec +sed -E "s/s.source[^\}]+\}/s.source = { :git => '\/Users\/kzaher\/Projects\/Rx', :branch => \'${BRANCH}\' }/" > ~/.cocoapods/repos/master/Specs/RxSwift/${VERSION}/RxSwift.podspec cat RxCocoa.podspec | -sed -E "s/s.source[^\}]+\}/s.source = { :git => '\/Users\/kzaher\/Projects\/Rx', :branch => \'develop\' }/" > ~/.cocoapods/repos/master/Specs/RxCocoa/${VERSION}/RxCocoa.podspec +sed -E "s/s.source[^\}]+\}/s.source = { :git => '\/Users\/kzaher\/Projects\/Rx', :branch => \'${BRANCH}\' }/" > ~/.cocoapods/repos/master/Specs/RxCocoa/${VERSION}/RxCocoa.podspec cat RxBlocking.podspec | -sed -E "s/s.source[^\}]+\}/s.source = { :git => '\/Users\/kzaher\/Projects\/Rx', :branch => \'develop\' }/" > ~/.cocoapods/repos/master/Specs/RxBlocking/${VERSION}/RxBlocking.podspec +sed -E "s/s.source[^\}]+\}/s.source = { :git => '\/Users\/kzaher\/Projects\/Rx', :branch => \'${BRANCH}\' }/" > ~/.cocoapods/repos/master/Specs/RxBlocking/${VERSION}/RxBlocking.podspec cat RxTests.podspec | -sed -E "s/s.source[^\}]+\}/s.source = { :git => '\/Users\/kzaher\/Projects\/Rx', :branch => \'develop\' }/" > ~/.cocoapods/repos/master/Specs/RxTests/${VERSION}/RxTests.podspec +sed -E "s/s.source[^\}]+\}/s.source = { :git => '\/Users\/kzaher\/Projects\/Rx', :branch => \'${BRANCH}\' }/" > ~/.cocoapods/repos/master/Specs/RxTests/${VERSION}/RxTests.podspec -pod lib lint RxSwift.podspec -pod lib lint RxCocoa.podspec -pod lib lint RxBlocking.podspec -pod lib lint RxTests.podspec \ No newline at end of file +function validate() { + local PODSPEC=$1 + + pod lib lint $PODSPEC --verbose --no-clean +} + +validate RxTests.podspec +validate RxCocoa.podspec +validate RxBlocking.podspec +validate RxSwift.podspec \ No newline at end of file