From f855c9406a88c5012b034b758b823c1ec8c92de1 Mon Sep 17 00:00:00 2001 From: Ganesh N <48013530+GaneshMyNewCar@users.noreply.github.com> Date: Thu, 23 Jan 2020 12:27:38 +0530 Subject: [PATCH] Added Swift Package Manager Support --- .../contents.xcworkspacedata | 7 +++++ .../xcshareddata/IDEWorkspaceChecks.plist | 8 +++++ Package.swift | 31 +++++++++++++++++++ .../Classes/SDStateTableView.swift | 6 +++- .../SDStateTableView/SDStateTableView.swift | 3 ++ Tests/LinuxMain.swift | 7 +++++ .../SDStateTableViewTests.swift | 15 +++++++++ .../XCTestManifests.swift | 9 ++++++ 8 files changed, 85 insertions(+), 1 deletion(-) create mode 100644 .swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata create mode 100644 Example/Pods/Pods.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 Package.swift create mode 100644 Sources/SDStateTableView/SDStateTableView.swift create mode 100644 Tests/LinuxMain.swift create mode 100644 Tests/SDStateTableViewTests/SDStateTableViewTests.swift create mode 100644 Tests/SDStateTableViewTests/XCTestManifests.swift diff --git a/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata b/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Example/Pods/Pods.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Example/Pods/Pods.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/Example/Pods/Pods.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/Package.swift b/Package.swift new file mode 100644 index 0000000..b069343 --- /dev/null +++ b/Package.swift @@ -0,0 +1,31 @@ +// swift-tools-version:5.1 +// The swift-tools-version declares the minimum version of Swift required to build this package. + +import PackageDescription + +let package = Package( + name: "SDStateTableView", + platforms: [ + .iOS(.v10), + ], + products: [ + // Products define the executables and libraries produced by a package, and make them visible to other packages. + .library( + name: "SDStateTableView", + targets: ["SDStateTableView"]), + ], + dependencies: [ + // Dependencies declare other packages that this package depends on. + // .package(url: /* package url */, from: "1.0.0"), + ], + 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: "SDStateTableView", + dependencies: []), + .testTarget( + name: "SDStateTableViewTests", + dependencies: ["SDStateTableView"]), + ] +) diff --git a/SDStateTableView/Classes/SDStateTableView.swift b/SDStateTableView/Classes/SDStateTableView.swift index 48785e8..9b0084a 100644 --- a/SDStateTableView/Classes/SDStateTableView.swift +++ b/SDStateTableView/Classes/SDStateTableView.swift @@ -246,6 +246,7 @@ public class SDStateTableView: UITableView { // Deinitialization code goes here } + @available(iOS 10.0, *) public func setState(_ state: SDStateTableViewState) { self.currentState = state @@ -293,6 +294,7 @@ public class SDStateTableView: UITableView { dataStateSubtitleLabel.text = message } + @available(iOS 10.0, *) private func configureWith(image: UIImage?, title: String?, message: String) { // Image View @@ -325,6 +327,7 @@ public class SDStateTableView: UITableView { dataStateSubtitleLabel.text = message } + @available(iOS 10.0, *) private func configWithButton(image: UIImage?, title: String?, message: String, buttonTitle: String, buttonConfig: (UIButton) ->Void, @@ -343,7 +346,8 @@ public class SDStateTableView: UITableView { fileprivate extension UIImage { // Redraws itself to the new size - func imageWith(newSize: CGSize) -> UIImage { + @available(iOS 10.0, *) + func imageWith(newSize: CGSize) -> UIImage { let renderer = UIGraphicsImageRenderer(size: newSize) let image = renderer.image { _ in self.draw(in: CGRect.init(origin: CGPoint.zero, size: newSize)) diff --git a/Sources/SDStateTableView/SDStateTableView.swift b/Sources/SDStateTableView/SDStateTableView.swift new file mode 100644 index 0000000..f1b4afa --- /dev/null +++ b/Sources/SDStateTableView/SDStateTableView.swift @@ -0,0 +1,3 @@ +struct SDStateTableView { + var text = "Hello, World!" +} diff --git a/Tests/LinuxMain.swift b/Tests/LinuxMain.swift new file mode 100644 index 0000000..29c2e90 --- /dev/null +++ b/Tests/LinuxMain.swift @@ -0,0 +1,7 @@ +import XCTest + +import SDStateTableViewTests + +var tests = [XCTestCaseEntry]() +tests += SDStateTableViewTests.allTests() +XCTMain(tests) diff --git a/Tests/SDStateTableViewTests/SDStateTableViewTests.swift b/Tests/SDStateTableViewTests/SDStateTableViewTests.swift new file mode 100644 index 0000000..8351a1f --- /dev/null +++ b/Tests/SDStateTableViewTests/SDStateTableViewTests.swift @@ -0,0 +1,15 @@ +import XCTest +@testable import SDStateTableView + +final class SDStateTableViewTests: 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(SDStateTableView().text, "Hello, World!") + } + + static var allTests = [ + ("testExample", testExample), + ] +} diff --git a/Tests/SDStateTableViewTests/XCTestManifests.swift b/Tests/SDStateTableViewTests/XCTestManifests.swift new file mode 100644 index 0000000..4fccc3d --- /dev/null +++ b/Tests/SDStateTableViewTests/XCTestManifests.swift @@ -0,0 +1,9 @@ +import XCTest + +#if !canImport(ObjectiveC) +public func allTests() -> [XCTestCaseEntry] { + return [ + testCase(SDStateTableViewTests.allTests), + ] +} +#endif