From 47abeb11b70c050b7600e6783bf9408cf3b75458 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alek=20A=CC=8Astro=CC=88m?= Date: Mon, 19 Oct 2015 11:21:38 +0200 Subject: [PATCH 1/2] Made inferred generic Item parameter a typealias in data source providers --- Example/Example/CollectionViewController.swift | 2 +- Example/Example/TableViewController.swift | 3 +-- .../JSQDataSourcesKit/CollectionViewDataSourceProvider.swift | 5 +++-- .../JSQDataSourcesKit/TableViewDataSourceProvider.swift | 5 +++-- .../CollectionViewDataSourceTests.swift | 2 +- .../JSQDataSourcesKitTests/CollectionViewFakes.swift | 2 +- 6 files changed, 10 insertions(+), 9 deletions(-) diff --git a/Example/Example/CollectionViewController.swift b/Example/Example/CollectionViewController.swift index 1617846..3feaf51 100644 --- a/Example/Example/CollectionViewController.swift +++ b/Example/Example/CollectionViewController.swift @@ -27,7 +27,7 @@ class CollectionViewController: UICollectionViewController { typealias HeaderViewFactory = TitledCollectionReusableViewFactory typealias Section = CollectionViewSection - var dataSourceProvider: CollectionViewDataSourceProvider? + var dataSourceProvider: CollectionViewDataSourceProvider? override func viewDidLoad() { diff --git a/Example/Example/TableViewController.swift b/Example/Example/TableViewController.swift index 6790788..03863ac 100644 --- a/Example/Example/TableViewController.swift +++ b/Example/Example/TableViewController.swift @@ -25,8 +25,7 @@ class TableViewController: UITableViewController { typealias Section = TableViewSection typealias CellFactory = TableViewCellFactory - var dataSourceProvider: TableViewDataSourceProvider? - + var dataSourceProvider: TableViewDataSourceProvider? override func viewDidLoad() { super.viewDidLoad() diff --git a/JSQDataSourcesKit/JSQDataSourcesKit/CollectionViewDataSourceProvider.swift b/JSQDataSourcesKit/JSQDataSourcesKit/CollectionViewDataSourceProvider.swift index fbbac4f..3677579 100644 --- a/JSQDataSourcesKit/JSQDataSourcesKit/CollectionViewDataSourceProvider.swift +++ b/JSQDataSourcesKit/JSQDataSourcesKit/CollectionViewDataSourceProvider.swift @@ -32,12 +32,13 @@ A `CollectionViewDataSourceProvider` is responsible for providing a data source - Adding, removing, or reloading sections as the provider's `sections` are modified */ public final class CollectionViewDataSourceProvider < - Item, SectionInfo: CollectionViewSectionInfo, CellFactory: CollectionViewCellFactoryType, SupplementaryViewFactory: CollectionSupplementaryViewFactoryType - where SectionInfo.Item == Item, CellFactory.Item == Item, SupplementaryViewFactory.Item == Item>: CustomStringConvertible { + where SectionInfo.Item == CellFactory.Item, CellFactory.Item == SupplementaryViewFactory.Item>: CustomStringConvertible { + public typealias Item = CellFactory.Item + // MARK: Properties /// The sections in the collection view. diff --git a/JSQDataSourcesKit/JSQDataSourcesKit/TableViewDataSourceProvider.swift b/JSQDataSourcesKit/JSQDataSourcesKit/TableViewDataSourceProvider.swift index c8d0d07..1f610c7 100644 --- a/JSQDataSourcesKit/JSQDataSourcesKit/TableViewDataSourceProvider.swift +++ b/JSQDataSourcesKit/JSQDataSourcesKit/TableViewDataSourceProvider.swift @@ -30,11 +30,12 @@ A `TableViewDataSourceProvider` is responsible for providing a data source objec - Adding, removing, or reloading cells and sections as the provider's `sections` are modified. */ public final class TableViewDataSourceProvider < - Item, SectionInfo: TableViewSectionInfo, CellFactory: TableViewCellFactoryType - where SectionInfo.Item == Item, CellFactory.Item == Item>: CustomStringConvertible { + where SectionInfo.Item == CellFactory.Item>: CustomStringConvertible { + public typealias Item = CellFactory.Item + // MARK: Properties /// The sections in the table view diff --git a/JSQDataSourcesKit/JSQDataSourcesKitTests/CollectionViewDataSourceTests.swift b/JSQDataSourcesKit/JSQDataSourcesKitTests/CollectionViewDataSourceTests.swift index 47b0949..f35b82d 100644 --- a/JSQDataSourcesKit/JSQDataSourcesKitTests/CollectionViewDataSourceTests.swift +++ b/JSQDataSourcesKit/JSQDataSourcesKitTests/CollectionViewDataSourceTests.swift @@ -71,7 +71,7 @@ class CollectionViewDataSourceTests: XCTestCase { typealias CellFactory = CollectionViewCellFactory typealias SupplementaryViewFactory = CollectionSupplementaryViewFactory typealias Section = CollectionViewSection - typealias Provider = CollectionViewDataSourceProvider + typealias Provider = CollectionViewDataSourceProvider let dataSourceProvider: Provider = CollectionViewDataSourceProvider(sections: allSections, cellFactory: factory, collectionView: fakeCollectionView) let dataSource = dataSourceProvider.dataSource diff --git a/JSQDataSourcesKit/JSQDataSourcesKitTests/CollectionViewFakes.swift b/JSQDataSourcesKit/JSQDataSourcesKitTests/CollectionViewFakes.swift index 10c1fd4..5ce68e5 100644 --- a/JSQDataSourcesKit/JSQDataSourcesKitTests/CollectionViewFakes.swift +++ b/JSQDataSourcesKit/JSQDataSourcesKitTests/CollectionViewFakes.swift @@ -31,7 +31,7 @@ typealias SupplementaryViewFactory = CollectionSupplementaryViewFactory -typealias Provider = CollectionViewDataSourceProvider +typealias Provider = CollectionViewDataSourceProvider struct FakeCollectionModel: Equatable, CustomStringConvertible { From a1d6c955928787fe319ebfaf897cf1fc62bebc40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alek=20A=CC=8Astro=CC=88m?= Date: Tue, 20 Oct 2015 09:18:07 +0200 Subject: [PATCH 2/2] Made SectionInfo type source of truth & added doc comment for Item typealias --- .../JSQDataSourcesKit/CollectionViewDataSourceProvider.swift | 5 +++-- .../JSQDataSourcesKit/TableViewDataSourceProvider.swift | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/JSQDataSourcesKit/JSQDataSourcesKit/CollectionViewDataSourceProvider.swift b/JSQDataSourcesKit/JSQDataSourcesKit/CollectionViewDataSourceProvider.swift index 3677579..5dcdc8f 100644 --- a/JSQDataSourcesKit/JSQDataSourcesKit/CollectionViewDataSourceProvider.swift +++ b/JSQDataSourcesKit/JSQDataSourcesKit/CollectionViewDataSourceProvider.swift @@ -35,9 +35,10 @@ public final class CollectionViewDataSourceProvider < SectionInfo: CollectionViewSectionInfo, CellFactory: CollectionViewCellFactoryType, SupplementaryViewFactory: CollectionSupplementaryViewFactoryType - where SectionInfo.Item == CellFactory.Item, CellFactory.Item == SupplementaryViewFactory.Item>: CustomStringConvertible { + where CellFactory.Item == SectionInfo.Item, SupplementaryViewFactory.Item == SectionInfo.Item>: CustomStringConvertible { - public typealias Item = CellFactory.Item + /// The type of elements for the data source provider. + public typealias Item = SectionInfo.Item // MARK: Properties diff --git a/JSQDataSourcesKit/JSQDataSourcesKit/TableViewDataSourceProvider.swift b/JSQDataSourcesKit/JSQDataSourcesKit/TableViewDataSourceProvider.swift index 1f610c7..9bdec61 100644 --- a/JSQDataSourcesKit/JSQDataSourcesKit/TableViewDataSourceProvider.swift +++ b/JSQDataSourcesKit/JSQDataSourcesKit/TableViewDataSourceProvider.swift @@ -32,9 +32,10 @@ A `TableViewDataSourceProvider` is responsible for providing a data source objec public final class TableViewDataSourceProvider < SectionInfo: TableViewSectionInfo, CellFactory: TableViewCellFactoryType - where SectionInfo.Item == CellFactory.Item>: CustomStringConvertible { + where CellFactory.Item == SectionInfo.Item>: CustomStringConvertible { - public typealias Item = CellFactory.Item + /// The type of elements for the data source provider. + public typealias Item = SectionInfo.Item // MARK: Properties