diff --git a/.swift-version b/.swift-version deleted file mode 100644 index bf77d54..0000000 --- a/.swift-version +++ /dev/null @@ -1 +0,0 @@ -4.2 diff --git a/CHANGELOG.md b/CHANGELOG.md index f03249b..8e1e27f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # master +# 4.1.0 + +- Add suport for Swift Package Manager + # 4.0.0 - Requires RxSwift 5 & Xcode 10.2. diff --git a/Package.resolved b/Package.resolved index e3afef8..e28651f 100644 --- a/Package.resolved +++ b/Package.resolved @@ -1,6 +1,69 @@ { "object": { "pins": [ + { + "package": "CwlCatchException", + "repositoryURL": "https://github.com/mattgallagher/CwlCatchException.git", + "state": { + "branch": null, + "revision": "7cd2f8cacc4d22f21bc0b2309c3b18acf7957b66", + "version": "1.2.0" + } + }, + { + "package": "CwlPreconditionTesting", + "repositoryURL": "https://github.com/mattgallagher/CwlPreconditionTesting.git", + "state": { + "branch": null, + "revision": "c228db5d2ad1b01ebc84435e823e6cca4e3db98b", + "version": "1.2.0" + } + }, + { + "package": "Logger", + "repositoryURL": "https://github.com/f-meloni/Logger", + "state": { + "branch": null, + "revision": "53c3ecca5abe8cf46697e33901ee774236d94cce", + "version": "0.2.3" + } + }, + { + "package": "Nimble", + "repositoryURL": "https://github.com/Quick/Nimble.git", + "state": { + "branch": null, + "revision": "6abeb3f5c03beba2b9e4dbe20886e773b5b629b6", + "version": "8.0.4" + } + }, + { + "package": "PackageConfig", + "repositoryURL": "https://github.com/shibapm/PackageConfig.git", + "state": { + "branch": null, + "revision": "fd0829aac9851434b3d2db0890e27bc489fc973a", + "version": "0.12.2" + } + }, + { + "package": "Quick", + "repositoryURL": "https://github.com/Quick/Quick.git", + "state": { + "branch": null, + "revision": "33682c2f6230c60614861dfc61df267e11a1602f", + "version": "2.2.0" + } + }, + { + "package": "Rocket", + "repositoryURL": "https://github.com/shibapm/Rocket", + "state": { + "branch": null, + "revision": "f75c9736733b489a3456b4f3a47cf13adb99f197", + "version": "0.9.2" + } + }, { "package": "RxSwift", "repositoryURL": "https://github.com/ReactiveX/RxSwift.git", @@ -9,6 +72,24 @@ "revision": "b3e888b4972d9bc76495dd74d30a8c7fad4b9395", "version": "5.0.1" } + }, + { + "package": "SwiftShell", + "repositoryURL": "https://github.com/kareman/SwiftShell", + "state": { + "branch": null, + "revision": "beebe43c986d89ea5359ac3adcb42dac94e5e08a", + "version": "4.1.2" + } + }, + { + "package": "Yams", + "repositoryURL": "https://github.com/jpsim/Yams", + "state": { + "branch": null, + "revision": "c947a306d2e80ecb2c0859047b35c73b8e1ca27f", + "version": "2.0.0" + } } ] }, diff --git a/Package.swift b/Package.swift index ae686f1..021a330 100644 --- a/Package.swift +++ b/Package.swift @@ -14,13 +14,36 @@ let package = Package( ], dependencies: [ // Dependencies declare other packages that this package depends on. - // .package(url: /* package url */, from: "1.0.0"), .package(url: "https://github.com/ReactiveX/RxSwift.git", .upToNextMajor(from: "5.0.0")), + // Development + .package(url: "https://github.com/Quick/Quick.git", .upToNextMajor(from: "2.1.0")), // dev + .package(url: "https://github.com/Quick/Nimble.git", .upToNextMajor(from: "8.0.2")), // dev + .package(url: "https://github.com/shibapm/Rocket", .upToNextMajor(from: "0.4.0")) // dev ], targets: [ // Targets are the basic building blocks of a package. A target can define a module or a test suite. // Targets can depend on other targets in this package, and on products in packages which this package depends on. - .target(name: "RxOptional", dependencies: ["RxSwift"]), - .testTarget(name: "RxOptionalTests", dependencies: ["RxOptional"]), - ] + .target(name: "RxOptional", dependencies: ["RxSwift", "RxCocoa"]), + .testTarget(name: "RxOptionalTests", dependencies: ["RxOptional", "Quick", "Nimble"]) // dev + ], + swiftLanguageVersions: [.v4_2, .v5] ) + +#if canImport(PackageConfig) + import PackageConfig + + let config = PackageConfiguration([ + "rocket": [ + "before": [ + "swift build", + "swift test", + "scripts/bootstrap-if-needed.sh", + + ], + "after": [ + "pod lib lint --allow-warnings", + "pod trunk push --skip-tests --allow-warnings" + ] + ] + ]).write() +#endif \ No newline at end of file diff --git a/RxOptional.podspec b/RxOptional.podspec index 7d08eec..fa5f371 100644 --- a/RxOptional.podspec +++ b/RxOptional.podspec @@ -20,7 +20,7 @@ Pod::Spec.new do |s| s.watchos.deployment_target = '3.0' s.tvos.deployment_target = '9.0' - s.source_files = 'Source/*.swift' + s.source_files = 'Sources/*.swift' s.dependency 'RxSwift', '~> 5' s.dependency 'RxCocoa', '~> 5' diff --git a/RxOptional.xcodeproj/project.pbxproj b/RxOptional.xcodeproj/project.pbxproj index ce6e007..a359f56 100644 --- a/RxOptional.xcodeproj/project.pbxproj +++ b/RxOptional.xcodeproj/project.pbxproj @@ -7,6 +7,47 @@ objects = { /* Begin PBXBuildFile section */ + 12C50B56235DF6B200AB72E1 /* Observable+Occupiable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12C50B4F235DF6B200AB72E1 /* Observable+Occupiable.swift */; }; + 12C50B58235DF6B300AB72E1 /* Observable+Occupiable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12C50B4F235DF6B200AB72E1 /* Observable+Occupiable.swift */; }; + 12C50B59235DF6B300AB72E1 /* Observable+Occupiable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12C50B4F235DF6B200AB72E1 /* Observable+Occupiable.swift */; }; + 12C50B5B235DF6B300AB72E1 /* Observable+Occupiable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12C50B4F235DF6B200AB72E1 /* Observable+Occupiable.swift */; }; + 12C50B5D235DF6B300AB72E1 /* RxOptionalError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12C50B50235DF6B200AB72E1 /* RxOptionalError.swift */; }; + 12C50B5F235DF6B300AB72E1 /* RxOptionalError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12C50B50235DF6B200AB72E1 /* RxOptionalError.swift */; }; + 12C50B60235DF6B300AB72E1 /* RxOptionalError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12C50B50235DF6B200AB72E1 /* RxOptionalError.swift */; }; + 12C50B62235DF6B300AB72E1 /* RxOptionalError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12C50B50235DF6B200AB72E1 /* RxOptionalError.swift */; }; + 12C50B64235DF6B300AB72E1 /* Observable+Optional.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12C50B51235DF6B200AB72E1 /* Observable+Optional.swift */; }; + 12C50B66235DF6B300AB72E1 /* Observable+Optional.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12C50B51235DF6B200AB72E1 /* Observable+Optional.swift */; }; + 12C50B67235DF6B300AB72E1 /* Observable+Optional.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12C50B51235DF6B200AB72E1 /* Observable+Optional.swift */; }; + 12C50B69235DF6B300AB72E1 /* Observable+Optional.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12C50B51235DF6B200AB72E1 /* Observable+Optional.swift */; }; + 12C50B6B235DF6B300AB72E1 /* SharedSequence+Occupiable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12C50B52235DF6B200AB72E1 /* SharedSequence+Occupiable.swift */; }; + 12C50B6D235DF6B300AB72E1 /* SharedSequence+Occupiable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12C50B52235DF6B200AB72E1 /* SharedSequence+Occupiable.swift */; }; + 12C50B6E235DF6B300AB72E1 /* SharedSequence+Occupiable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12C50B52235DF6B200AB72E1 /* SharedSequence+Occupiable.swift */; }; + 12C50B70235DF6B300AB72E1 /* SharedSequence+Occupiable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12C50B52235DF6B200AB72E1 /* SharedSequence+Occupiable.swift */; }; + 12C50B72235DF6B300AB72E1 /* OptionalType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12C50B53235DF6B200AB72E1 /* OptionalType.swift */; }; + 12C50B74235DF6B300AB72E1 /* OptionalType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12C50B53235DF6B200AB72E1 /* OptionalType.swift */; }; + 12C50B75235DF6B300AB72E1 /* OptionalType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12C50B53235DF6B200AB72E1 /* OptionalType.swift */; }; + 12C50B77235DF6B300AB72E1 /* OptionalType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12C50B53235DF6B200AB72E1 /* OptionalType.swift */; }; + 12C50B79235DF6B300AB72E1 /* Occupiable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12C50B54235DF6B200AB72E1 /* Occupiable.swift */; }; + 12C50B7B235DF6B300AB72E1 /* Occupiable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12C50B54235DF6B200AB72E1 /* Occupiable.swift */; }; + 12C50B7C235DF6B300AB72E1 /* Occupiable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12C50B54235DF6B200AB72E1 /* Occupiable.swift */; }; + 12C50B7E235DF6B300AB72E1 /* Occupiable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12C50B54235DF6B200AB72E1 /* Occupiable.swift */; }; + 12C50B80235DF6B300AB72E1 /* SharedSequence+Optional.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12C50B55235DF6B200AB72E1 /* SharedSequence+Optional.swift */; }; + 12C50B82235DF6B300AB72E1 /* SharedSequence+Optional.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12C50B55235DF6B200AB72E1 /* SharedSequence+Optional.swift */; }; + 12C50B83235DF6B300AB72E1 /* SharedSequence+Optional.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12C50B55235DF6B200AB72E1 /* SharedSequence+Optional.swift */; }; + 12C50B85235DF6B300AB72E1 /* SharedSequence+Optional.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12C50B55235DF6B200AB72E1 /* SharedSequence+Optional.swift */; }; + 12C50B8D235DF6D900AB72E1 /* OptionalOperatorsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12C50B89235DF6D900AB72E1 /* OptionalOperatorsTests.swift */; }; + 12C50B8E235DF6D900AB72E1 /* OptionalOperatorsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12C50B89235DF6D900AB72E1 /* OptionalOperatorsTests.swift */; }; + 12C50B8F235DF6D900AB72E1 /* OptionalOperatorsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12C50B89235DF6D900AB72E1 /* OptionalOperatorsTests.swift */; }; + 12C50B90235DF6D900AB72E1 /* XCTestManifests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12C50B8A235DF6D900AB72E1 /* XCTestManifests.swift */; }; + 12C50B91235DF6D900AB72E1 /* XCTestManifests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12C50B8A235DF6D900AB72E1 /* XCTestManifests.swift */; }; + 12C50B92235DF6D900AB72E1 /* XCTestManifests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12C50B8A235DF6D900AB72E1 /* XCTestManifests.swift */; }; + 12C50B93235DF6D900AB72E1 /* OccupiableOperatorsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12C50B8B235DF6D900AB72E1 /* OccupiableOperatorsTests.swift */; }; + 12C50B94235DF6D900AB72E1 /* OccupiableOperatorsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12C50B8B235DF6D900AB72E1 /* OccupiableOperatorsTests.swift */; }; + 12C50B95235DF6D900AB72E1 /* OccupiableOperatorsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12C50B8B235DF6D900AB72E1 /* OccupiableOperatorsTests.swift */; }; + 12C50BA3235DF9E300AB72E1 /* RxOptional.h in Headers */ = {isa = PBXBuildFile; fileRef = 12C50B9A235DF8C200AB72E1 /* RxOptional.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 12C50BA4235DF9E300AB72E1 /* RxOptional.h in Headers */ = {isa = PBXBuildFile; fileRef = 12C50B9A235DF8C200AB72E1 /* RxOptional.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 12C50BA5235DF9E400AB72E1 /* RxOptional.h in Headers */ = {isa = PBXBuildFile; fileRef = 12C50B9A235DF8C200AB72E1 /* RxOptional.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 12C50BA6235DF9E500AB72E1 /* RxOptional.h in Headers */ = {isa = PBXBuildFile; fileRef = 12C50B9A235DF8C200AB72E1 /* RxOptional.h */; settings = {ATTRIBUTES = (Public, ); }; }; 4B5983031D902BA600409FC8 /* RxOptional.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B5982E11D902B8F00409FC8 /* RxOptional.framework */; }; 4B5983801D902FF300409FC8 /* RxOptional.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B5982E11D902B8F00409FC8 /* RxOptional.framework */; }; 4B5983901D90306D00409FC8 /* Nimble.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B59838E1D90306D00409FC8 /* Nimble.framework */; }; @@ -19,49 +60,11 @@ 4B5983A31D9030B300409FC8 /* RxSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B5983A11D9030B300409FC8 /* RxSwift.framework */; }; 4B5983A61D9030C100409FC8 /* RxCocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B5983A41D9030C100409FC8 /* RxCocoa.framework */; }; 4B5983A71D9030C100409FC8 /* RxSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B5983A51D9030C100409FC8 /* RxSwift.framework */; }; - 4B5983C21D9035A500409FC8 /* SharedSequence+Occupiable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B5983B81D9035A500409FC8 /* SharedSequence+Occupiable.swift */; }; - 4B5983C31D9035A500409FC8 /* SharedSequence+Occupiable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B5983B81D9035A500409FC8 /* SharedSequence+Occupiable.swift */; }; - 4B5983C41D9035A500409FC8 /* SharedSequence+Occupiable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B5983B81D9035A500409FC8 /* SharedSequence+Occupiable.swift */; }; - 4B5983C61D9035A500409FC8 /* SharedSequence+Optional.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B5983B91D9035A500409FC8 /* SharedSequence+Optional.swift */; }; - 4B5983C71D9035A500409FC8 /* SharedSequence+Optional.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B5983B91D9035A500409FC8 /* SharedSequence+Optional.swift */; }; - 4B5983C81D9035A500409FC8 /* SharedSequence+Optional.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B5983B91D9035A500409FC8 /* SharedSequence+Optional.swift */; }; - 4B5983CA1D9035A500409FC8 /* Observable+Occupiable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B5983BA1D9035A500409FC8 /* Observable+Occupiable.swift */; }; - 4B5983CB1D9035A500409FC8 /* Observable+Occupiable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B5983BA1D9035A500409FC8 /* Observable+Occupiable.swift */; }; - 4B5983CC1D9035A500409FC8 /* Observable+Occupiable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B5983BA1D9035A500409FC8 /* Observable+Occupiable.swift */; }; - 4B5983CE1D9035A500409FC8 /* Observable+Optional.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B5983BB1D9035A500409FC8 /* Observable+Optional.swift */; }; - 4B5983CF1D9035A500409FC8 /* Observable+Optional.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B5983BB1D9035A500409FC8 /* Observable+Optional.swift */; }; - 4B5983D01D9035A500409FC8 /* Observable+Optional.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B5983BB1D9035A500409FC8 /* Observable+Optional.swift */; }; - 4B5983D21D9035A500409FC8 /* Occupiable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B5983BC1D9035A500409FC8 /* Occupiable.swift */; }; - 4B5983D31D9035A500409FC8 /* Occupiable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B5983BC1D9035A500409FC8 /* Occupiable.swift */; }; - 4B5983D41D9035A500409FC8 /* Occupiable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B5983BC1D9035A500409FC8 /* Occupiable.swift */; }; - 4B5983D61D9035A500409FC8 /* OptionalType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B5983BD1D9035A500409FC8 /* OptionalType.swift */; }; - 4B5983D71D9035A500409FC8 /* OptionalType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B5983BD1D9035A500409FC8 /* OptionalType.swift */; }; - 4B5983D81D9035A500409FC8 /* OptionalType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B5983BD1D9035A500409FC8 /* OptionalType.swift */; }; - 4B5983DA1D9035A500409FC8 /* RxOptionalError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B5983BE1D9035A500409FC8 /* RxOptionalError.swift */; }; - 4B5983DB1D9035A500409FC8 /* RxOptionalError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B5983BE1D9035A500409FC8 /* RxOptionalError.swift */; }; - 4B5983DC1D9035A500409FC8 /* RxOptionalError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B5983BE1D9035A500409FC8 /* RxOptionalError.swift */; }; - 4B5983E21D9035A500409FC8 /* RxOptional.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B5983C11D9035A500409FC8 /* RxOptional.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4B5983E31D9035A500409FC8 /* RxOptional.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B5983C11D9035A500409FC8 /* RxOptional.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4B5983E41D9035A500409FC8 /* RxOptional.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B5983C11D9035A500409FC8 /* RxOptional.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4B5983EE1D9035BD00409FC8 /* OccupiableOperatorsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B5983E81D9035BD00409FC8 /* OccupiableOperatorsTests.swift */; }; - 4B5983F01D9035BD00409FC8 /* OccupiableOperatorsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B5983E81D9035BD00409FC8 /* OccupiableOperatorsTests.swift */; }; - 4B5983F11D9035BD00409FC8 /* OccupiableOperatorsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B5983E81D9035BD00409FC8 /* OccupiableOperatorsTests.swift */; }; - 4B5983F21D9035BD00409FC8 /* OptionalOperatorsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B5983E91D9035BD00409FC8 /* OptionalOperatorsTests.swift */; }; - 4B5983F41D9035BD00409FC8 /* OptionalOperatorsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B5983E91D9035BD00409FC8 /* OptionalOperatorsTests.swift */; }; - 4B5983F51D9035BD00409FC8 /* OptionalOperatorsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B5983E91D9035BD00409FC8 /* OptionalOperatorsTests.swift */; }; 783A3C7220D6B6D70022CF68 /* RxOptional.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B5983391D902F0800409FC8 /* RxOptional.framework */; }; 783A3C7320D6B6DF0022CF68 /* Nimble.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B5983941D90308E00409FC8 /* Nimble.framework */; }; 783A3C7420D6B6DF0022CF68 /* Quick.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B5983951D90308E00409FC8 /* Quick.framework */; }; 8482735E1DF9C9840083191B /* RxSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B5983A91D9030C800409FC8 /* RxSwift.framework */; }; 8482735F1DF9C9840083191B /* RxCocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B5983A81D9030C800409FC8 /* RxCocoa.framework */; }; - 848273611DF9C9DC0083191B /* RxOptional.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B5983C11D9035A500409FC8 /* RxOptional.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 848273651DF9CE3C0083191B /* SharedSequence+Occupiable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B5983B81D9035A500409FC8 /* SharedSequence+Occupiable.swift */; }; - 848273661DF9CE3C0083191B /* SharedSequence+Optional.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B5983B91D9035A500409FC8 /* SharedSequence+Optional.swift */; }; - 848273671DF9CE3C0083191B /* Observable+Occupiable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B5983BA1D9035A500409FC8 /* Observable+Occupiable.swift */; }; - 848273681DF9CE3C0083191B /* Observable+Optional.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B5983BB1D9035A500409FC8 /* Observable+Optional.swift */; }; - 848273691DF9CE3C0083191B /* Occupiable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B5983BC1D9035A500409FC8 /* Occupiable.swift */; }; - 8482736A1DF9CE3C0083191B /* OptionalType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B5983BD1D9035A500409FC8 /* OptionalType.swift */; }; - 8482736B1DF9CE3C0083191B /* RxOptionalError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B5983BE1D9035A500409FC8 /* RxOptionalError.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -89,6 +92,20 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ + 12C50B4F235DF6B200AB72E1 /* Observable+Occupiable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Observable+Occupiable.swift"; sourceTree = ""; }; + 12C50B50235DF6B200AB72E1 /* RxOptionalError.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RxOptionalError.swift; sourceTree = ""; }; + 12C50B51235DF6B200AB72E1 /* Observable+Optional.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Observable+Optional.swift"; sourceTree = ""; }; + 12C50B52235DF6B200AB72E1 /* SharedSequence+Occupiable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "SharedSequence+Occupiable.swift"; sourceTree = ""; }; + 12C50B53235DF6B200AB72E1 /* OptionalType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OptionalType.swift; sourceTree = ""; }; + 12C50B54235DF6B200AB72E1 /* Occupiable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Occupiable.swift; sourceTree = ""; }; + 12C50B55235DF6B200AB72E1 /* SharedSequence+Optional.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "SharedSequence+Optional.swift"; sourceTree = ""; }; + 12C50B89235DF6D900AB72E1 /* OptionalOperatorsTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OptionalOperatorsTests.swift; sourceTree = ""; }; + 12C50B8A235DF6D900AB72E1 /* XCTestManifests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCTestManifests.swift; sourceTree = ""; }; + 12C50B8B235DF6D900AB72E1 /* OccupiableOperatorsTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OccupiableOperatorsTests.swift; sourceTree = ""; }; + 12C50B8C235DF6D900AB72E1 /* LinuxMain.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LinuxMain.swift; sourceTree = ""; }; + 12C50B9A235DF8C200AB72E1 /* RxOptional.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RxOptional.h; sourceTree = ""; }; + 12C50B9B235DF8C200AB72E1 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 12C50B9F235DF97600AB72E1 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; name = Info.plist; path = Tests/Info.plist; sourceTree = SOURCE_ROOT; }; 4B5982E11D902B8F00409FC8 /* RxOptional.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = RxOptional.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 4B5982FE1D902BA600409FC8 /* RxOptional iOS Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "RxOptional iOS Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; 4B5983271D902EFD00409FC8 /* RxOptional.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = RxOptional.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -109,18 +126,6 @@ 4B5983A51D9030C100409FC8 /* RxSwift.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = RxSwift.framework; path = Carthage/Build/Mac/RxSwift.framework; sourceTree = ""; }; 4B5983A81D9030C800409FC8 /* RxCocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = RxCocoa.framework; path = Carthage/Build/tvOS/RxCocoa.framework; sourceTree = ""; }; 4B5983A91D9030C800409FC8 /* RxSwift.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = RxSwift.framework; path = Carthage/Build/tvOS/RxSwift.framework; sourceTree = ""; }; - 4B5983B81D9035A500409FC8 /* SharedSequence+Occupiable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "SharedSequence+Occupiable.swift"; sourceTree = ""; }; - 4B5983B91D9035A500409FC8 /* SharedSequence+Optional.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "SharedSequence+Optional.swift"; sourceTree = ""; }; - 4B5983BA1D9035A500409FC8 /* Observable+Occupiable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Observable+Occupiable.swift"; sourceTree = ""; }; - 4B5983BB1D9035A500409FC8 /* Observable+Optional.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Observable+Optional.swift"; sourceTree = ""; }; - 4B5983BC1D9035A500409FC8 /* Occupiable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Occupiable.swift; sourceTree = ""; }; - 4B5983BD1D9035A500409FC8 /* OptionalType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OptionalType.swift; sourceTree = ""; }; - 4B5983BE1D9035A500409FC8 /* RxOptionalError.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RxOptionalError.swift; sourceTree = ""; }; - 4B5983C01D9035A500409FC8 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 4B5983C11D9035A500409FC8 /* RxOptional.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RxOptional.h; sourceTree = ""; }; - 4B5983E71D9035BD00409FC8 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 4B5983E81D9035BD00409FC8 /* OccupiableOperatorsTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OccupiableOperatorsTests.swift; sourceTree = ""; }; - 4B5983E91D9035BD00409FC8 /* OptionalOperatorsTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OptionalOperatorsTests.swift; sourceTree = ""; }; 8260378F2331307B00E3F5EA /* Package.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Package.swift; sourceTree = ""; }; 848273561DF9C9660083191B /* RxOptional.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = RxOptional.framework; sourceTree = BUILT_PRODUCTS_DIR; }; A2B44FCF227B866600E0763B /* Examples.playground */ = {isa = PBXFileReference; lastKnownFileType = file.playground; path = Examples.playground; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.swift; }; @@ -196,13 +201,65 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 12C50B4D235DF6B200AB72E1 /* Sources */ = { + isa = PBXGroup; + children = ( + 12C50B4E235DF6B200AB72E1 /* RxOptional */, + ); + path = Sources; + sourceTree = ""; + }; + 12C50B4E235DF6B200AB72E1 /* RxOptional */ = { + isa = PBXGroup; + children = ( + 12C50B99235DF8C200AB72E1 /* Supporting Files */, + 12C50B4F235DF6B200AB72E1 /* Observable+Occupiable.swift */, + 12C50B50235DF6B200AB72E1 /* RxOptionalError.swift */, + 12C50B51235DF6B200AB72E1 /* Observable+Optional.swift */, + 12C50B52235DF6B200AB72E1 /* SharedSequence+Occupiable.swift */, + 12C50B53235DF6B200AB72E1 /* OptionalType.swift */, + 12C50B54235DF6B200AB72E1 /* Occupiable.swift */, + 12C50B55235DF6B200AB72E1 /* SharedSequence+Optional.swift */, + ); + path = RxOptional; + sourceTree = ""; + }; + 12C50B87235DF6D900AB72E1 /* Tests */ = { + isa = PBXGroup; + children = ( + 12C50B9F235DF97600AB72E1 /* Info.plist */, + 12C50B88235DF6D900AB72E1 /* RxOptionalTests */, + 12C50B8C235DF6D900AB72E1 /* LinuxMain.swift */, + ); + path = Tests; + sourceTree = ""; + }; + 12C50B88235DF6D900AB72E1 /* RxOptionalTests */ = { + isa = PBXGroup; + children = ( + 12C50B89235DF6D900AB72E1 /* OptionalOperatorsTests.swift */, + 12C50B8A235DF6D900AB72E1 /* XCTestManifests.swift */, + 12C50B8B235DF6D900AB72E1 /* OccupiableOperatorsTests.swift */, + ); + path = RxOptionalTests; + sourceTree = ""; + }; + 12C50B99235DF8C200AB72E1 /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 12C50B9A235DF8C200AB72E1 /* RxOptional.h */, + 12C50B9B235DF8C200AB72E1 /* Info.plist */, + ); + path = "Supporting Files"; + sourceTree = ""; + }; 4B5982D71D902B8F00409FC8 = { isa = PBXGroup; children = ( + 12C50B87235DF6D900AB72E1 /* Tests */, + 12C50B4D235DF6B200AB72E1 /* Sources */, 8260378F2331307B00E3F5EA /* Package.swift */, A2B44FCF227B866600E0763B /* Examples.playground */, - 4B5983B71D9035A500409FC8 /* Source */, - 4B5983E61D9035BD00409FC8 /* Test */, 4B5982E21D902B8F00409FC8 /* Products */, 4B59838D1D90306D00409FC8 /* Frameworks */, ); @@ -243,40 +300,6 @@ name = Frameworks; sourceTree = ""; }; - 4B5983B71D9035A500409FC8 /* Source */ = { - isa = PBXGroup; - children = ( - 4B5983B81D9035A500409FC8 /* SharedSequence+Occupiable.swift */, - 4B5983B91D9035A500409FC8 /* SharedSequence+Optional.swift */, - 4B5983BA1D9035A500409FC8 /* Observable+Occupiable.swift */, - 4B5983BB1D9035A500409FC8 /* Observable+Optional.swift */, - 4B5983BC1D9035A500409FC8 /* Occupiable.swift */, - 4B5983BD1D9035A500409FC8 /* OptionalType.swift */, - 4B5983BE1D9035A500409FC8 /* RxOptionalError.swift */, - 4B5983BF1D9035A500409FC8 /* Supporting Files */, - ); - path = Source; - sourceTree = ""; - }; - 4B5983BF1D9035A500409FC8 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 4B5983C01D9035A500409FC8 /* Info.plist */, - 4B5983C11D9035A500409FC8 /* RxOptional.h */, - ); - path = "Supporting Files"; - sourceTree = ""; - }; - 4B5983E61D9035BD00409FC8 /* Test */ = { - isa = PBXGroup; - children = ( - 4B5983E71D9035BD00409FC8 /* Info.plist */, - 4B5983E81D9035BD00409FC8 /* OccupiableOperatorsTests.swift */, - 4B5983E91D9035BD00409FC8 /* OptionalOperatorsTests.swift */, - ); - path = Test; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ @@ -284,7 +307,7 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 4B5983E21D9035A500409FC8 /* RxOptional.h in Headers */, + 12C50BA3235DF9E300AB72E1 /* RxOptional.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -292,7 +315,7 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 4B5983E31D9035A500409FC8 /* RxOptional.h in Headers */, + 12C50BA4235DF9E300AB72E1 /* RxOptional.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -300,7 +323,7 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 4B5983E41D9035A500409FC8 /* RxOptional.h in Headers */, + 12C50BA5235DF9E400AB72E1 /* RxOptional.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -308,7 +331,7 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 848273611DF9C9DC0083191B /* RxOptional.h in Headers */, + 12C50BA6235DF9E500AB72E1 /* RxOptional.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -557,13 +580,13 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 4B5983C61D9035A500409FC8 /* SharedSequence+Optional.swift in Sources */, - 4B5983C21D9035A500409FC8 /* SharedSequence+Occupiable.swift in Sources */, - 4B5983D21D9035A500409FC8 /* Occupiable.swift in Sources */, - 4B5983DA1D9035A500409FC8 /* RxOptionalError.swift in Sources */, - 4B5983CA1D9035A500409FC8 /* Observable+Occupiable.swift in Sources */, - 4B5983CE1D9035A500409FC8 /* Observable+Optional.swift in Sources */, - 4B5983D61D9035A500409FC8 /* OptionalType.swift in Sources */, + 12C50B6B235DF6B300AB72E1 /* SharedSequence+Occupiable.swift in Sources */, + 12C50B5D235DF6B300AB72E1 /* RxOptionalError.swift in Sources */, + 12C50B80235DF6B300AB72E1 /* SharedSequence+Optional.swift in Sources */, + 12C50B79235DF6B300AB72E1 /* Occupiable.swift in Sources */, + 12C50B72235DF6B300AB72E1 /* OptionalType.swift in Sources */, + 12C50B56235DF6B200AB72E1 /* Observable+Occupiable.swift in Sources */, + 12C50B64235DF6B300AB72E1 /* Observable+Optional.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -571,8 +594,9 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 4B5983EE1D9035BD00409FC8 /* OccupiableOperatorsTests.swift in Sources */, - 4B5983F21D9035BD00409FC8 /* OptionalOperatorsTests.swift in Sources */, + 12C50B93235DF6D900AB72E1 /* OccupiableOperatorsTests.swift in Sources */, + 12C50B8D235DF6D900AB72E1 /* OptionalOperatorsTests.swift in Sources */, + 12C50B90235DF6D900AB72E1 /* XCTestManifests.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -580,13 +604,13 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 4B5983C71D9035A500409FC8 /* SharedSequence+Optional.swift in Sources */, - 4B5983C31D9035A500409FC8 /* SharedSequence+Occupiable.swift in Sources */, - 4B5983D31D9035A500409FC8 /* Occupiable.swift in Sources */, - 4B5983DB1D9035A500409FC8 /* RxOptionalError.swift in Sources */, - 4B5983CB1D9035A500409FC8 /* Observable+Occupiable.swift in Sources */, - 4B5983CF1D9035A500409FC8 /* Observable+Optional.swift in Sources */, - 4B5983D71D9035A500409FC8 /* OptionalType.swift in Sources */, + 12C50B6D235DF6B300AB72E1 /* SharedSequence+Occupiable.swift in Sources */, + 12C50B5F235DF6B300AB72E1 /* RxOptionalError.swift in Sources */, + 12C50B82235DF6B300AB72E1 /* SharedSequence+Optional.swift in Sources */, + 12C50B7B235DF6B300AB72E1 /* Occupiable.swift in Sources */, + 12C50B74235DF6B300AB72E1 /* OptionalType.swift in Sources */, + 12C50B58235DF6B300AB72E1 /* Observable+Occupiable.swift in Sources */, + 12C50B66235DF6B300AB72E1 /* Observable+Optional.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -594,13 +618,13 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 4B5983C81D9035A500409FC8 /* SharedSequence+Optional.swift in Sources */, - 4B5983C41D9035A500409FC8 /* SharedSequence+Occupiable.swift in Sources */, - 4B5983D41D9035A500409FC8 /* Occupiable.swift in Sources */, - 4B5983DC1D9035A500409FC8 /* RxOptionalError.swift in Sources */, - 4B5983CC1D9035A500409FC8 /* Observable+Occupiable.swift in Sources */, - 4B5983D01D9035A500409FC8 /* Observable+Optional.swift in Sources */, - 4B5983D81D9035A500409FC8 /* OptionalType.swift in Sources */, + 12C50B6E235DF6B300AB72E1 /* SharedSequence+Occupiable.swift in Sources */, + 12C50B60235DF6B300AB72E1 /* RxOptionalError.swift in Sources */, + 12C50B83235DF6B300AB72E1 /* SharedSequence+Optional.swift in Sources */, + 12C50B7C235DF6B300AB72E1 /* Occupiable.swift in Sources */, + 12C50B75235DF6B300AB72E1 /* OptionalType.swift in Sources */, + 12C50B59235DF6B300AB72E1 /* Observable+Occupiable.swift in Sources */, + 12C50B67235DF6B300AB72E1 /* Observable+Optional.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -608,8 +632,9 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 4B5983F01D9035BD00409FC8 /* OccupiableOperatorsTests.swift in Sources */, - 4B5983F41D9035BD00409FC8 /* OptionalOperatorsTests.swift in Sources */, + 12C50B94235DF6D900AB72E1 /* OccupiableOperatorsTests.swift in Sources */, + 12C50B8E235DF6D900AB72E1 /* OptionalOperatorsTests.swift in Sources */, + 12C50B91235DF6D900AB72E1 /* XCTestManifests.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -617,8 +642,9 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 4B5983F11D9035BD00409FC8 /* OccupiableOperatorsTests.swift in Sources */, - 4B5983F51D9035BD00409FC8 /* OptionalOperatorsTests.swift in Sources */, + 12C50B95235DF6D900AB72E1 /* OccupiableOperatorsTests.swift in Sources */, + 12C50B8F235DF6D900AB72E1 /* OptionalOperatorsTests.swift in Sources */, + 12C50B92235DF6D900AB72E1 /* XCTestManifests.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -626,13 +652,13 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 848273691DF9CE3C0083191B /* Occupiable.swift in Sources */, - 848273671DF9CE3C0083191B /* Observable+Occupiable.swift in Sources */, - 848273651DF9CE3C0083191B /* SharedSequence+Occupiable.swift in Sources */, - 8482736A1DF9CE3C0083191B /* OptionalType.swift in Sources */, - 8482736B1DF9CE3C0083191B /* RxOptionalError.swift in Sources */, - 848273681DF9CE3C0083191B /* Observable+Optional.swift in Sources */, - 848273661DF9CE3C0083191B /* SharedSequence+Optional.swift in Sources */, + 12C50B70235DF6B300AB72E1 /* SharedSequence+Occupiable.swift in Sources */, + 12C50B62235DF6B300AB72E1 /* RxOptionalError.swift in Sources */, + 12C50B85235DF6B300AB72E1 /* SharedSequence+Optional.swift in Sources */, + 12C50B7E235DF6B300AB72E1 /* Occupiable.swift in Sources */, + 12C50B77235DF6B300AB72E1 /* OptionalType.swift in Sources */, + 12C50B5B235DF6B300AB72E1 /* Observable+Occupiable.swift in Sources */, + 12C50B69235DF6B300AB72E1 /* Observable+Optional.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -792,7 +818,7 @@ "$(inherited)", "$(PROJECT_DIR)/Carthage/Build/iOS", ); - INFOPLIST_FILE = "$(SRCROOT)/Source/Supporting Files/Info.plist"; + INFOPLIST_FILE = "Sources/RxOptional/Supporting Files/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; @@ -819,7 +845,7 @@ "$(inherited)", "$(PROJECT_DIR)/Carthage/Build/iOS", ); - INFOPLIST_FILE = "$(SRCROOT)/Source/Supporting Files/Info.plist"; + INFOPLIST_FILE = "Sources/RxOptional/Supporting Files/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; @@ -834,6 +860,7 @@ 4B5983071D902BA600409FC8 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; DEVELOPMENT_TEAM = KU2QEJ9K3Z; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", @@ -841,7 +868,7 @@ "$(PROJECT_DIR)/Carthage/Build/tvOS", "$(PROJECT_DIR)/Carthage/Build/Mac", ); - INFOPLIST_FILE = Test/Info.plist; + INFOPLIST_FILE = Tests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks $(SRCROOT)/Carthage/Build/iOS"; PRODUCT_BUNDLE_IDENTIFIER = me.muukii.RxOptionalTests; @@ -853,6 +880,7 @@ 4B5983081D902BA600409FC8 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; DEVELOPMENT_TEAM = KU2QEJ9K3Z; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", @@ -860,7 +888,7 @@ "$(PROJECT_DIR)/Carthage/Build/tvOS", "$(PROJECT_DIR)/Carthage/Build/Mac", ); - INFOPLIST_FILE = Test/Info.plist; + INFOPLIST_FILE = Tests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks $(SRCROOT)/Carthage/Build/iOS"; PRODUCT_BUNDLE_IDENTIFIER = me.muukii.RxOptionalTests; @@ -883,7 +911,7 @@ "$(inherited)", "$(PROJECT_DIR)/Carthage/Build/watchOS", ); - INFOPLIST_FILE = "$(SRCROOT)/Source/Supporting Files/Info.plist"; + INFOPLIST_FILE = "Sources/RxOptional/Supporting Files/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = ""; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; @@ -912,7 +940,7 @@ "$(inherited)", "$(PROJECT_DIR)/Carthage/Build/watchOS", ); - INFOPLIST_FILE = "$(SRCROOT)/Source/Supporting Files/Info.plist"; + INFOPLIST_FILE = "Sources/RxOptional/Supporting Files/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = ""; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; @@ -941,7 +969,7 @@ "$(inherited)", "$(PROJECT_DIR)/Carthage/Build/Mac", ); - INFOPLIST_FILE = "$(SRCROOT)/Source/Supporting Files/Info.plist"; + INFOPLIST_FILE = "Sources/RxOptional/Supporting Files/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; @@ -970,7 +998,7 @@ "$(inherited)", "$(PROJECT_DIR)/Carthage/Build/Mac", ); - INFOPLIST_FILE = "$(SRCROOT)/Source/Supporting Files/Info.plist"; + INFOPLIST_FILE = "Sources/RxOptional/Supporting Files/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; @@ -986,13 +1014,13 @@ 4B5983761D902FF100409FC8 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; DEVELOPMENT_TEAM = KU2QEJ9K3Z; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Carthage/Build/Mac", ); - INFOPLIST_FILE = Test/Info.plist; + INFOPLIST_FILE = Tests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks $(SRCROOT)/Carthage/Build/Mac @loader_path/../Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = me.muukii.RxOptionalTests; @@ -1005,13 +1033,13 @@ 4B5983771D902FF100409FC8 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; DEVELOPMENT_TEAM = KU2QEJ9K3Z; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Carthage/Build/Mac", ); - INFOPLIST_FILE = Test/Info.plist; + INFOPLIST_FILE = Tests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks $(SRCROOT)/Carthage/Build/Mac @loader_path/../Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = me.muukii.RxOptionalTests; @@ -1031,7 +1059,7 @@ "$(PROJECT_DIR)/Carthage/Build/tvOS", "$(PROJECT_DIR)/Carthage/Build/iOS", ); - INFOPLIST_FILE = Test/Info.plist; + INFOPLIST_FILE = Tests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks $(SRCROOT)/Carthage/Build/tvOS"; PRODUCT_BUNDLE_IDENTIFIER = me.muukii.RxOptionalTests; @@ -1051,7 +1079,7 @@ "$(PROJECT_DIR)/Carthage/Build/tvOS", "$(PROJECT_DIR)/Carthage/Build/iOS", ); - INFOPLIST_FILE = Test/Info.plist; + INFOPLIST_FILE = Tests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks $(SRCROOT)/Carthage/Build/tvOS"; PRODUCT_BUNDLE_IDENTIFIER = me.muukii.RxOptionalTests; @@ -1074,7 +1102,7 @@ "$(inherited)", "$(PROJECT_DIR)/Carthage/Build/tvOS", ); - INFOPLIST_FILE = "$(SRCROOT)/Source/Supporting Files/Info.plist"; + INFOPLIST_FILE = "Sources/RxOptional/Supporting Files/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; @@ -1101,7 +1129,7 @@ "$(inherited)", "$(PROJECT_DIR)/Carthage/Build/tvOS", ); - INFOPLIST_FILE = "$(SRCROOT)/Source/Supporting Files/Info.plist"; + INFOPLIST_FILE = "Sources/RxOptional/Supporting Files/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; diff --git a/Source/Observable+Occupiable.swift b/Sources/RxOptional/Observable+Occupiable.swift similarity index 100% rename from Source/Observable+Occupiable.swift rename to Sources/RxOptional/Observable+Occupiable.swift diff --git a/Source/Observable+Optional.swift b/Sources/RxOptional/Observable+Optional.swift similarity index 100% rename from Source/Observable+Optional.swift rename to Sources/RxOptional/Observable+Optional.swift diff --git a/Source/Occupiable.swift b/Sources/RxOptional/Occupiable.swift similarity index 100% rename from Source/Occupiable.swift rename to Sources/RxOptional/Occupiable.swift diff --git a/Source/OptionalType.swift b/Sources/RxOptional/OptionalType.swift similarity index 100% rename from Source/OptionalType.swift rename to Sources/RxOptional/OptionalType.swift diff --git a/Sources/RxOptional/RxOptional.swift b/Sources/RxOptional/RxOptional.swift deleted file mode 100644 index 388bc51..0000000 --- a/Sources/RxOptional/RxOptional.swift +++ /dev/null @@ -1,3 +0,0 @@ -struct RxOptional { - var text = "Hello, World!" -} diff --git a/Source/RxOptionalError.swift b/Sources/RxOptional/RxOptionalError.swift similarity index 100% rename from Source/RxOptionalError.swift rename to Sources/RxOptional/RxOptionalError.swift diff --git a/Source/SharedSequence+Occupiable.swift b/Sources/RxOptional/SharedSequence+Occupiable.swift similarity index 100% rename from Source/SharedSequence+Occupiable.swift rename to Sources/RxOptional/SharedSequence+Occupiable.swift diff --git a/Source/SharedSequence+Optional.swift b/Sources/RxOptional/SharedSequence+Optional.swift similarity index 100% rename from Source/SharedSequence+Optional.swift rename to Sources/RxOptional/SharedSequence+Optional.swift diff --git a/Source/Supporting Files/Info.plist b/Sources/RxOptional/Supporting Files/Info.plist similarity index 100% rename from Source/Supporting Files/Info.plist rename to Sources/RxOptional/Supporting Files/Info.plist diff --git a/Source/Supporting Files/RxOptional.h b/Sources/RxOptional/Supporting Files/RxOptional.h similarity index 100% rename from Source/Supporting Files/RxOptional.h rename to Sources/RxOptional/Supporting Files/RxOptional.h diff --git a/Test/Info.plist b/Tests/Info.plist similarity index 100% rename from Test/Info.plist rename to Tests/Info.plist diff --git a/Tests/LinuxMain.swift b/Tests/LinuxMain.swift index fc66764..085f61b 100644 --- a/Tests/LinuxMain.swift +++ b/Tests/LinuxMain.swift @@ -3,5 +3,6 @@ import XCTest import RxOptionalTests var tests = [XCTestCaseEntry]() -tests += RxOptionalTests.allTests() +tests += RxOptionalTests.__allTests() + XCTMain(tests) diff --git a/Tests/RxOptionalTests/OccupiableOperatorsTests.swift b/Tests/RxOptionalTests/OccupiableOperatorsTests.swift new file mode 100644 index 0000000..80a2055 --- /dev/null +++ b/Tests/RxOptionalTests/OccupiableOperatorsTests.swift @@ -0,0 +1,128 @@ +import Quick +import Nimble +import RxSwift +import RxCocoa +import RxOptional + +class OccupiableOperatorsSpec: QuickSpec { + override func spec() { + describe("filterEmpty") { + context("Observable") { + it("filters out empty arrays") { + Observable<[Int]> + .of([1], [], [3, 4], [5]) + .filterEmpty() + .toArray() + .subscribe(onSuccess: { + expect($0[0]).to(equal([1])) + expect($0[1]).to(equal([3, 4])) + expect($0[2]).to(equal([5])) + }) + .dispose() + + } + + it("filters out empty strings") { + Observable + .of("one", "", "three", "four") + .filterEmpty() + .toArray() + .subscribe(onSuccess: { + expect($0).to(equal(["one", "three", "four"])) + }) + .dispose() + + } + } + + context("Driver") { + it("filters out empty arrays") { + Driver<[Int]> + .of([1], [], [3, 4], [5]) + .filterEmpty() + .asObservable() + .toArray() + .subscribe(onSuccess: { + expect($0[0]).to(equal([1])) + expect($0[1]).to(equal([3, 4])) + expect($0[2]).to(equal([5])) + }) + .dispose() + + } + + it("filters out empty strings") { + Driver + .of("one", "", "three", "four") + .filterEmpty() + .asObservable() + .toArray() + .subscribe(onSuccess: { + expect($0).to(equal(["one", "three", "four"])) + }) + .dispose() + + } + } + } + + describe("catchOnEmpty") { + context("Observable") { + it("emits default error") { + Observable<[Int]> + .of([1], [], [3, 4], [5]) + .catchOnEmpty { + return Observable<[Int]>.just([2]) + } + .toArray() + .subscribe(onSuccess: { + expect($0[0]).to(equal([1])) + expect($0[1]).to(equal([2])) + expect($0[2]).to(equal([3, 4])) + expect($0[3]).to(equal([5])) + }) + .dispose() + } + } + + context("Driver") { + Driver<[Int]> + .of([1], [], [3, 4], [5]) + .catchOnEmpty { + return Driver<[Int]>.just([2]) + } + .asObservable() + .toArray() + .subscribe(onSuccess: { + expect($0[0]).to(equal([1])) + expect($0[1]).to(equal([2])) + expect($0[2]).to(equal([3, 4])) + expect($0[3]).to(equal([5])) + }) + .dispose() + } + } + + describe("errorOnEmpty") { + context("Observable") { + Observable<[Int]> + .of([1], [], [3, 4], [5]) + .errorOnEmpty() + .toArray() + .subscribe { event in + switch event { + case .success(let element): + expect(element[0]).to(equal([1])) + expect(element[1]).to(equal([3, 4])) + expect(element[2]).to(equal([5])) + case .error(let error): + // FIXME: There should be a better way to do this and to check a more specific error. + expect { throw error } + .to(throwError(errorType: RxOptionalError.self)) + } + } + .dispose() + } + } + } +} diff --git a/Tests/RxOptionalTests/OptionalOperatorsTests.swift b/Tests/RxOptionalTests/OptionalOperatorsTests.swift new file mode 100644 index 0000000..b4a32ca --- /dev/null +++ b/Tests/RxOptionalTests/OptionalOperatorsTests.swift @@ -0,0 +1,208 @@ +import Quick +import Nimble +import RxSwift +import RxCocoa +import RxOptional + +class OptionalOperatorsSpec: QuickSpec { + override func spec() { + describe("filterNil") { + context("Observable") { + it("unwraps the optional") { + // Check on compile + let _: Observable = Observable + .just(nil) + .filterNil() + } + + it("filters nil values") { + Observable + .of(1, nil, 3, 4) + .filterNil() + .toArray() + .subscribe(onSuccess: { + expect($0).to(equal([1, 3, 4])) + }) + .dispose() + } + + + it("filters nil values and keeps types") { + Observable + .of(1, nil, 3, 4) + .filterNilKeepOptional() + .toArray() + .subscribe(onSuccess: { + expect($0).to(equal([1, 3, 4])) + }) + .dispose() + } + } + + context("Driver") { + it("unwraps the optional") { + // Check on compile + let _: Driver = Driver + .just(nil) + .filterNil() + } + + it("filters nil values") { + Driver + .of(1, nil, 3, 4) + .filterNil() + .asObservable() + .toArray() + .subscribe(onSuccess: { + expect($0).to(equal([1, 3, 4])) + }) + .dispose() + } + } + + context("Signal") { + it("unwraps the optional") { + // Check on compile + let _: Signal = Signal + .just(nil) + .filterNil() + } + + it("filters nil values") { + Signal + .of(1, nil, 3, 4) + .filterNil() + .asObservable() + .toArray() + .subscribe(onSuccess: { + expect($0).to(equal([1, 3, 4])) + }) + .dispose() + } + } + } + + describe("Error On Nil") { + context("Observable") { + it("unwraps the optional") { + // Check on compile + let _: Observable = Observable + .just(nil) + .errorOnNil() + } + + it("throws default error") { + Observable + .of(1, nil, 3, 4) + .errorOnNil() + .toArray() + .subscribe { event in + switch event { + case .success(let element): + expect(element).to(equal([1])) + case .error(let error): + // FIXME: There should be a better way to do this and to check a more specific error. + expect { throw error } + .to(throwError(errorType: RxOptionalError.self)) + } + } + .dispose() + } + } + } + + describe("replaceNilWith") { + context("Observable") { + it("unwraps the optional") { + // Check on compile + let _: Observable = Observable + .just(nil) + .replaceNilWith(0) + } + + it("replaces nil values") { + Observable + .of(1, nil, 3, 4) + .replaceNilWith(2) + .toArray() + .subscribe(onSuccess: { + expect($0).to(equal([1, 2, 3, 4])) + }) + .dispose() + } + } + + context("Driver") { + it("unwraps the optional") { + // Check on compile + let _: Driver = Driver + .just(nil) + .replaceNilWith(0) + } + + it("replaces nil values") { + Driver + .of(1, nil, 3, 4) + .replaceNilWith(2) + .asObservable() + .toArray() + .subscribe(onSuccess: { + expect($0).to(equal([1, 2, 3, 4])) + }) + .dispose() + } + } + } + + describe("catchOnNil") { + context("Observable") { + it("unwraps the optional") { + // Check on compile + let _: Observable = Observable + .just(nil) + .catchOnNil { + return Observable.just(0) + } + } + + it("catches nil and continues with new observable") { + Observable + .of(1, nil, 3, 4) + .catchOnNil { + return Observable.just(2) + } + .toArray() + .subscribe(onSuccess: { + expect($0).to(equal([1, 2, 3, 4])) + }) + .dispose() + } + } + + context("Driver") { + it("unwraps the optional") { + // Check on compile + let _: Driver = Driver + .just(nil) + .catchOnNil { + return Driver.just(0) + } + } + + it("catches nil and continues with new observable") { + Driver + .of(1, nil, 3, 4) + .catchOnNil { + return Driver.just(2) + } + .asObservable() + .toArray() + .subscribe(onSuccess: { + expect($0).to(equal([1, 2, 3, 4])) + }) + .dispose() + } + } + } + } +} diff --git a/Tests/RxOptionalTests/RxOptionalTests.swift b/Tests/RxOptionalTests/RxOptionalTests.swift deleted file mode 100644 index 65a1a4a..0000000 --- a/Tests/RxOptionalTests/RxOptionalTests.swift +++ /dev/null @@ -1,15 +0,0 @@ -import XCTest -@testable import RxOptional - -final class RxOptionalTests: XCTestCase { - func testExample() { - // This is an example of a functional test case. - // Use XCTAssert and related functions to verify your tests produce the correct - // results. - XCTAssertEqual(RxOptional().text, "Hello, World!") - } - - static var allTests = [ - ("testExample", testExample), - ] -} diff --git a/Tests/RxOptionalTests/XCTestManifests.swift b/Tests/RxOptionalTests/XCTestManifests.swift index 3e6938a..6db8213 100644 --- a/Tests/RxOptionalTests/XCTestManifests.swift +++ b/Tests/RxOptionalTests/XCTestManifests.swift @@ -1,9 +1,48 @@ +#if !canImport(ObjectiveC) import XCTest -#if !canImport(ObjectiveC) -public func allTests() -> [XCTestCaseEntry] { +extension OccupiableOperatorsSpec { + // DO NOT MODIFY: This is autogenerated, use: + // `swift test --generate-linuxmain` + // to regenerate. + static let __allTests__OccupiableOperatorsSpec = [ + ("filterEmpty__Observable__filters_out_empty_arrays", filterEmpty__Observable__filters_out_empty_arrays), + ("filterEmpty__Observable__filters_out_empty_strings", filterEmpty__Observable__filters_out_empty_strings), + ("filterEmpty__Driver__filters_out_empty_arrays", filterEmpty__Driver__filters_out_empty_arrays), + ("filterEmpty__Driver__filters_out_empty_strings", filterEmpty__Driver__filters_out_empty_strings), + ("catchOnEmpty__Observable__emits_default_error", catchOnEmpty__Observable__emits_default_error), + ] +} + +extension OptionalOperatorsSpec { + // DO NOT MODIFY: This is autogenerated, use: + // `swift test --generate-linuxmain` + // to regenerate. + static let __allTests__OptionalOperatorsSpec = [ + ("filterNil__Observable__unwraps_the_optional", filterNil__Observable__unwraps_the_optional), + ("filterNil__Observable__filters_nil_values", filterNil__Observable__filters_nil_values), + ("filterNil__Observable__filters_nil_values_and_keeps_types", filterNil__Observable__filters_nil_values_and_keeps_types), + ("filterNil__Driver__unwraps_the_optional", filterNil__Driver__unwraps_the_optional), + ("filterNil__Driver__filters_nil_values", filterNil__Driver__filters_nil_values), + ("filterNil__Signal__unwraps_the_optional", filterNil__Signal__unwraps_the_optional), + ("filterNil__Signal__filters_nil_values", filterNil__Signal__filters_nil_values), + ("Error_On_Nil__Observable__unwraps_the_optional", Error_On_Nil__Observable__unwraps_the_optional), + ("Error_On_Nil__Observable__throws_default_error", Error_On_Nil__Observable__throws_default_error), + ("replaceNilWith__Observable__unwraps_the_optional", replaceNilWith__Observable__unwraps_the_optional), + ("replaceNilWith__Observable__replaces_nil_values", replaceNilWith__Observable__replaces_nil_values), + ("replaceNilWith__Driver__unwraps_the_optional", replaceNilWith__Driver__unwraps_the_optional), + ("replaceNilWith__Driver__replaces_nil_values", replaceNilWith__Driver__replaces_nil_values), + ("catchOnNil__Observable__unwraps_the_optional", catchOnNil__Observable__unwraps_the_optional), + ("catchOnNil__Observable__catches_nil_and_continues_with_new_observable", catchOnNil__Observable__catches_nil_and_continues_with_new_observable), + ("catchOnNil__Driver__unwraps_the_optional", catchOnNil__Driver__unwraps_the_optional), + ("catchOnNil__Driver__catches_nil_and_continues_with_new_observable", catchOnNil__Driver__catches_nil_and_continues_with_new_observable), + ] +} + +public func __allTests() -> [XCTestCaseEntry] { return [ - testCase(RxOptionalTests.allTests), + testCase(OccupiableOperatorsSpec.__allTests__OccupiableOperatorsSpec), + testCase(OptionalOperatorsSpec.__allTests__OptionalOperatorsSpec), ] } #endif