Skip to content
This repository has been archived by the owner on Apr 15, 2020. It is now read-only.

Commit

Permalink
Remove SectionInfoProtocol, close #103
Browse files Browse the repository at this point in the history
Removes the superfluous `SectionInfoProtocol` to simplify `DataSource`.
There was really no need for this. If clients aren't happy with this, they
can still implement their own `DataSourceProtocol` instead.

- Removes `SectionInfoProtocol`
- Use `Section` in `DataSource` directly

Other changes:
- Move `DataSourceProtocol` to its own file
- Move `FetchedResultsController` to its own file
  • Loading branch information
jessesquires committed Jan 1, 2018
1 parent 1334b36 commit 7928f44
Show file tree
Hide file tree
Showing 10 changed files with 240 additions and 261 deletions.
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,20 @@ This release closes the [7.0.0 milestone](https://github.com/jessesquires/JSQDat
## Breaking

- Converted to Swift 4.0

- iOS 9.0 minimum now required

- tvOS 10.0 minimum now required

- **Significant renaming refactor:** renamed all "factory" references to "config", see #73 for details and reasoning
- `ReusableViewFactoryProtocol` --> `ReusableViewConfigProtocol`
- `ViewFactory` --> `ReusableViewConfig`
- `TitledSupplementaryViewFactory` --> `TitledSupplementaryViewConfig`
- Updated function param names `cellFactory:` --> `cellConfig:`
- Updated function param names `supplementaryFactory:` --> `supplementaryConfig:`

- Removed `SectionInfoProtocol` in favor of using a concrete `Section`. `DataSource` now references `Section` directly. (#103)

## New

- Added new `DataSourceProtocol` extension convenience method `func item(atIndexPath indexPath: IndexPath) -> Item?`.
Expand Down
2 changes: 1 addition & 1 deletion Example/Sources/CollectionViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ import JSQDataSourcesKit

final class CollectionViewController: UICollectionViewController, UICollectionViewDelegateFlowLayout {

typealias Source = DataSource< Section<CellViewModel> >
typealias Source = DataSource<CellViewModel>
typealias CollectionCellConfig = ReusableViewConfig<CellViewModel, CollectionViewCell>
typealias HeaderViewConfig = TitledSupplementaryViewConfig<CellViewModel>

Expand Down
2 changes: 1 addition & 1 deletion Example/Sources/MixedCollectionViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ enum MixedItem {

final class MixedCollectionViewController: UICollectionViewController, UICollectionViewDelegateFlowLayout {

typealias Source = DataSource< Section<MixedItem> >
typealias Source = DataSource<MixedItem>
typealias CollectionCellConfig = ComposedCellViewConfig
typealias HeaderViewConfig = TitledSupplementaryViewConfig<MixedItem>

Expand Down
4 changes: 2 additions & 2 deletions Example/Sources/TableViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ import JSQDataSourcesKit
final class TableViewController: UITableViewController {

typealias TableCellConfig = ReusableViewConfig<CellViewModel, UITableViewCell>
var dataSourceProvider: DataSourceProvider<DataSource<Section<CellViewModel>>, TableCellConfig, TableCellConfig>?
var dataSourceProvider: DataSourceProvider<DataSource<CellViewModel>, TableCellConfig, TableCellConfig>?

override func viewDidLoad() {
super.viewDidLoad()
Expand All @@ -43,7 +43,7 @@ final class TableViewController: UITableViewController {

// ** optional editing **
// if needed, enable the editing functionality on the tableView
let editingController: TableEditingController<DataSource<Section<CellViewModel>>> = TableEditingController(
let editingController: TableEditingController<DataSource<CellViewModel>> = TableEditingController(
canEditRow: { (item, tableView, indexPath) -> Bool in
return true
},
Expand Down
12 changes: 12 additions & 0 deletions JSQDataSourcesKit.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@
881A92E11CB881550080BC5C /* Section.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88DCAD331CB87CB400C018AF /* Section.swift */; };
881A92E31CB881550080BC5C /* TitledSupplementaryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88DCAD351CB87CB400C018AF /* TitledSupplementaryView.swift */; };
881A92E51CB881550080BC5C /* TitledSupplementaryViewConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88DCAD371CB87CB400C018AF /* TitledSupplementaryViewConfig.swift */; };
88253C521FFAF5C20022FCA8 /* DataSourceProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88253C511FFAF5C20022FCA8 /* DataSourceProtocol.swift */; };
88253C541FFAF7730022FCA8 /* FetchedResultsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88253C531FFAF7730022FCA8 /* FetchedResultsController.swift */; };
88253C551FFAF7730022FCA8 /* FetchedResultsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88253C531FFAF7730022FCA8 /* FetchedResultsController.swift */; };
88253C561FFAF77B0022FCA8 /* DataSourceProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88253C511FFAF5C20022FCA8 /* DataSourceProtocol.swift */; };
882CA4541D1D7D48006112B9 /* BridgedFetchedResultsDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 882CA4531D1D7D48006112B9 /* BridgedFetchedResultsDelegate.swift */; };
882CA4551D1D7DE1006112B9 /* BridgedFetchedResultsDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 882CA4531D1D7D48006112B9 /* BridgedFetchedResultsDelegate.swift */; };
882CA4561D1D7DE1006112B9 /* DataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 888799481D0E2D1700BBCCBC /* DataSource.swift */; };
Expand Down Expand Up @@ -88,6 +92,8 @@
/* Begin PBXFileReference section */
1DD7AC5C1D86C4BC00B676A6 /* TableEditingController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TableEditingController.swift; sourceTree = "<group>"; };
881A92CC1CB881270080BC5C /* JSQDataSourcesKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = JSQDataSourcesKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
88253C511FFAF5C20022FCA8 /* DataSourceProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataSourceProtocol.swift; sourceTree = "<group>"; };
88253C531FFAF7730022FCA8 /* FetchedResultsController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchedResultsController.swift; sourceTree = "<group>"; };
882CA4531D1D7D48006112B9 /* BridgedFetchedResultsDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BridgedFetchedResultsDelegate.swift; sourceTree = "<group>"; };
882CA4571D1D82E1006112B9 /* TestCase.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestCase.swift; sourceTree = "<group>"; };
882CA4591D1D957A006112B9 /* BridgedFetchedResultsDelegateTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BridgedFetchedResultsDelegateTests.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -177,7 +183,9 @@
88C99A761CBB302600A9804A /* BridgedDataSource.swift */,
882CA4531D1D7D48006112B9 /* BridgedFetchedResultsDelegate.swift */,
888799481D0E2D1700BBCCBC /* DataSource.swift */,
88253C511FFAF5C20022FCA8 /* DataSourceProtocol.swift */,
88B80CD71CBBF62A00EDF9D5 /* DataSourceProvider.swift */,
88253C531FFAF7730022FCA8 /* FetchedResultsController.swift */,
88DCAD2C1CB87CB400C018AF /* FetchedResultsDelegate.swift */,
88DCAD2D1CB87CB400C018AF /* Info.plist */,
88DCAD2F1CB87CB400C018AF /* JSQDataSourcesKit.h */,
Expand Down Expand Up @@ -385,11 +393,13 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
88253C561FFAF77B0022FCA8 /* DataSourceProtocol.swift in Sources */,
881A92E11CB881550080BC5C /* Section.swift in Sources */,
881A92E31CB881550080BC5C /* TitledSupplementaryView.swift in Sources */,
88C99A781CBB303000A9804A /* ReusableViewConfig.swift in Sources */,
88C99A791CBB303000A9804A /* BridgedDataSource.swift in Sources */,
881A92E51CB881550080BC5C /* TitledSupplementaryViewConfig.swift in Sources */,
88253C551FFAF7730022FCA8 /* FetchedResultsController.swift in Sources */,
88B80CD91CBBF62A00EDF9D5 /* DataSourceProvider.swift in Sources */,
882CA4551D1D7DE1006112B9 /* BridgedFetchedResultsDelegate.swift in Sources */,
882CA4561D1D7DE1006112B9 /* DataSource.swift in Sources */,
Expand All @@ -402,6 +412,7 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
88253C521FFAF5C20022FCA8 /* DataSourceProtocol.swift in Sources */,
882CA4541D1D7D48006112B9 /* BridgedFetchedResultsDelegate.swift in Sources */,
88DCAD6D1CB87CC000C018AF /* FetchedResultsDelegate.swift in Sources */,
88CFFD9A1CB977A100C4E9DD /* ReusableViewConfig.swift in Sources */,
Expand All @@ -411,6 +422,7 @@
88B80CD81CBBF62A00EDF9D5 /* DataSourceProvider.swift in Sources */,
1DD7AC5D1D86C4BC00B676A6 /* TableEditingController.swift in Sources */,
888799491D0E2D1700BBCCBC /* DataSource.swift in Sources */,
88253C541FFAF7730022FCA8 /* FetchedResultsController.swift in Sources */,
88DCAD781CB87CC000C018AF /* TitledSupplementaryViewConfig.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
Expand Down
Loading

0 comments on commit 7928f44

Please sign in to comment.