From 8176ba63a7e446d4220cc3fb6226167545852fe6 Mon Sep 17 00:00:00 2001 From: Pavan Kataria Date: Mon, 13 Mar 2017 08:48:40 +0000 Subject: [PATCH 1/8] Adds data value type enum --- Example/Pods/Pods.xcodeproj/project.pbxproj | 56 ++++++++----------- .../Classes/DataTableValueType.swift | 19 +++++++ .../Protocols/DataCellRowRepresentable.swift | 2 +- 3 files changed, 43 insertions(+), 34 deletions(-) create mode 100644 SwiftDataTables/Classes/DataTableValueType.swift diff --git a/Example/Pods/Pods.xcodeproj/project.pbxproj b/Example/Pods/Pods.xcodeproj/project.pbxproj index b50944b..c1b139b 100644 --- a/Example/Pods/Pods.xcodeproj/project.pbxproj +++ b/Example/Pods/Pods.xcodeproj/project.pbxproj @@ -9,6 +9,7 @@ /* Begin PBXBuildFile section */ 047A68C646E00EB6D7D4D7343B801D09 /* AdapterProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4846C1280F7FCC383265584085BAB875 /* AdapterProtocols.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; 04E67A60A59D89EDD0FA3954807BACA2 /* Pods-SwiftDataTables_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 384C6C6A4148C520C98D0600D7393727 /* Pods-SwiftDataTables_Example-dummy.m */; }; + 051344691E75CA52000350FF /* DataTableValueType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 051344681E75CA51000350FF /* DataTableValueType.swift */; }; 051A816D6DD0CAE13496DDCFE0829167 /* UIImage+Diff.h in Headers */ = {isa = PBXBuildFile; fileRef = 5F8012AD8A72934F350BDA8C90157813 /* UIImage+Diff.h */; settings = {ATTRIBUTES = (Private, ); }; }; 055835A025E38405EA9EC5218E6FE1E3 /* ExampleMetadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7510C71C3B6495347C01469BB81376A6 /* ExampleMetadata.swift */; }; 0640AF66CA2850971146A85E311D6E21 /* MenuLengthHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6D3C6D32637623815FB4AF6B9BD12B08 /* MenuLengthHeader.swift */; }; @@ -241,9 +242,10 @@ /* Begin PBXFileReference section */ 006ED45CA89BF1184872D135803B008C /* Contain.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Contain.swift; path = Sources/Nimble/Matchers/Contain.swift; sourceTree = ""; }; 026CC3068F40BE2D05647A2410B36B3B /* Pods-SwiftDataTables_Tests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-SwiftDataTables_Tests-resources.sh"; sourceTree = ""; }; - 03638C4DE8AF4526726938F60FC5CFD1 /* Nimble_Snapshots.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Nimble_Snapshots.framework; path = "Nimble-Snapshots.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + 03638C4DE8AF4526726938F60FC5CFD1 /* Nimble_Snapshots.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Nimble_Snapshots.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 03F296C4A593A03240EAC157F47687C9 /* CwlDarwinDefinitions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CwlDarwinDefinitions.swift; path = Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlDarwinDefinitions.swift; sourceTree = ""; }; 0401507CF8C223BBA0935EF757D1293D /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.0.sdk/System/Library/Frameworks/QuartzCore.framework; sourceTree = DEVELOPER_DIR; }; + 051344681E75CA51000350FF /* DataTableValueType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DataTableValueType.swift; sourceTree = ""; }; 0559791336DC30B0E002EC449125333F /* MenuLengthHeader.xib */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.xib; path = MenuLengthHeader.xib; sourceTree = ""; }; 0596A5858DC69D0EF61B17F97FC18F4B /* SwiftDataTable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SwiftDataTable.swift; sourceTree = ""; }; 06C301E6CBB530F76B07ADC535E93109 /* Nimble.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Nimble.xcconfig; sourceTree = ""; }; @@ -255,7 +257,7 @@ 0FDE86EEC1288DF7AB5612C6C34CD702 /* DataHeaderFooterViewModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DataHeaderFooterViewModel.swift; sourceTree = ""; }; 10A7DE5ED83DC9EC63F445D66A280904 /* SourceLocation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SourceLocation.swift; path = Sources/Nimble/Utils/SourceLocation.swift; sourceTree = ""; }; 14ED7EE1C5006B7C2FC9931DAC233884 /* BeEmpty.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeEmpty.swift; path = Sources/Nimble/Matchers/BeEmpty.swift; sourceTree = ""; }; - 15D74D4F308C07A9FF50DFDA2A0736D9 /* Pods-SwiftDataTables_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "Pods-SwiftDataTables_Example.modulemap"; sourceTree = ""; }; + 15D74D4F308C07A9FF50DFDA2A0736D9 /* Pods-SwiftDataTables_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Pods-SwiftDataTables_Example.modulemap"; sourceTree = ""; }; 18346C82D017A21FF2D24B18D2A19F96 /* DSL.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DSL.swift; path = Sources/Quick/DSL/DSL.swift; sourceTree = ""; }; 18B3638F5AD13E6EBCB7FBA837D1D5AD /* Pods-SwiftDataTables_Tests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-SwiftDataTables_Tests-acknowledgements.markdown"; sourceTree = ""; }; 1927B151D5046BC3FA820B58EA5DFC21 /* NMBStringify.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NMBStringify.h; path = Sources/NimbleObjectiveC/NMBStringify.h; sourceTree = ""; }; @@ -263,12 +265,12 @@ 1D5AB00D217C687CB83AE825D8B15F32 /* CwlCatchBadInstruction.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CwlCatchBadInstruction.swift; path = Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstruction.swift; sourceTree = ""; }; 1DDF2057E3F22DCB9C7A6D4A6FC28DF5 /* DataCellRowRepresentable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DataCellRowRepresentable.swift; sourceTree = ""; }; 1E91D3D71D09F9D765DA1760C4501113 /* NMBExpectation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NMBExpectation.swift; path = Sources/Nimble/Adapters/NMBExpectation.swift; sourceTree = ""; }; - 1F38014839DEEA1DA698E6AE364A8D18 /* column-sort-ascending.png */ = {isa = PBXFileReference; includeInIndex = 1; path = "column-sort-ascending.png"; sourceTree = ""; }; + 1F38014839DEEA1DA698E6AE364A8D18 /* column-sort-ascending.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "column-sort-ascending.png"; sourceTree = ""; }; 1F48368B8248E6DE7D078A59E62077BD /* MatcherProtocols.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MatcherProtocols.swift; path = Sources/Nimble/Matchers/MatcherProtocols.swift; sourceTree = ""; }; 2141D295178DD08FD8962A61C87239FB /* MenuLengthHeaderViewModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MenuLengthHeaderViewModel.swift; sourceTree = ""; }; 22BCD65F3423C0A520456A9B100A882D /* FBSnapshotTestCasePlatform.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSnapshotTestCasePlatform.h; path = FBSnapshotTestCase/FBSnapshotTestCasePlatform.h; sourceTree = ""; }; 23871FC25FD3F6C0A3F65DA3F345605D /* CwlCatchBadInstruction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CwlCatchBadInstruction.m; path = Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstruction.m; sourceTree = ""; }; - 240DE55DD00EE42216C8377FFAFD2AD9 /* Pods_SwiftDataTables_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_SwiftDataTables_Tests.framework; path = "Pods-SwiftDataTables_Tests.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + 240DE55DD00EE42216C8377FFAFD2AD9 /* Pods_SwiftDataTables_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_SwiftDataTables_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 25CFB5E67138CBEFC7694CD22302F5D8 /* DataTableSortable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DataTableSortable.swift; sourceTree = ""; }; 29529D22A36CCD1CF3C8A3E37CF8AA82 /* SwiftDataTables-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SwiftDataTables-dummy.m"; sourceTree = ""; }; 2C503C68EA53D4FC640377289AAFC5E1 /* DSL.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DSL.swift; path = Sources/Nimble/DSL.swift; sourceTree = ""; }; @@ -282,7 +284,7 @@ 33462704076851C1B758B976F53B9A0C /* Pods-SwiftDataTables_Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-SwiftDataTables_Example-frameworks.sh"; sourceTree = ""; }; 33F2E1C895B9FEB6EB2A77B733A54E01 /* HooksPhase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HooksPhase.swift; path = Sources/Quick/Hooks/HooksPhase.swift; sourceTree = ""; }; 384C6C6A4148C520C98D0600D7393727 /* Pods-SwiftDataTables_Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-SwiftDataTables_Example-dummy.m"; sourceTree = ""; }; - 39300992EDA6A15FDBA1BDBEBD542709 /* Nimble-Snapshots.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "Nimble-Snapshots.modulemap"; sourceTree = ""; }; + 39300992EDA6A15FDBA1BDBEBD542709 /* Nimble-Snapshots.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Nimble-Snapshots.modulemap"; sourceTree = ""; }; 396D3B52F501B58F711A7301DAD62C34 /* SwiftDataTables-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SwiftDataTables-prefix.pch"; sourceTree = ""; }; 3CC4698961C3BFC187A9932973FDBA01 /* Pods-SwiftDataTables_Tests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-SwiftDataTables_Tests-umbrella.h"; sourceTree = ""; }; 3D50F32074CE8DCF1783E1B0AD0D182A /* Match.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Match.swift; path = Sources/Nimble/Matchers/Match.swift; sourceTree = ""; }; @@ -293,20 +295,20 @@ 4707081A3F287021C3E570AE00D4C050 /* BeLessThanOrEqual.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeLessThanOrEqual.swift; path = Sources/Nimble/Matchers/BeLessThanOrEqual.swift; sourceTree = ""; }; 4846C1280F7FCC383265584085BAB875 /* AdapterProtocols.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AdapterProtocols.swift; path = Sources/Nimble/Adapters/AdapterProtocols.swift; sourceTree = ""; }; 4875524ECD78E9ACEF576D5279C9DACE /* Nimble-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Nimble-umbrella.h"; sourceTree = ""; }; - 493EBDDF596CFF92A51589B4299D6048 /* mach_excServer.c */ = {isa = PBXFileReference; includeInIndex = 1; name = mach_excServer.c; path = Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/mach_excServer.c; sourceTree = ""; }; + 493EBDDF596CFF92A51589B4299D6048 /* mach_excServer.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = mach_excServer.c; path = Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/mach_excServer.c; sourceTree = ""; }; 495C87861F8169FE19E98B6149F6C455 /* Nimble-Snapshots-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Nimble-Snapshots-prefix.pch"; sourceTree = ""; }; 4A73BFE6363E58209795B79CE6BC0335 /* ThrowAssertion.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ThrowAssertion.swift; path = Sources/Nimble/Matchers/ThrowAssertion.swift; sourceTree = ""; }; - 4A7A00092F7F68FE9EB3EDD8772E3635 /* SwiftDataTables.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = SwiftDataTables.modulemap; sourceTree = ""; }; + 4A7A00092F7F68FE9EB3EDD8772E3635 /* SwiftDataTables.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = SwiftDataTables.modulemap; sourceTree = ""; }; 4AF636A6C261B4B22000184FC87CE66A /* Pods-SwiftDataTables_Example-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-SwiftDataTables_Example-resources.sh"; sourceTree = ""; }; 4C6633CEA203AB2C103DE07E821BF70B /* FBSnapshotTestController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSnapshotTestController.h; path = FBSnapshotTestCase/FBSnapshotTestController.h; sourceTree = ""; }; - 4DFA97D9BCE027AACC1E692E9F532D16 /* column-sort-unspecified.png */ = {isa = PBXFileReference; includeInIndex = 1; path = "column-sort-unspecified.png"; sourceTree = ""; }; + 4DFA97D9BCE027AACC1E692E9F532D16 /* column-sort-unspecified.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "column-sort-unspecified.png"; sourceTree = ""; }; 4F077BF65ADAB96D26191001735CF8A2 /* ExampleHooks.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExampleHooks.swift; path = Sources/Quick/Hooks/ExampleHooks.swift; sourceTree = ""; }; 4F58095B435083E123FE763D0A51D495 /* FBSnapshotTestCase-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "FBSnapshotTestCase-dummy.m"; sourceTree = ""; }; 515787726F972CD10EF3AB251F3D2362 /* Expectation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Expectation.swift; path = Sources/Nimble/Expectation.swift; sourceTree = ""; }; 51CF77072ED023933B112C24142CD886 /* CollectionViewSupplementaryElementRepresentable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CollectionViewSupplementaryElementRepresentable.swift; sourceTree = ""; }; 5277C1C4F649828D9CEE62AF4D307B53 /* Pods-SwiftDataTables_Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-SwiftDataTables_Example-umbrella.h"; sourceTree = ""; }; 55143EF0DEF159DDD063FA42B7D12153 /* DSL+Wait.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "DSL+Wait.swift"; path = "Sources/Nimble/DSL+Wait.swift"; sourceTree = ""; }; - 5543FEC93A3F0E92AEB36F0150365854 /* Pods_SwiftDataTables_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_SwiftDataTables_Example.framework; path = "Pods-SwiftDataTables_Example.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + 5543FEC93A3F0E92AEB36F0150365854 /* Pods_SwiftDataTables_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_SwiftDataTables_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 56D1793E15813EC733B46E6884FEEA74 /* FBSnapshotTestCase.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSnapshotTestCase.m; path = FBSnapshotTestCase/FBSnapshotTestCase.m; sourceTree = ""; }; 57E169877FF59447D4182C1989BF0B59 /* NimbleEnvironment.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NimbleEnvironment.swift; path = Sources/Nimble/Adapters/NimbleEnvironment.swift; sourceTree = ""; }; 580D06054A96A8B0038E6CFFD5A5743D /* UIImage+Snapshot.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+Snapshot.h"; path = "FBSnapshotTestCase/Categories/UIImage+Snapshot.h"; sourceTree = ""; }; @@ -361,36 +363,36 @@ 8EB8C886623335C2232D9BF3501403EB /* DataCellViewModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DataCellViewModel.swift; sourceTree = ""; }; 91B35075C2C09AD9E7FB16BE3C249DB9 /* XCTestSuite+QuickTestSuiteBuilder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "XCTestSuite+QuickTestSuiteBuilder.m"; path = "Sources/QuickObjectiveC/XCTestSuite+QuickTestSuiteBuilder.m"; sourceTree = ""; }; 93362A5E44184053D77B56304DD0F370 /* ThrowError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ThrowError.swift; path = Sources/Nimble/Matchers/ThrowError.swift; sourceTree = ""; }; - 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 94F61772FE7F69CAF6D3935270969868 /* World+DSL.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "World+DSL.h"; path = "Sources/QuickObjectiveC/DSL/World+DSL.h"; sourceTree = ""; }; 95BA53326633CC8E49D8BD5CE001D4F4 /* FBSnapshotTestCase-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FBSnapshotTestCase-prefix.pch"; sourceTree = ""; }; - 9625351C0850CAD9FA9F52E6EEE944D6 /* Nimble.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = Nimble.modulemap; sourceTree = ""; }; + 9625351C0850CAD9FA9F52E6EEE944D6 /* Nimble.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = Nimble.modulemap; sourceTree = ""; }; 96BA61587DF2343D7CA2E265F24EC09C /* FBSnapshotTestCase.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FBSnapshotTestCase.xcconfig; sourceTree = ""; }; 9823197EA5904A9150FB0AD8B09841E6 /* FBSnapshotTestCase.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = FBSnapshotTestCase.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 9963EE7CC8E08B315A80570158907487 /* World.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = World.h; path = Sources/QuickObjectiveC/World.h; sourceTree = ""; }; 9ED7B23AEE06C44713BF4D8166463FD4 /* QCKDSL.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCKDSL.m; path = Sources/QuickObjectiveC/DSL/QCKDSL.m; sourceTree = ""; }; 9EFC3CB0C7C9BDE6158189DAA3FFBED5 /* Nimble-Snapshots-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Nimble-Snapshots-dummy.m"; sourceTree = ""; }; 9F2F853A85B8879EEB1CE2DC95B97EBC /* CwlCatchException.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CwlCatchException.swift; path = Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException/CwlCatchException.swift; sourceTree = ""; }; - 9FABAC60001A47C873F328A0D56472E2 /* FBSnapshotTestCase.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = FBSnapshotTestCase.modulemap; sourceTree = ""; }; + 9FABAC60001A47C873F328A0D56472E2 /* FBSnapshotTestCase.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = FBSnapshotTestCase.modulemap; sourceTree = ""; }; A0CCCF841830A407AA9D8BB9E8F07F5C /* PostNotification.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PostNotification.swift; path = Sources/Nimble/Matchers/PostNotification.swift; sourceTree = ""; }; A1A5BD59DC61028CF8BFE9BA39665374 /* SwiftDataTable+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "SwiftDataTable+Extensions.swift"; sourceTree = ""; }; A20791AAF2E0D828876018267DA3B5F0 /* DataStore.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DataStore.swift; sourceTree = ""; }; A213DB43C26C0FF24A69CFE61660387B /* Nimble-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Nimble-prefix.pch"; sourceTree = ""; }; A4A7D10DFC80274683FA6D5D7CB30045 /* Pods-SwiftDataTables_Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-SwiftDataTables_Tests-dummy.m"; sourceTree = ""; }; - A7BE48330356076F18E9FF51B3CD9DC5 /* column-sort-descending.png */ = {isa = PBXFileReference; includeInIndex = 1; path = "column-sort-descending.png"; sourceTree = ""; }; + A7BE48330356076F18E9FF51B3CD9DC5 /* column-sort-descending.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "column-sort-descending.png"; sourceTree = ""; }; A8B3330E9A86A20013F3ABF42BC342A2 /* QuickSelectedTestSuiteBuilder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = QuickSelectedTestSuiteBuilder.swift; path = Sources/Quick/QuickSelectedTestSuiteBuilder.swift; sourceTree = ""; }; A8B368409FE89D4D75FB9369398B388A /* Nimble-Snapshots.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Nimble-Snapshots.xcconfig"; sourceTree = ""; }; A9497FD77AFF9D1079B44445D1536828 /* Pods-SwiftDataTables_Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-SwiftDataTables_Example-acknowledgements.markdown"; sourceTree = ""; }; ABA451463938AAC29772A9BA4A644712 /* UIImage+Compare.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+Compare.m"; path = "FBSnapshotTestCase/Categories/UIImage+Compare.m"; sourceTree = ""; }; AD81E3B1B8900A13D8DCEFC7FBC89C51 /* BeIdenticalTo.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeIdenticalTo.swift; path = Sources/Nimble/Matchers/BeIdenticalTo.swift; sourceTree = ""; }; ADC05C3D0B613A47D0E19F012D9C1F87 /* PaginationHeader.xib */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.xib; path = PaginationHeader.xib; sourceTree = ""; }; - AE3FA8C289BB2B0213DFCD9351E770DC /* Pods-SwiftDataTables_Tests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "Pods-SwiftDataTables_Tests.modulemap"; sourceTree = ""; }; + AE3FA8C289BB2B0213DFCD9351E770DC /* Pods-SwiftDataTables_Tests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Pods-SwiftDataTables_Tests.modulemap"; sourceTree = ""; }; AE95FD22040B2F419CA820D80377A6FA /* Callsite.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Callsite.swift; path = Sources/Quick/Callsite.swift; sourceTree = ""; }; AF56BECC3FEF842A4B13280D5BC5FE11 /* Closures.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Closures.swift; path = Sources/Quick/Hooks/Closures.swift; sourceTree = ""; }; B0BDDFCA6435FEF025A8AA771C018452 /* UIApplication+StrictKeyWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIApplication+StrictKeyWindow.h"; path = "FBSnapshotTestCase/Categories/UIApplication+StrictKeyWindow.h"; sourceTree = ""; }; B0E67650E7214DCE853B31771FB5FEF5 /* AssertionRecorder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AssertionRecorder.swift; path = Sources/Nimble/Adapters/AssertionRecorder.swift; sourceTree = ""; }; B1906C2EEC74D3F756324E96F610273D /* URL+FileName.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "URL+FileName.swift"; path = "Sources/Quick/URL+FileName.swift"; sourceTree = ""; }; - B35C197F77731EF4FACC5E8C2355E5D1 /* SwiftDataTables.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = SwiftDataTables.framework; path = SwiftDataTables.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + B35C197F77731EF4FACC5E8C2355E5D1 /* SwiftDataTables.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SwiftDataTables.framework; sourceTree = BUILT_PRODUCTS_DIR; }; B40E59D5AB481F936FB0B7AEA50B1C83 /* DataCellLayoutAttributes.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DataCellLayoutAttributes.swift; sourceTree = ""; }; B419C0F352F8E79D519735CEEBC3F5E2 /* HaveCount.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HaveCount.swift; path = Sources/Nimble/Matchers/HaveCount.swift; sourceTree = ""; }; B4F8491C368290A8B20C9EF13A6C6EE6 /* BeGreaterThan.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeGreaterThan.swift; path = Sources/Nimble/Matchers/BeGreaterThan.swift; sourceTree = ""; }; @@ -415,7 +417,7 @@ D5C1E27C8CE0AFBE69F80EEC5A72348C /* SatisfyAnyOf.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SatisfyAnyOf.swift; path = Sources/Nimble/Matchers/SatisfyAnyOf.swift; sourceTree = ""; }; DA5B451D8364D107582FF70E5FA71C65 /* Quick-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Quick-prefix.pch"; sourceTree = ""; }; DB26733A19DEE294A032B66575C90AEA /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - DBFB9A9C359ECEFE88F0539EFCF829D9 /* FBSnapshotTestCase.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = FBSnapshotTestCase.framework; path = FBSnapshotTestCase.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + DBFB9A9C359ECEFE88F0539EFCF829D9 /* FBSnapshotTestCase.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = FBSnapshotTestCase.framework; sourceTree = BUILT_PRODUCTS_DIR; }; DC57DA19B7547061C4391AEE40D7AB91 /* QuickConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QuickConfiguration.h; path = Sources/QuickObjectiveC/Configuration/QuickConfiguration.h; sourceTree = ""; }; DC664780D8DFF8970DA8994D41CCF9B2 /* NMBExceptionCapture.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NMBExceptionCapture.h; path = Sources/NimbleObjectiveC/NMBExceptionCapture.h; sourceTree = ""; }; DD489E28B0C02C490FE97D19B2868DB7 /* QuickTestSuite.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = QuickTestSuite.swift; path = Sources/Quick/QuickTestSuite.swift; sourceTree = ""; }; @@ -433,12 +435,12 @@ F1E6C461F1C5604D58CFD9E8581D3A94 /* Pods-SwiftDataTables_Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-SwiftDataTables_Example-acknowledgements.plist"; sourceTree = ""; }; F31CF5F8D4CD212CEEBCE9658B34CAA9 /* World+DSL.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "World+DSL.swift"; path = "Sources/Quick/DSL/World+DSL.swift"; sourceTree = ""; }; F3696EC637DC2B4E0D9042A916287FDF /* DSL.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DSL.h; path = Sources/NimbleObjectiveC/DSL.h; sourceTree = ""; }; - F3AA969B93F59D7F3C6F072F2A131187 /* Quick.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Quick.framework; path = Quick.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + F3AA969B93F59D7F3C6F072F2A131187 /* Quick.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Quick.framework; sourceTree = BUILT_PRODUCTS_DIR; }; F4C3776AEE672BA0788E6A1E5CEE93B2 /* PrettySyntax.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PrettySyntax.swift; sourceTree = ""; }; F59D049190E109365BF9BA6BF1409B7F /* BeLessThan.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeLessThan.swift; path = Sources/Nimble/Matchers/BeLessThan.swift; sourceTree = ""; }; F62481E1600B58F612F67D19918378A8 /* Quick.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Quick.h; path = Sources/QuickObjectiveC/Quick.h; sourceTree = ""; }; - F744B5BE4FF7C4AC93070FD703DEEEF2 /* Nimble.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Nimble.framework; path = Nimble.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - F86CA1DF8958576E21577E5F137907B2 /* Quick.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = Quick.modulemap; sourceTree = ""; }; + F744B5BE4FF7C4AC93070FD703DEEEF2 /* Nimble.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Nimble.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + F86CA1DF8958576E21577E5F137907B2 /* Quick.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = Quick.modulemap; sourceTree = ""; }; FA68CDEB565662C3E1B336DB7D1493CA /* UIApplication+StrictKeyWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIApplication+StrictKeyWindow.m"; path = "FBSnapshotTestCase/Categories/UIApplication+StrictKeyWindow.m"; sourceTree = ""; }; FB581661953B50A6C707A77A53A29B1F /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.0.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; FC3F6290B83976335DAD42ABA1099D45 /* Nimble-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Nimble-dummy.m"; sourceTree = ""; }; @@ -545,8 +547,8 @@ 6FDF97CDED25ACF6BCA86B6217777CE9 /* MenuLengthHeader */, C124E78D3AE284780ADA4CACE7687EFE /* PaginationHeader */, E438F0155AB139BEDE8F5648372A4383 /* Protocols */, + 051344681E75CA51000350FF /* DataTableValueType.swift */, ); - name = Classes; path = Classes; sourceTree = ""; }; @@ -586,7 +588,6 @@ 7B4B530F20BAA9612EDFB93379EC160E /* DataHeaderFooter.xib */, 0FDE86EEC1288DF7AB5612C6C34CD702 /* DataHeaderFooterViewModel.swift */, ); - name = HeaderFooter; path = HeaderFooter; sourceTree = ""; }; @@ -608,7 +609,6 @@ A7BE48330356076F18E9FF51B3CD9DC5 /* column-sort-descending.png */, 4DFA97D9BCE027AACC1E692E9F532D16 /* column-sort-unspecified.png */, ); - name = SwiftDataTables.bundle; path = SwiftDataTables.bundle; sourceTree = ""; }; @@ -632,7 +632,6 @@ 55AB7748C705A156CFE476497F6BE5CB /* Core */, C6262FCF46052C8C9480585E842296FA /* Support Files */, ); - name = "Nimble-Snapshots"; path = "Nimble-Snapshots"; sourceTree = ""; }; @@ -653,7 +652,6 @@ 3A64E2BFA8BE00C9CAE63BE4DA4167F7 /* Support Files */, 8EBEDD7CDD38628083C1BAAC15789DE2 /* SwiftSupport */, ); - name = FBSnapshotTestCase; path = FBSnapshotTestCase; sourceTree = ""; }; @@ -672,7 +670,6 @@ 0559791336DC30B0E002EC449125333F /* MenuLengthHeader.xib */, 2141D295178DD08FD8962A61C87239FB /* MenuLengthHeaderViewModel.swift */, ); - name = MenuLengthHeader; path = MenuLengthHeader; sourceTree = ""; }; @@ -743,7 +740,6 @@ 15D48566D49491380BE85916D7FE8FA6 /* Classes */, 3A48900A46C4401382A6CA34DA075232 /* SwiftDataTables.bundle */, ); - name = SwiftDataTables; path = SwiftDataTables; sourceTree = ""; }; @@ -755,7 +751,6 @@ B40E59D5AB481F936FB0B7AEA50B1C83 /* DataCellLayoutAttributes.swift */, 8EB8C886623335C2232D9BF3501403EB /* DataCellViewModel.swift */, ); - name = DataCell; path = DataCell; sourceTree = ""; }; @@ -789,7 +784,6 @@ children = ( A1A5BD59DC61028CF8BFE9BA39665374 /* SwiftDataTable+Extensions.swift */, ); - name = Extensions; path = Extensions; sourceTree = ""; }; @@ -839,7 +833,6 @@ 91B35075C2C09AD9E7FB16BE3C249DB9 /* XCTestSuite+QuickTestSuiteBuilder.m */, D7F677C54186ADF4246082E159F709EF /* Support Files */, ); - name = Quick; path = Quick; sourceTree = ""; }; @@ -848,7 +841,6 @@ children = ( 7CD548E01AB1C82543F72FC3ACDE740B /* SwiftDataTables.bundle */, ); - name = SwiftDataTables; path = SwiftDataTables; sourceTree = ""; }; @@ -859,7 +851,6 @@ ADC05C3D0B613A47D0E19F012D9C1F87 /* PaginationHeader.xib */, E3595D6906633B4290F93E1CCFD4AE48 /* PaginationHeaderViewModel.swift */, ); - name = PaginationHeader; path = PaginationHeader; sourceTree = ""; }; @@ -946,7 +937,6 @@ 6A75CD2BBED6DBFEC2C162C0CB9CA5FC /* XCTestObservationCenter+Register.m */, 10435EF2FCF6FE3F3B8BBA9465426A73 /* Support Files */, ); - name = Nimble; path = Nimble; sourceTree = ""; }; @@ -972,7 +962,6 @@ 1DDF2057E3F22DCB9C7A6D4A6FC28DF5 /* DataCellRowRepresentable.swift */, 4060623E8D8F3EE8E50EE7AA6B799D56 /* VirtualPositionTrackable.swift */, ); - name = Protocols; path = Protocols; sourceTree = ""; }; @@ -1429,6 +1418,7 @@ A4F69F3477A935285620AC3031C5C848 /* FBSnapshotTestController.m in Sources */, 1AB7934C16CE49DE196FFC7BE7278287 /* SwiftSupport.swift in Sources */, 094973D2D2F1E3B2E772F93C8147C6B9 /* UIApplication+StrictKeyWindow.m in Sources */, + 051344691E75CA52000350FF /* DataTableValueType.swift in Sources */, 69DA8B003216466C60F029CBD79897F1 /* UIImage+Compare.m in Sources */, 35DD05FD595A6FE7F5A0692D12E319DC /* UIImage+Diff.m in Sources */, 756564ABAF2892FE7140C92A1CDDCF65 /* UIImage+Snapshot.m in Sources */, diff --git a/SwiftDataTables/Classes/DataTableValueType.swift b/SwiftDataTables/Classes/DataTableValueType.swift new file mode 100644 index 0000000..78ce688 --- /dev/null +++ b/SwiftDataTables/Classes/DataTableValueType.swift @@ -0,0 +1,19 @@ +// +// DataTableDataType.swift +// Pods +// +// Created by Pavan Kataria on 12/03/2017. +// +// + +import Foundation + +//MARK: - TODO: 11 march - TODO: See if you can make the multidimensional array a generic object so that it can accept any value type. +//This will probably make sorting easier and could potenntially allow us to get rid of this class + +public enum DataTableValueType { + case string(String) + case int(Int) + case float(Float) + case double(Double) +} diff --git a/SwiftDataTables/Classes/Protocols/DataCellRowRepresentable.swift b/SwiftDataTables/Classes/Protocols/DataCellRowRepresentable.swift index 7dc4d77..a0694a5 100644 --- a/SwiftDataTables/Classes/Protocols/DataCellRowRepresentable.swift +++ b/SwiftDataTables/Classes/Protocols/DataCellRowRepresentable.swift @@ -9,5 +9,5 @@ import Foundation public protocol DataCellRowRepresentable { - func dataCellRowRepresentable() -> [String] + func dataCellRowRepresentable() -> [DataTableValueType] } From b454c08201da03b4446a1b236724af839fd0c4da Mon Sep 17 00:00:00 2001 From: Pavan Kataria Date: Mon, 13 Mar 2017 09:54:44 +0000 Subject: [PATCH 2/8] Refactors swift data table includiung a typealias for the content array, adds string representation method for swift data table value type enum --- Example/Podfile.lock | 4 +- .../SwiftDataTables.podspec.json | 4 +- Example/Pods/Manifest.lock | 4 +- Example/Pods/Pods.xcodeproj/project.pbxproj | 414 +++++++++--------- .../SwiftDataTables/Info.plist | 2 +- .../Classes/DataStructureModel.swift | 12 +- .../Classes/DataTableValueType.swift | 15 + SwiftDataTables/Classes/SwiftDataTable.swift | 29 +- 8 files changed, 263 insertions(+), 221 deletions(-) diff --git a/Example/Podfile.lock b/Example/Podfile.lock index 0db48a7..2877991 100644 --- a/Example/Podfile.lock +++ b/Example/Podfile.lock @@ -12,7 +12,7 @@ PODS: - Nimble - Quick - Quick (1.0.0) - - SwiftDataTables (0.2.6) + - SwiftDataTables (0.2.7) DEPENDENCIES: - FBSnapshotTestCase @@ -30,7 +30,7 @@ SPEC CHECKSUMS: Nimble: 415e3aa3267e7bc2c96b05fa814ddea7bb686a29 Nimble-Snapshots: e743439f26c2fa99d8f7e0d7c01c99bcb40aa6f2 Quick: 8024e4a47e6cc03a9d5245ef0948264fc6d27cff - SwiftDataTables: 83d1044c3a7f147dfd3a2e5e1370bc199f4f6441 + SwiftDataTables: 16d78aa44825faf00c65ec9678ec51f82d1620a3 PODFILE CHECKSUM: 9948d9c085c4f798f028aaa1e7597151e452280e diff --git a/Example/Pods/Local Podspecs/SwiftDataTables.podspec.json b/Example/Pods/Local Podspecs/SwiftDataTables.podspec.json index 01cc197..ad7958c 100644 --- a/Example/Pods/Local Podspecs/SwiftDataTables.podspec.json +++ b/Example/Pods/Local Podspecs/SwiftDataTables.podspec.json @@ -1,6 +1,6 @@ { "name": "SwiftDataTables", - "version": "0.2.6", + "version": "0.2.7", "summary": "A Swift Data Table package that allows ordering, searching, and paging with extensible options.", "description": "SwiftDataTables allows you to display grid-like data sets in a nicely formatted table for iOS. The main goal for the end-user are to be able to obtain useful information from the table as quickly as possible with the following features: ordering, searching, and paging; where as for the developer is to allow for easy implementation with extensible options. This package was inspired by Javascript's DataTables package.", "homepage": "https://github.com/pavankataria/SwiftDataTables", @@ -13,7 +13,7 @@ }, "source": { "git": "https://github.com/pavankataria/SwiftDataTables.git", - "tag": "0.2.6" + "tag": "0.2.7" }, "platforms": { "ios": "9.0" diff --git a/Example/Pods/Manifest.lock b/Example/Pods/Manifest.lock index 0db48a7..2877991 100644 --- a/Example/Pods/Manifest.lock +++ b/Example/Pods/Manifest.lock @@ -12,7 +12,7 @@ PODS: - Nimble - Quick - Quick (1.0.0) - - SwiftDataTables (0.2.6) + - SwiftDataTables (0.2.7) DEPENDENCIES: - FBSnapshotTestCase @@ -30,7 +30,7 @@ SPEC CHECKSUMS: Nimble: 415e3aa3267e7bc2c96b05fa814ddea7bb686a29 Nimble-Snapshots: e743439f26c2fa99d8f7e0d7c01c99bcb40aa6f2 Quick: 8024e4a47e6cc03a9d5245ef0948264fc6d27cff - SwiftDataTables: 83d1044c3a7f147dfd3a2e5e1370bc199f4f6441 + SwiftDataTables: 16d78aa44825faf00c65ec9678ec51f82d1620a3 PODFILE CHECKSUM: 9948d9c085c4f798f028aaa1e7597151e452280e diff --git a/Example/Pods/Pods.xcodeproj/project.pbxproj b/Example/Pods/Pods.xcodeproj/project.pbxproj index c1b139b..8735b6c 100644 --- a/Example/Pods/Pods.xcodeproj/project.pbxproj +++ b/Example/Pods/Pods.xcodeproj/project.pbxproj @@ -8,26 +8,24 @@ /* Begin PBXBuildFile section */ 047A68C646E00EB6D7D4D7343B801D09 /* AdapterProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4846C1280F7FCC383265584085BAB875 /* AdapterProtocols.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 04D3A2072D43BBF4D1BFDFD45F859226 /* DataCellLayoutAttributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EE1F7C243C8D194CB6C5DFC46CE2597 /* DataCellLayoutAttributes.swift */; }; 04E67A60A59D89EDD0FA3954807BACA2 /* Pods-SwiftDataTables_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 384C6C6A4148C520C98D0600D7393727 /* Pods-SwiftDataTables_Example-dummy.m */; }; - 051344691E75CA52000350FF /* DataTableValueType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 051344681E75CA51000350FF /* DataTableValueType.swift */; }; 051A816D6DD0CAE13496DDCFE0829167 /* UIImage+Diff.h in Headers */ = {isa = PBXBuildFile; fileRef = 5F8012AD8A72934F350BDA8C90157813 /* UIImage+Diff.h */; settings = {ATTRIBUTES = (Private, ); }; }; 055835A025E38405EA9EC5218E6FE1E3 /* ExampleMetadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7510C71C3B6495347C01469BB81376A6 /* ExampleMetadata.swift */; }; - 0640AF66CA2850971146A85E311D6E21 /* MenuLengthHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6D3C6D32637623815FB4AF6B9BD12B08 /* MenuLengthHeader.swift */; }; 07722FBCF6B380961B9D2832D5883F45 /* BeGreaterThan.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4F8491C368290A8B20C9EF13A6C6EE6 /* BeGreaterThan.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 077F99C7AE125ABF0C0047716F680943 /* DataCellRowRepresentable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1DDF2057E3F22DCB9C7A6D4A6FC28DF5 /* DataCellRowRepresentable.swift */; }; 081E967D67DC9BED078AAC67DDB50B6A /* SwiftDataTables.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 7CD548E01AB1C82543F72FC3ACDE740B /* SwiftDataTables.bundle */; }; - 086FBB88C86C24C3C7A6A9C211276734 /* column-sort-unspecified.png in Sources */ = {isa = PBXBuildFile; fileRef = 4DFA97D9BCE027AACC1E692E9F532D16 /* column-sort-unspecified.png */; }; 094973D2D2F1E3B2E772F93C8147C6B9 /* UIApplication+StrictKeyWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = FA68CDEB565662C3E1B336DB7D1493CA /* UIApplication+StrictKeyWindow.m */; }; 0AEC20AACF9B10846830274E3B2AA6FD /* BeLogical.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D38D8EEA17091B69D8228F090F3D137 /* BeLogical.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; 0B55B4674CFB027072445047F4B651B0 /* World+DSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = F31CF5F8D4CD212CEEBCE9658B34CAA9 /* World+DSL.swift */; }; 0B8DBAB184BB7E8E1D9C5E3386A8DEDB /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8C8CBBF32C39839511129EB1C04B4277 /* Foundation.framework */; }; + 0C4C3FD1B0C3881E2A7BA491A0E3CDE7 /* DataHeaderFooter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F51A0022452EF1EFD995A3C901C8035 /* DataHeaderFooter.swift */; }; 0E9B5F1C8FA6E50276C372D6626E6FD3 /* Closures.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF56BECC3FEF842A4B13280D5BC5FE11 /* Closures.swift */; }; 0ECEEBC712D404AA6CF1E76A9284BFF9 /* DSL.h in Headers */ = {isa = PBXBuildFile; fileRef = F3696EC637DC2B4E0D9042A916287FDF /* DSL.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 102ED0594E47358CAF10F0B91A5AC245 /* DataTableSortType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DDBC8E95DD0B0833A7DBF2104BEC105 /* DataTableSortType.swift */; }; 110A640A9BE45841BA938B4C29EF5446 /* ThrowAssertion.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A73BFE6363E58209795B79CE6BC0335 /* ThrowAssertion.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; 1250861473281A12D0EF7F7D724BE42E /* World+DSL.h in Headers */ = {isa = PBXBuildFile; fileRef = 94F61772FE7F69CAF6D3935270969868 /* World+DSL.h */; settings = {ATTRIBUTES = (Project, ); }; }; 127CD37052B8E0BC645D83D4664F59D4 /* NMBStringify.m in Sources */ = {isa = PBXBuildFile; fileRef = 820F9D392E1638DA2DC01DFEECAE0400 /* NMBStringify.m */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; 13DC5749947421DFD00ECF07EDF28D52 /* SwiftDataTables-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 78A14C8773B4B9CD3ADB324703A6D84D /* SwiftDataTables-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 155AF45595400F755AD7510330CE2E2D /* CollectionViewSupplementaryElementRepresentable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D230D9B285E4DB6BE57283D0DA369B9 /* CollectionViewSupplementaryElementRepresentable.swift */; }; 17261E344C2027602431A636759AC7F2 /* DSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C503C68EA53D4FC640377289AAFC5E1 /* DSL.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; 1AB7934C16CE49DE196FFC7BE7278287 /* SwiftSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F4FE31C968EF301BF0D9AFF09D7BAAE /* SwiftSupport.swift */; }; 1BE83F05D2C9B417E2BA301860E9EDB2 /* NSBundle+CurrentTestBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = EB646F5C3AD648D54BA7807757A438B3 /* NSBundle+CurrentTestBundle.swift */; }; @@ -39,23 +37,25 @@ 23E2E1E02FE79EE1E1688CBBAA777297 /* MatcherProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F48368B8248E6DE7D078A59E62077BD /* MatcherProtocols.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; 24EF979DB6A2B88464E07F5C5937EE14 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8C8CBBF32C39839511129EB1C04B4277 /* Foundation.framework */; }; 27B262F95D3CF9E3C74541A41929691C /* NMBStringify.h in Headers */ = {isa = PBXBuildFile; fileRef = 1927B151D5046BC3FA820B58EA5DFC21 /* NMBStringify.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 29256368703C6C5691A5383A9F7EA94F /* CollectionViewCellRepresentable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5E03864D4E5038802D89293B2EFD7933 /* CollectionViewCellRepresentable.swift */; }; 292E3B98E782786FCBD6C3F3F53F5507 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8C8CBBF32C39839511129EB1C04B4277 /* Foundation.framework */; }; + 2AF491F84ACD4C8AFDBC5725149D67BB /* DataTableSortable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 758C2C1E7462638527091ADC27FBC27E /* DataTableSortable.swift */; }; + 2E26B4E84EFC5D6AD20E456938B92982 /* column-sort-descending.png in Sources */ = {isa = PBXBuildFile; fileRef = C5ED1D2C95803E58A72D6699C4F0DC03 /* column-sort-descending.png */; }; 2F485B69F51E4F723A38410F31F08550 /* FBSnapshotTestController.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C6633CEA203AB2C103DE07E821BF70B /* FBSnapshotTestController.h */; settings = {ATTRIBUTES = (Public, ); }; }; 33813618E82016201598246F59E9F69A /* World.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7EF60AC0AF9A8589E5BD931EAC70C737 /* World.swift */; }; 3509162C93C42B9929597FCA92D35790 /* HaveValidSnapshot.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CC515501BE842CB008E9B937E323800 /* HaveValidSnapshot.swift */; }; 350C83B966CA116B533FF380D5BBCD1E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8C8CBBF32C39839511129EB1C04B4277 /* Foundation.framework */; }; + 35BC77868CC47151547D08C4BE923246 /* DataCell.xib in Sources */ = {isa = PBXBuildFile; fileRef = 58396C00E501273D8D517F4680C5497B /* DataCell.xib */; }; 35DD05FD595A6FE7F5A0692D12E319DC /* UIImage+Diff.m in Sources */ = {isa = PBXBuildFile; fileRef = E4C4B015314BBB05168BA389FF2D0CA4 /* UIImage+Diff.m */; }; + 361C0FD3E09385E01C9851B26F2C61BE /* DataTableValueType.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA7ECB32F073B7A01296671D9C29E01C /* DataTableValueType.swift */; }; 3915DBB4731CB17B255A7FE86E240B6E /* CwlCatchBadInstruction.m in Sources */ = {isa = PBXBuildFile; fileRef = 23871FC25FD3F6C0A3F65DA3F345605D /* CwlCatchBadInstruction.m */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; 3B83A2F08BC090A6FD3EBA869E1BD39D /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0401507CF8C223BBA0935EF757D1293D /* QuartzCore.framework */; }; + 3C5F558833ACE66DDAD220135719D273 /* SwiftDataTables-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 29529D22A36CCD1CF3C8A3E37CF8AA82 /* SwiftDataTables-dummy.m */; }; + 3C70FA40AE67C09E1DFA28AFC3DCC226 /* DataStructureModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B6B09B046705E533AEAE674DAD999AE2 /* DataStructureModel.swift */; }; 409FAF576DBF8C84A9B6E18637ACE6E6 /* QuickSelectedTestSuiteBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8B3330E9A86A20013F3ABF42BC342A2 /* QuickSelectedTestSuiteBuilder.swift */; }; 40DFBA37EC892AAA1E90AF4889E0049C /* Quick.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8C36DB6F05615EC71278526272A72BAD /* Quick.framework */; }; 421CDD701AEE0F2458A84200366CDD0F /* UIImage+Snapshot.h in Headers */ = {isa = PBXBuildFile; fileRef = 580D06054A96A8B0038E6CFFD5A5743D /* UIImage+Snapshot.h */; settings = {ATTRIBUTES = (Private, ); }; }; 4647B4889669D5F1E0A7A1C2ECFDFD68 /* QuickSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B4F126DB4A59259CBDCC1F2A4A1990A /* QuickSpec.m */; }; 469E9C3ED9FD6009F7C9AAF9E537E212 /* Nimble.h in Headers */ = {isa = PBXBuildFile; fileRef = BBB1CC5D92DC46FF22448782CCC44E1D /* Nimble.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 494A142F7EBBD56A076347BA1FF96644 /* column-sort-ascending.png in Sources */ = {isa = PBXBuildFile; fileRef = 1F38014839DEEA1DA698E6AE364A8D18 /* column-sort-ascending.png */; }; - 49AD1B687BC056E98E670C79033825AC /* DataHeaderFooter.xib in Sources */ = {isa = PBXBuildFile; fileRef = 7B4B530F20BAA9612EDFB93379EC160E /* DataHeaderFooter.xib */; }; - 4D9EFE8CD5F2A0482652CDF93007E74C /* DataStructureModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B899A6FF3E66923F3240514BAB0C88F /* DataStructureModel.swift */; }; 4F3F103945CC52D0A3B8A891BB0E21C4 /* RaisesException.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7EB9685CE2F44160E003CBE369BC12D1 /* RaisesException.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; 4FEB34672824B33CFA9182A31FFC1F46 /* FBSnapshotTestCase.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9823197EA5904A9150FB0AD8B09841E6 /* FBSnapshotTestCase.framework */; }; 506D761F91EC3583789A837C559972FE /* FBSnapshotTestCase-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 4F58095B435083E123FE763D0A51D495 /* FBSnapshotTestCase-dummy.m */; }; @@ -65,11 +65,10 @@ 551440A0F92574039C1D2EB39227D6B8 /* AsyncMatcherWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD1F32B8DCF598ED9E3BDF343E4C8A91 /* AsyncMatcherWrapper.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; 57B9EF6BE2F0518A23812367351C2F02 /* URL+FileName.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1906C2EEC74D3F756324E96F610273D /* URL+FileName.swift */; }; 599669823A2EED2928C77F301F6B0515 /* BeNil.swift in Sources */ = {isa = PBXBuildFile; fileRef = 87CF70DA6913C74B478980A07C7D4C14 /* BeNil.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 5A46E66F50BE9140F94ED259C86ABB46 /* MenuLengthHeaderViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2141D295178DD08FD8962A61C87239FB /* MenuLengthHeaderViewModel.swift */; }; 5C85B27AAC8B8449F6013EB45C1CFB14 /* HooksPhase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33F2E1C895B9FEB6EB2A77B733A54E01 /* HooksPhase.swift */; }; - 5E29B1B3040E2851FFEB9CA945D1C70C /* SwiftDataTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0596A5858DC69D0EF61B17F97FC18F4B /* SwiftDataTable.swift */; }; + 5CBA47C5F7B5145795D38A11F28FBC39 /* MenuLengthHeaderViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5FF66442B3706F72C3360B21A22E47D8 /* MenuLengthHeaderViewModel.swift */; }; 607308F476214497BFDE452056C2D0B7 /* NSString+QCKSelectorName.m in Sources */ = {isa = PBXBuildFile; fileRef = 7126CA3B2AD0340024232DE33971817D /* NSString+QCKSelectorName.m */; }; - 60EA2AFB4E26C3F1D3EDAEB5EECD1B35 /* CollectionViewSupplementaryElementRepresentable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51CF77072ED023933B112C24142CD886 /* CollectionViewSupplementaryElementRepresentable.swift */; }; + 62005E546AAD30CC92BAD45F5D788875 /* PaginationHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 81A1BB62F579338FB5B3D1B46593C516 /* PaginationHeader.swift */; }; 62744EF299751FB49B5FCD81D8C8FFF7 /* SatisfyAnyOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5C1E27C8CE0AFBE69F80EEC5A72348C /* SatisfyAnyOf.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; 640776F175B648FBC2E43C16ECF3F39B /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FB581661953B50A6C707A77A53A29B1F /* UIKit.framework */; }; 651524C71AE35B03830960CDCC00BE7A /* Example.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CD7DB8C4496F3D1DB3710A3D48A3D60 /* Example.swift */; }; @@ -78,9 +77,11 @@ 67697002E3835243F40ABA92ED409343 /* DSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18346C82D017A21FF2D24B18D2A19F96 /* DSL.swift */; }; 687712BFB353D8BDC08E7CE1F089A761 /* Pods-SwiftDataTables_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 5277C1C4F649828D9CEE62AF4D307B53 /* Pods-SwiftDataTables_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 69DA8B003216466C60F029CBD79897F1 /* UIImage+Compare.m in Sources */ = {isa = PBXBuildFile; fileRef = ABA451463938AAC29772A9BA4A644712 /* UIImage+Compare.m */; }; + 6A754488F2940DEE2BE0B4680D30B830 /* DataTableConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7545976213A79CF058DF04F103DA13F5 /* DataTableConfiguration.swift */; }; + 6BCD50C7C8D2AEFE81B6DC028BD64892 /* DataTableSortType.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD3A7ED43AABB75248525A0E205BDAE4 /* DataTableSortType.swift */; }; 6CDBA48C3A8621E4EE1DAFFE240F0D82 /* CwlCatchBadInstruction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D5AB00D217C687CB83AE825D8B15F32 /* CwlCatchBadInstruction.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 6D296F7C0DD65616E31298E40A4200C5 /* DataHeaderFooterViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 692C83EA7BDB5F20630C8A087F6D4189 /* DataHeaderFooterViewModel.swift */; }; 6E397D9FB11A47E48D70287D734B12B2 /* BeLessThan.swift in Sources */ = {isa = PBXBuildFile; fileRef = F59D049190E109365BF9BA6BF1409B7F /* BeLessThan.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 6EE0190B7DAA78BF3753643D2A10A122 /* PaginationHeaderViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3595D6906633B4290F93E1CCFD4AE48 /* PaginationHeaderViewModel.swift */; }; 737E19F3254F5929263982C29237C0BA /* CwlBadInstructionException.swift in Sources */ = {isa = PBXBuildFile; fileRef = E024920AB8586A368B7A80B2476E9E8D /* CwlBadInstructionException.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; 74BE659608CC330081C12C777A7154F8 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8C8CBBF32C39839511129EB1C04B4277 /* Foundation.framework */; }; 74FD712F3B503891B6BD9E5CD287E481 /* AssertionDispatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F6F40857C901AB4593AB1E6813F723D /* AssertionDispatcher.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; @@ -91,25 +92,25 @@ 786918BAFEE87B63EB6BB36F973A8C18 /* Pods-SwiftDataTables_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A4A7D10DFC80274683FA6D5D7CB30045 /* Pods-SwiftDataTables_Tests-dummy.m */; }; 78F3DE174B4F8D368EF8EEFD7EE62087 /* BeVoid.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79020B04FF6E7FDD4FE15AECD8DA69E3 /* BeVoid.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; 7D6269A3CFE53C28DAA6B92E8FC017A7 /* FailureMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D86C1DE6C978BA3D2C81477BE7BA9F2 /* FailureMessage.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 7E79D622172995458EE3F96123FBC676 /* VirtualPositionTrackable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09B4FE2CBBA7486FA032F19F7C6EC1D1 /* VirtualPositionTrackable.swift */; }; 7F6750C7B1847733370B18C4CBFE32DF /* Errors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331AE497C208A30EDB1145039A6486B3 /* Errors.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; 7FEEF5DF31709CE3D1944CB92127B6FC /* QuickSpec.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F22D667453265DAB968FBDAF1B553D8 /* QuickSpec.h */; settings = {ATTRIBUTES = (Public, ); }; }; 8015239010C1D642F14C105F8FF8E035 /* Expression.swift in Sources */ = {isa = PBXBuildFile; fileRef = CA570EBAAA31239A6305CFD1BA04587C /* Expression.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 80F44700FB3FAD5631EA99015F696CF0 /* DataCell.xib in Sources */ = {isa = PBXBuildFile; fileRef = 8C5D885FBC4688F9E021C43F6259202E /* DataCell.xib */; }; 8507F4BF7437EB40A3626EDCC68BFF6D /* Contain.swift in Sources */ = {isa = PBXBuildFile; fileRef = 006ED45CA89BF1184872D135803B008C /* Contain.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; 8654571F855691C23B7B8E61B2141944 /* EndWith.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5FEA4B7E2BD931E1785D5FC2F9A67DE9 /* EndWith.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; 867B546C8A79499B9E148ED58222B9EF /* ExampleHooks.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F077BF65ADAB96D26191001735CF8A2 /* ExampleHooks.swift */; }; 86FFB76B2EDCF4AE79CC4C0BD8A0FE9A /* DSL+Wait.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55143EF0DEF159DDD063FA42B7D12153 /* DSL+Wait.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 872F4A71132D099AEA08A1EA096F3D4C /* MenuLengthHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC435B597A1AB28EFC1D91289A40A4E6 /* MenuLengthHeader.swift */; }; 87DD62F200DAB5E1D701AB9F94D1D422 /* CwlCatchException.h in Headers */ = {isa = PBXBuildFile; fileRef = BCEB37B89B355A11349E00B4B0C904E7 /* CwlCatchException.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8A20DBDED66FD708C0B5B99DBADD9AA5 /* SwiftDataTables-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 29529D22A36CCD1CF3C8A3E37CF8AA82 /* SwiftDataTables-dummy.m */; }; - 8BB178859482C49A65E3C0E5FF5A56B9 /* PaginationHeader.xib in Sources */ = {isa = PBXBuildFile; fileRef = ADC05C3D0B613A47D0E19F012D9C1F87 /* PaginationHeader.xib */; }; 8C30EAD5FFD28B387099B41C74657A67 /* NMBExpectation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E91D3D71D09F9D765DA1760C4501113 /* NMBExpectation.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 8CD7C202E24196AC12F79C16FF4E6D87 /* column-sort-unspecified.png in Sources */ = {isa = PBXBuildFile; fileRef = C51B1CBE13F43FCA0ED53371BD6546BA /* column-sort-unspecified.png */; }; + 8F4CAE912203890EB984FE7D249E1647 /* column-sort-ascending.png in Sources */ = {isa = PBXBuildFile; fileRef = 5CBE07CBEF0A9F6D1115A9DCD2EEA50C /* column-sort-ascending.png */; }; 90174E419D8A937DF09791B3D33A56D0 /* PrettySyntax.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4C3776AEE672BA0788E6A1E5CEE93B2 /* PrettySyntax.swift */; }; 917949F596E1188261FC59214782C3D9 /* NMBExceptionCapture.h in Headers */ = {isa = PBXBuildFile; fileRef = DC664780D8DFF8970DA8994D41CCF9B2 /* NMBExceptionCapture.h */; settings = {ATTRIBUTES = (Public, ); }; }; 9359F2B630248C1CC2F359066B48875B /* NSString+QCKSelectorName.h in Headers */ = {isa = PBXBuildFile; fileRef = BD73B4629AE77675CA5397DB9836BE88 /* NSString+QCKSelectorName.h */; settings = {ATTRIBUTES = (Project, ); }; }; 947162383483B6391F8CDF38249BFBD2 /* CwlCatchException.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C704810C5F00D4C1AE79FA0F63432B0 /* CwlCatchException.m */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; 9544A4EEC2A8448743ECA9981F88B60F /* BeCloseTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCDCED103BFD74EDA9864A6F526C685B /* BeCloseTo.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; 954C921BD469879C91B141282EDBC80B /* ExampleGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD957622A3C0DB785B9C02722820AEF2 /* ExampleGroup.swift */; }; - 9617C11C52D7C832471BE7012C55D2D9 /* VirtualPositionTrackable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4060623E8D8F3EE8E50EE7AA6B799D56 /* VirtualPositionTrackable.swift */; }; 9673CF780F48C8E4EC2A331717B1F67C /* FBSnapshotTestCase.h in Headers */ = {isa = PBXBuildFile; fileRef = 814044D9DC540957290C399CB1D970D1 /* FBSnapshotTestCase.h */; settings = {ATTRIBUTES = (Public, ); }; }; 9954CB54947985ED49530B9A56CDA169 /* XCTestSuite+QuickTestSuiteBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 91B35075C2C09AD9E7FB16BE3C249DB9 /* XCTestSuite+QuickTestSuiteBuilder.m */; }; 99D78691DDFCC91D33EF911FCFABFE46 /* QCKDSL.m in Sources */ = {isa = PBXBuildFile; fileRef = 9ED7B23AEE06C44713BF4D8166463FD4 /* QCKDSL.m */; }; @@ -122,29 +123,29 @@ A663D272465010B712A743672BF78D0A /* World.h in Headers */ = {isa = PBXBuildFile; fileRef = 9963EE7CC8E08B315A80570158907487 /* World.h */; settings = {ATTRIBUTES = (Project, ); }; }; A87D6C482F0E32A837FF84052D383EE2 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8C8CBBF32C39839511129EB1C04B4277 /* Foundation.framework */; }; A91166D0A5E8F1D5D5377622C381C045 /* Match.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D50F32074CE8DCF1783E1B0AD0D182A /* Match.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - A9EB2A8820C4AE7FBC8C0DEB850A1892 /* SwiftDataTable+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1A5BD59DC61028CF8BFE9BA39665374 /* SwiftDataTable+Extensions.swift */; }; + AAB0D3BF1DCF998A416345AD0D3FA94A /* DataHeaderFooter.xib in Sources */ = {isa = PBXBuildFile; fileRef = 5FE39D66642A56668EE1C80FE219DEBC /* DataHeaderFooter.xib */; }; AB255C27EF10E742C6567775022F49D5 /* BeginWith.swift in Sources */ = {isa = PBXBuildFile; fileRef = F199A02F676DA73375C88A80FB16DD4D /* BeginWith.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - AB9719CA6465E4C17659FE0F9B88435D /* column-sort-descending.png in Sources */ = {isa = PBXBuildFile; fileRef = A7BE48330356076F18E9FF51B3CD9DC5 /* column-sort-descending.png */; }; + AB8F247AEAD41BB1641A263D940D263C /* MenuLengthHeader.xib in Sources */ = {isa = PBXBuildFile; fileRef = 7DBB33DAE7B794564F6FA560075614C8 /* MenuLengthHeader.xib */; }; AC0B24EF198E3BEDFCC9F25D7B8EEDAB /* NMBObjCMatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6BF4FCFD654088933CAD87C7031489CB /* NMBObjCMatcher.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; AC29CC89E22273BF0D0DC2C841B7524C /* Async.swift in Sources */ = {isa = PBXBuildFile; fileRef = C098EE9572B95825B622EAA7BFB4731C /* Async.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; ACE6A9A220945F4FF4B4270948A838C2 /* QuickTestSuite.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD489E28B0C02C490FE97D19B2868DB7 /* QuickTestSuite.swift */; }; - AFE643E1A3B4E018B488B4BF2FA03123 /* DataTableSortable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 25CFB5E67138CBEFC7694CD22302F5D8 /* DataTableSortable.swift */; }; B093484B1637B3D3AF65DF2232FDBADC /* mach_excServer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8345849CAFBED9EEDE92E26A20C0A6F5 /* mach_excServer.h */; settings = {ATTRIBUTES = (Public, ); }; }; B2C0DCF4342E71A8EDC6C48E197F6698 /* QuickConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A7E756AD1BF0435FA50430ED8652004 /* QuickConfiguration.m */; }; B34A4E37160A449230AB67EE9DFDAA84 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6257107A1A729D6814F643FFF44ABA6E /* XCTest.framework */; }; + B5FDE273BF516D8426A0002E3CC2DB22 /* SwiftDataTable+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1AD804FA3D8F3F6364A5D9D007B80856 /* SwiftDataTable+Extensions.swift */; }; B758FB09FE2C06C1B8E36A71A9D76D41 /* FBSnapshotTestCase-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = EEC96BC9BE018646D23B220ECE7B08EA /* FBSnapshotTestCase-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; B7F8F508EF1554FA35A8D0A1F7CB3099 /* Configuration.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF49BDFF61F7EDC15478F187293020F3 /* Configuration.swift */; }; B9BD565DAB07F8E2288A960A1D3EFAC1 /* MatcherFunc.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6DA5B2C8979332693562BDAE9569DE4C /* MatcherFunc.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - BA0B2E144928C6954CCFB3770482285C /* SwiftDataTableFlowLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7056D4F252D7AB93A9A1474D65939562 /* SwiftDataTableFlowLayout.swift */; }; BB10A2D0B1EE5B1BA811354116F83E3F /* CwlDarwinDefinitions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 03F296C4A593A03240EAC157F47687C9 /* CwlDarwinDefinitions.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; BC952FC04FC963C1294DCD619C9B6B3B /* UIApplication+StrictKeyWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = B0BDDFCA6435FEF025A8AA771C018452 /* UIApplication+StrictKeyWindow.h */; settings = {ATTRIBUTES = (Project, ); }; }; BE14F2198CDB0DAD98A567981D21C7A1 /* FBSnapshotTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = 56D1793E15813EC733B46E6884FEEA74 /* FBSnapshotTestCase.m */; }; BF3AF1D2B46E09E2B3DCC824E6C1F5AF /* Equal.swift in Sources */ = {isa = PBXBuildFile; fileRef = B82C7AA48F705507E47A21AD8E10484F /* Equal.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; BF69AA6FF03B0D3789E27548B8398D35 /* Quick-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = E62B08603E00709D2E2462B0FCCBBF61 /* Quick-dummy.m */; }; BFCE460CC33E8872B7156D4166340178 /* FBSnapshotTestCasePlatform.h in Headers */ = {isa = PBXBuildFile; fileRef = 22BCD65F3423C0A520456A9B100A882D /* FBSnapshotTestCasePlatform.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C281314D9049ABE135C435146A776433 /* DataCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 755F9D30DB560296D234E1CC7BF32C7B /* DataCell.swift */; }; - C5F683BD1741A65F15E48F15C6A8158F /* DataCellLayoutAttributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = B40E59D5AB481F936FB0B7AEA50B1C83 /* DataCellLayoutAttributes.swift */; }; - C673B41F6B455657DB5F675767C0DAA9 /* DataHeaderFooterViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0FDE86EEC1288DF7AB5612C6C34CD702 /* DataHeaderFooterViewModel.swift */; }; + C17B750075715E03B148AC604FAEE825 /* SwiftDataTableFlowLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA0A3B002A6F00B48748D52241622DCE /* SwiftDataTableFlowLayout.swift */; }; + C26D4DCB949EAFBCCAE561F9F62A736B /* PaginationHeader.xib in Sources */ = {isa = PBXBuildFile; fileRef = 70B187106D06C52BCE59600E80CACA8E /* PaginationHeader.xib */; }; + C69882855206EA713FE1C6427851B34C /* DataStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24C5B75DC8BB1D3AC33E13F348A6FD17 /* DataStore.swift */; }; + C864273AF5D17F7176186DAFEF19AB3D /* PaginationHeaderViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D33697A87B8F44DDE9797AA32060CD8B /* PaginationHeaderViewModel.swift */; }; CAFA5E486BCE117A7D8C0FBF9DA6666B /* UIImage+Compare.h in Headers */ = {isa = PBXBuildFile; fileRef = 0AEAF67D1F53BA3D6E6CA0121B5A90BA /* UIImage+Compare.h */; settings = {ATTRIBUTES = (Private, ); }; }; CB7558CCDD935C9E82BBF454022ED1D3 /* Expectation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 515787726F972CD10EF3AB251F3D2362 /* Expectation.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; CE3FA6AE0944D4AE737F0E57CFF4A615 /* HaveCount.swift in Sources */ = {isa = PBXBuildFile; fileRef = B419C0F352F8E79D519735CEEBC3F5E2 /* HaveCount.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; @@ -157,27 +158,26 @@ DB7A106243AC974FC7EBEB00B506C786 /* FBSnapshotTestCasePlatform.m in Sources */ = {isa = PBXBuildFile; fileRef = CDD5CEC74296B67DA0E45D00465A3C67 /* FBSnapshotTestCasePlatform.m */; }; DC32331BE565888E694E1321BB1D80F5 /* NMBExceptionCapture.m in Sources */ = {isa = PBXBuildFile; fileRef = 0AB3A49F2F919C4A0822DA6F4BB67C0F /* NMBExceptionCapture.m */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; DCEE854E62441E78FED15CC994497F61 /* AllPass.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6C9691BC7DD2332650A7C903F0DD3FCA /* AllPass.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - DD78402AB6127C2A0ED909BF969EB9B7 /* DataStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = A20791AAF2E0D828876018267DA3B5F0 /* DataStore.swift */; }; + DE23705BA788F762AEC564940DC5B258 /* DataCellViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3CFE8D2B2475153C3B82873CBD1500D5 /* DataCellViewModel.swift */; }; E0061C7AE6070E141DB60704A8DC1D09 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8C8CBBF32C39839511129EB1C04B4277 /* Foundation.framework */; }; E5CCEF0B83F8272D10671C01AAE4FFA0 /* NimbleXCTestHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 466B5734B8571AC44718C371C80CE5A6 /* NimbleXCTestHandler.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - E827637CA9ED245D376A7C43374CBB3F /* DataTableConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E57FF7D2327A8EEB09FF0552D0999B3 /* DataTableConfiguration.swift */; }; EBA52C16F42E42A1824D87C284F4A60C /* PostNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0CCCF841830A407AA9D8BB9E8F07F5C /* PostNotification.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; ECDCA34D620E87501E4413C5CCB762B7 /* QCKDSL.h in Headers */ = {isa = PBXBuildFile; fileRef = 2E17284A9AD262919A278BB506F291DE /* QCKDSL.h */; settings = {ATTRIBUTES = (Public, ); }; }; EE93A677B561717E56A85651F6F19FEE /* QuickConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = DC57DA19B7547061C4391AEE40D7AB91 /* QuickConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; F143479766663AC5F69BFA06621E0C4D /* Nimble.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5AD55F3974939097556240403DEE2DFF /* Nimble.framework */; }; - F336183375A875502312CCC4C0FA59F6 /* DataCellViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EB8C886623335C2232D9BF3501403EB /* DataCellViewModel.swift */; }; F4A1B7A059AAA6727EB70E58E09332A4 /* CwlCatchException.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F2F853A85B8879EEB1CE2DC95B97EBC /* CwlCatchException.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; F60D221B548716DF35193FC2CF244676 /* BeAKindOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD7A4AD39E55980AD6756E73FBCE477D /* BeAKindOf.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; F693D0A9E0D05F815A85DC258E75AF8D /* CurrentTestCaseTracker.h in Headers */ = {isa = PBXBuildFile; fileRef = BE503D79408C000D2C055851C33ACE52 /* CurrentTestCaseTracker.h */; settings = {ATTRIBUTES = (Private, ); }; }; F9D61EB5EEB799105913685722FF4C9C /* NimbleEnvironment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57E169877FF59447D4182C1989BF0B59 /* NimbleEnvironment.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; F9E05A63D447B51E008B89731192FE7F /* AssertionRecorder.swift in Sources */ = {isa = PBXBuildFile; fileRef = B0E67650E7214DCE853B31771FB5FEF5 /* AssertionRecorder.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; FAB4ECE0C5039D99BB7173880670871D /* BeLessThanOrEqual.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4707081A3F287021C3E570AE00D4C050 /* BeLessThanOrEqual.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + FB1A49A5265FEF672D6190A5D46A937C /* CollectionViewCellRepresentable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F5F6B5F09B6B3170BEF01CA41B2823A /* CollectionViewCellRepresentable.swift */; }; FB3D8950F83586921EF7E3815BC8D312 /* Callsite.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE95FD22040B2F419CA820D80377A6FA /* Callsite.swift */; }; - FBD47C785698E57587A1A603B94A2584 /* PaginationHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88B82656182572F88DCB8037D1BCC4E1 /* PaginationHeader.swift */; }; - FC74F800AE63DE369C6E86F95AED49D4 /* DataHeaderFooter.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEBEFDA604D2C97391E06EFF59430FFC /* DataHeaderFooter.swift */; }; + FC2A9D3708B5820E0C0304E5EF1C14CD /* DataCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96CB8888EBCDDEA599EB73C4DB608B5A /* DataCell.swift */; }; FC9EFB44CC6BBC76920971C600EDA4D1 /* Quick.h in Headers */ = {isa = PBXBuildFile; fileRef = F62481E1600B58F612F67D19918378A8 /* Quick.h */; settings = {ATTRIBUTES = (Public, ); }; }; FCFFEB587281358CFF05A65ED9E94C12 /* Functional.swift in Sources */ = {isa = PBXBuildFile; fileRef = 843C71B76BF6333F7E3BC21CF4790615 /* Functional.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - FEFB482B4DD00779F1F67CFA12C29AE1 /* MenuLengthHeader.xib in Sources */ = {isa = PBXBuildFile; fileRef = 0559791336DC30B0E002EC449125333F /* MenuLengthHeader.xib */; }; + FD73735DACD60D5B0A36E1A9CD3F8A0B /* DataCellRowRepresentable.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8A3C43C936854AC7B9E3E96FBAFFFB3 /* DataCellRowRepresentable.swift */; }; + FFAF529B34E378B0F1BA092DB2768A50 /* SwiftDataTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6E801D8109B27ABF2C29EB0C82DCF8C /* SwiftDataTable.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -242,36 +242,30 @@ /* Begin PBXFileReference section */ 006ED45CA89BF1184872D135803B008C /* Contain.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Contain.swift; path = Sources/Nimble/Matchers/Contain.swift; sourceTree = ""; }; 026CC3068F40BE2D05647A2410B36B3B /* Pods-SwiftDataTables_Tests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-SwiftDataTables_Tests-resources.sh"; sourceTree = ""; }; - 03638C4DE8AF4526726938F60FC5CFD1 /* Nimble_Snapshots.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Nimble_Snapshots.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 03638C4DE8AF4526726938F60FC5CFD1 /* Nimble_Snapshots.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Nimble_Snapshots.framework; path = "Nimble-Snapshots.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; 03F296C4A593A03240EAC157F47687C9 /* CwlDarwinDefinitions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CwlDarwinDefinitions.swift; path = Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlDarwinDefinitions.swift; sourceTree = ""; }; 0401507CF8C223BBA0935EF757D1293D /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.0.sdk/System/Library/Frameworks/QuartzCore.framework; sourceTree = DEVELOPER_DIR; }; - 051344681E75CA51000350FF /* DataTableValueType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DataTableValueType.swift; sourceTree = ""; }; - 0559791336DC30B0E002EC449125333F /* MenuLengthHeader.xib */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.xib; path = MenuLengthHeader.xib; sourceTree = ""; }; - 0596A5858DC69D0EF61B17F97FC18F4B /* SwiftDataTable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SwiftDataTable.swift; sourceTree = ""; }; 06C301E6CBB530F76B07ADC535E93109 /* Nimble.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Nimble.xcconfig; sourceTree = ""; }; + 09B4FE2CBBA7486FA032F19F7C6EC1D1 /* VirtualPositionTrackable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = VirtualPositionTrackable.swift; sourceTree = ""; }; 0A7E756AD1BF0435FA50430ED8652004 /* QuickConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QuickConfiguration.m; path = Sources/QuickObjectiveC/Configuration/QuickConfiguration.m; sourceTree = ""; }; 0AB3A49F2F919C4A0822DA6F4BB67C0F /* NMBExceptionCapture.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NMBExceptionCapture.m; path = Sources/NimbleObjectiveC/NMBExceptionCapture.m; sourceTree = ""; }; 0AE630EE628914F19009DB020200BDDB /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 0AEAF67D1F53BA3D6E6CA0121B5A90BA /* UIImage+Compare.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+Compare.h"; path = "FBSnapshotTestCase/Categories/UIImage+Compare.h"; sourceTree = ""; }; - 0E57FF7D2327A8EEB09FF0552D0999B3 /* DataTableConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DataTableConfiguration.swift; sourceTree = ""; }; - 0FDE86EEC1288DF7AB5612C6C34CD702 /* DataHeaderFooterViewModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DataHeaderFooterViewModel.swift; sourceTree = ""; }; 10A7DE5ED83DC9EC63F445D66A280904 /* SourceLocation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SourceLocation.swift; path = Sources/Nimble/Utils/SourceLocation.swift; sourceTree = ""; }; 14ED7EE1C5006B7C2FC9931DAC233884 /* BeEmpty.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeEmpty.swift; path = Sources/Nimble/Matchers/BeEmpty.swift; sourceTree = ""; }; - 15D74D4F308C07A9FF50DFDA2A0736D9 /* Pods-SwiftDataTables_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Pods-SwiftDataTables_Example.modulemap"; sourceTree = ""; }; + 15D74D4F308C07A9FF50DFDA2A0736D9 /* Pods-SwiftDataTables_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "Pods-SwiftDataTables_Example.modulemap"; sourceTree = ""; }; 18346C82D017A21FF2D24B18D2A19F96 /* DSL.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DSL.swift; path = Sources/Quick/DSL/DSL.swift; sourceTree = ""; }; 18B3638F5AD13E6EBCB7FBA837D1D5AD /* Pods-SwiftDataTables_Tests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-SwiftDataTables_Tests-acknowledgements.markdown"; sourceTree = ""; }; 1927B151D5046BC3FA820B58EA5DFC21 /* NMBStringify.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NMBStringify.h; path = Sources/NimbleObjectiveC/NMBStringify.h; sourceTree = ""; }; 19F5E05678A777D0D5B47DED76525135 /* SuiteHooks.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SuiteHooks.swift; path = Sources/Quick/Hooks/SuiteHooks.swift; sourceTree = ""; }; + 1AD804FA3D8F3F6364A5D9D007B80856 /* SwiftDataTable+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "SwiftDataTable+Extensions.swift"; sourceTree = ""; }; 1D5AB00D217C687CB83AE825D8B15F32 /* CwlCatchBadInstruction.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CwlCatchBadInstruction.swift; path = Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstruction.swift; sourceTree = ""; }; - 1DDF2057E3F22DCB9C7A6D4A6FC28DF5 /* DataCellRowRepresentable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DataCellRowRepresentable.swift; sourceTree = ""; }; 1E91D3D71D09F9D765DA1760C4501113 /* NMBExpectation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NMBExpectation.swift; path = Sources/Nimble/Adapters/NMBExpectation.swift; sourceTree = ""; }; - 1F38014839DEEA1DA698E6AE364A8D18 /* column-sort-ascending.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "column-sort-ascending.png"; sourceTree = ""; }; 1F48368B8248E6DE7D078A59E62077BD /* MatcherProtocols.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MatcherProtocols.swift; path = Sources/Nimble/Matchers/MatcherProtocols.swift; sourceTree = ""; }; - 2141D295178DD08FD8962A61C87239FB /* MenuLengthHeaderViewModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MenuLengthHeaderViewModel.swift; sourceTree = ""; }; 22BCD65F3423C0A520456A9B100A882D /* FBSnapshotTestCasePlatform.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSnapshotTestCasePlatform.h; path = FBSnapshotTestCase/FBSnapshotTestCasePlatform.h; sourceTree = ""; }; 23871FC25FD3F6C0A3F65DA3F345605D /* CwlCatchBadInstruction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CwlCatchBadInstruction.m; path = Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstruction.m; sourceTree = ""; }; - 240DE55DD00EE42216C8377FFAFD2AD9 /* Pods_SwiftDataTables_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_SwiftDataTables_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 25CFB5E67138CBEFC7694CD22302F5D8 /* DataTableSortable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DataTableSortable.swift; sourceTree = ""; }; + 240DE55DD00EE42216C8377FFAFD2AD9 /* Pods_SwiftDataTables_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_SwiftDataTables_Tests.framework; path = "Pods-SwiftDataTables_Tests.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + 24C5B75DC8BB1D3AC33E13F348A6FD17 /* DataStore.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DataStore.swift; sourceTree = ""; }; 29529D22A36CCD1CF3C8A3E37CF8AA82 /* SwiftDataTables-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SwiftDataTables-dummy.m"; sourceTree = ""; }; 2C503C68EA53D4FC640377289AAFC5E1 /* DSL.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DSL.swift; path = Sources/Nimble/DSL.swift; sourceTree = ""; }; 2CD7DB8C4496F3D1DB3710A3D48A3D60 /* Example.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Example.swift; path = Sources/Quick/Example.swift; sourceTree = ""; }; @@ -284,70 +278,74 @@ 33462704076851C1B758B976F53B9A0C /* Pods-SwiftDataTables_Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-SwiftDataTables_Example-frameworks.sh"; sourceTree = ""; }; 33F2E1C895B9FEB6EB2A77B733A54E01 /* HooksPhase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HooksPhase.swift; path = Sources/Quick/Hooks/HooksPhase.swift; sourceTree = ""; }; 384C6C6A4148C520C98D0600D7393727 /* Pods-SwiftDataTables_Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-SwiftDataTables_Example-dummy.m"; sourceTree = ""; }; - 39300992EDA6A15FDBA1BDBEBD542709 /* Nimble-Snapshots.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Nimble-Snapshots.modulemap"; sourceTree = ""; }; + 39300992EDA6A15FDBA1BDBEBD542709 /* Nimble-Snapshots.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "Nimble-Snapshots.modulemap"; sourceTree = ""; }; 396D3B52F501B58F711A7301DAD62C34 /* SwiftDataTables-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SwiftDataTables-prefix.pch"; sourceTree = ""; }; 3CC4698961C3BFC187A9932973FDBA01 /* Pods-SwiftDataTables_Tests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-SwiftDataTables_Tests-umbrella.h"; sourceTree = ""; }; + 3CFE8D2B2475153C3B82873CBD1500D5 /* DataCellViewModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DataCellViewModel.swift; sourceTree = ""; }; + 3D230D9B285E4DB6BE57283D0DA369B9 /* CollectionViewSupplementaryElementRepresentable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CollectionViewSupplementaryElementRepresentable.swift; sourceTree = ""; }; 3D50F32074CE8DCF1783E1B0AD0D182A /* Match.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Match.swift; path = Sources/Nimble/Matchers/Match.swift; sourceTree = ""; }; + 3F51A0022452EF1EFD995A3C901C8035 /* DataHeaderFooter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DataHeaderFooter.swift; sourceTree = ""; }; 3FCF927BF691F6711D8A34DA24DE0727 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 4060623E8D8F3EE8E50EE7AA6B799D56 /* VirtualPositionTrackable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = VirtualPositionTrackable.swift; sourceTree = ""; }; 42DF73EC8589FCD2BADF5534F8DD5D57 /* BeGreaterThanOrEqualTo.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeGreaterThanOrEqualTo.swift; path = Sources/Nimble/Matchers/BeGreaterThanOrEqualTo.swift; sourceTree = ""; }; 466B5734B8571AC44718C371C80CE5A6 /* NimbleXCTestHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NimbleXCTestHandler.swift; path = Sources/Nimble/Adapters/NimbleXCTestHandler.swift; sourceTree = ""; }; 4707081A3F287021C3E570AE00D4C050 /* BeLessThanOrEqual.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeLessThanOrEqual.swift; path = Sources/Nimble/Matchers/BeLessThanOrEqual.swift; sourceTree = ""; }; 4846C1280F7FCC383265584085BAB875 /* AdapterProtocols.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AdapterProtocols.swift; path = Sources/Nimble/Adapters/AdapterProtocols.swift; sourceTree = ""; }; 4875524ECD78E9ACEF576D5279C9DACE /* Nimble-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Nimble-umbrella.h"; sourceTree = ""; }; - 493EBDDF596CFF92A51589B4299D6048 /* mach_excServer.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = mach_excServer.c; path = Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/mach_excServer.c; sourceTree = ""; }; + 493EBDDF596CFF92A51589B4299D6048 /* mach_excServer.c */ = {isa = PBXFileReference; includeInIndex = 1; name = mach_excServer.c; path = Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/mach_excServer.c; sourceTree = ""; }; 495C87861F8169FE19E98B6149F6C455 /* Nimble-Snapshots-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Nimble-Snapshots-prefix.pch"; sourceTree = ""; }; 4A73BFE6363E58209795B79CE6BC0335 /* ThrowAssertion.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ThrowAssertion.swift; path = Sources/Nimble/Matchers/ThrowAssertion.swift; sourceTree = ""; }; - 4A7A00092F7F68FE9EB3EDD8772E3635 /* SwiftDataTables.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = SwiftDataTables.modulemap; sourceTree = ""; }; + 4A7A00092F7F68FE9EB3EDD8772E3635 /* SwiftDataTables.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = SwiftDataTables.modulemap; sourceTree = ""; }; 4AF636A6C261B4B22000184FC87CE66A /* Pods-SwiftDataTables_Example-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-SwiftDataTables_Example-resources.sh"; sourceTree = ""; }; 4C6633CEA203AB2C103DE07E821BF70B /* FBSnapshotTestController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSnapshotTestController.h; path = FBSnapshotTestCase/FBSnapshotTestController.h; sourceTree = ""; }; - 4DFA97D9BCE027AACC1E692E9F532D16 /* column-sort-unspecified.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "column-sort-unspecified.png"; sourceTree = ""; }; 4F077BF65ADAB96D26191001735CF8A2 /* ExampleHooks.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExampleHooks.swift; path = Sources/Quick/Hooks/ExampleHooks.swift; sourceTree = ""; }; 4F58095B435083E123FE763D0A51D495 /* FBSnapshotTestCase-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "FBSnapshotTestCase-dummy.m"; sourceTree = ""; }; 515787726F972CD10EF3AB251F3D2362 /* Expectation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Expectation.swift; path = Sources/Nimble/Expectation.swift; sourceTree = ""; }; - 51CF77072ED023933B112C24142CD886 /* CollectionViewSupplementaryElementRepresentable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CollectionViewSupplementaryElementRepresentable.swift; sourceTree = ""; }; 5277C1C4F649828D9CEE62AF4D307B53 /* Pods-SwiftDataTables_Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-SwiftDataTables_Example-umbrella.h"; sourceTree = ""; }; 55143EF0DEF159DDD063FA42B7D12153 /* DSL+Wait.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "DSL+Wait.swift"; path = "Sources/Nimble/DSL+Wait.swift"; sourceTree = ""; }; - 5543FEC93A3F0E92AEB36F0150365854 /* Pods_SwiftDataTables_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_SwiftDataTables_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 5543FEC93A3F0E92AEB36F0150365854 /* Pods_SwiftDataTables_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_SwiftDataTables_Example.framework; path = "Pods-SwiftDataTables_Example.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; 56D1793E15813EC733B46E6884FEEA74 /* FBSnapshotTestCase.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSnapshotTestCase.m; path = FBSnapshotTestCase/FBSnapshotTestCase.m; sourceTree = ""; }; 57E169877FF59447D4182C1989BF0B59 /* NimbleEnvironment.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NimbleEnvironment.swift; path = Sources/Nimble/Adapters/NimbleEnvironment.swift; sourceTree = ""; }; 580D06054A96A8B0038E6CFFD5A5743D /* UIImage+Snapshot.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+Snapshot.h"; path = "FBSnapshotTestCase/Categories/UIImage+Snapshot.h"; sourceTree = ""; }; + 58396C00E501273D8D517F4680C5497B /* DataCell.xib */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.xib; path = DataCell.xib; sourceTree = ""; }; 5AD55F3974939097556240403DEE2DFF /* Nimble.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Nimble.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 5CBE07CBEF0A9F6D1115A9DCD2EEA50C /* column-sort-ascending.png */ = {isa = PBXFileReference; includeInIndex = 1; path = "column-sort-ascending.png"; sourceTree = ""; }; 5CC515501BE842CB008E9B937E323800 /* HaveValidSnapshot.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = HaveValidSnapshot.swift; sourceTree = ""; }; - 5E03864D4E5038802D89293B2EFD7933 /* CollectionViewCellRepresentable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CollectionViewCellRepresentable.swift; sourceTree = ""; }; 5F8012AD8A72934F350BDA8C90157813 /* UIImage+Diff.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+Diff.h"; path = "FBSnapshotTestCase/Categories/UIImage+Diff.h"; sourceTree = ""; }; + 5FE39D66642A56668EE1C80FE219DEBC /* DataHeaderFooter.xib */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.xib; path = DataHeaderFooter.xib; sourceTree = ""; }; 5FEA4B7E2BD931E1785D5FC2F9A67DE9 /* EndWith.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EndWith.swift; path = Sources/Nimble/Matchers/EndWith.swift; sourceTree = ""; }; + 5FF66442B3706F72C3360B21A22E47D8 /* MenuLengthHeaderViewModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MenuLengthHeaderViewModel.swift; sourceTree = ""; }; 6257107A1A729D6814F643FFF44ABA6E /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.0.sdk/System/Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; 64DF2E04EDA323EE4B83913F112D1497 /* DSL.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DSL.m; path = Sources/NimbleObjectiveC/DSL.m; sourceTree = ""; }; 653859AE7243293D15353BAEBA55CA28 /* Quick-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Quick-umbrella.h"; sourceTree = ""; }; 68C2953A942F774F4EBD3FBA94996D98 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 692C83EA7BDB5F20630C8A087F6D4189 /* DataHeaderFooterViewModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DataHeaderFooterViewModel.swift; sourceTree = ""; }; 6A75CD2BBED6DBFEC2C162C0CB9CA5FC /* XCTestObservationCenter+Register.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "XCTestObservationCenter+Register.m"; path = "Sources/NimbleObjectiveC/XCTestObservationCenter+Register.m"; sourceTree = ""; }; - 6B899A6FF3E66923F3240514BAB0C88F /* DataStructureModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DataStructureModel.swift; sourceTree = ""; }; 6BF4FCFD654088933CAD87C7031489CB /* NMBObjCMatcher.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NMBObjCMatcher.swift; path = Sources/Nimble/Adapters/NMBObjCMatcher.swift; sourceTree = ""; }; 6C704810C5F00D4C1AE79FA0F63432B0 /* CwlCatchException.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CwlCatchException.m; path = Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException/CwlCatchException.m; sourceTree = ""; }; 6C9691BC7DD2332650A7C903F0DD3FCA /* AllPass.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AllPass.swift; path = Sources/Nimble/Matchers/AllPass.swift; sourceTree = ""; }; - 6D3C6D32637623815FB4AF6B9BD12B08 /* MenuLengthHeader.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MenuLengthHeader.swift; sourceTree = ""; }; 6DA5B2C8979332693562BDAE9569DE4C /* MatcherFunc.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MatcherFunc.swift; path = Sources/Nimble/Matchers/MatcherFunc.swift; sourceTree = ""; }; 6F22D667453265DAB968FBDAF1B553D8 /* QuickSpec.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QuickSpec.h; path = Sources/QuickObjectiveC/QuickSpec.h; sourceTree = ""; }; + 6F5F6B5F09B6B3170BEF01CA41B2823A /* CollectionViewCellRepresentable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CollectionViewCellRepresentable.swift; sourceTree = ""; }; 6F92D18D334AFAB748255A0C89FCA46B /* MatchError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MatchError.swift; path = Sources/Nimble/Matchers/MatchError.swift; sourceTree = ""; }; - 7056D4F252D7AB93A9A1474D65939562 /* SwiftDataTableFlowLayout.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SwiftDataTableFlowLayout.swift; sourceTree = ""; }; + 70B187106D06C52BCE59600E80CACA8E /* PaginationHeader.xib */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.xib; path = PaginationHeader.xib; sourceTree = ""; }; 7126CA3B2AD0340024232DE33971817D /* NSString+QCKSelectorName.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+QCKSelectorName.m"; path = "Sources/QuickObjectiveC/NSString+QCKSelectorName.m"; sourceTree = ""; }; 7151F48AD847BF31ED71E00140349933 /* NimbleSnapshotsConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = NimbleSnapshotsConfiguration.swift; sourceTree = ""; }; 730E354240A74426E0EAF1566F9F96EB /* ErrorUtility.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ErrorUtility.swift; path = Sources/Quick/ErrorUtility.swift; sourceTree = ""; }; 73E22285CF26946E7AD06B00512B3C37 /* SwiftDataTables.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SwiftDataTables.xcconfig; sourceTree = ""; }; 7510C71C3B6495347C01469BB81376A6 /* ExampleMetadata.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExampleMetadata.swift; path = Sources/Quick/ExampleMetadata.swift; sourceTree = ""; }; - 755F9D30DB560296D234E1CC7BF32C7B /* DataCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DataCell.swift; sourceTree = ""; }; + 7545976213A79CF058DF04F103DA13F5 /* DataTableConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DataTableConfiguration.swift; sourceTree = ""; }; + 758C2C1E7462638527091ADC27FBC27E /* DataTableSortable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DataTableSortable.swift; sourceTree = ""; }; 77FCE7AAEC3AB0B69D0D0F1E47526A55 /* Pods-SwiftDataTables_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-SwiftDataTables_Example.debug.xcconfig"; sourceTree = ""; }; 78A14C8773B4B9CD3ADB324703A6D84D /* SwiftDataTables-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SwiftDataTables-umbrella.h"; sourceTree = ""; }; 79020B04FF6E7FDD4FE15AECD8DA69E3 /* BeVoid.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeVoid.swift; path = Sources/Nimble/Matchers/BeVoid.swift; sourceTree = ""; }; - 7B4B530F20BAA9612EDFB93379EC160E /* DataHeaderFooter.xib */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.xib; path = DataHeaderFooter.xib; sourceTree = ""; }; 7C45A6E3A25E698F2E2AA157150B9231 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 7CD548E01AB1C82543F72FC3ACDE740B /* SwiftDataTables.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; path = SwiftDataTables.bundle; sourceTree = ""; }; - 7DDBC8E95DD0B0833A7DBF2104BEC105 /* DataTableSortType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DataTableSortType.swift; sourceTree = ""; }; + 7DBB33DAE7B794564F6FA560075614C8 /* MenuLengthHeader.xib */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.xib; path = MenuLengthHeader.xib; sourceTree = ""; }; 7EB9685CE2F44160E003CBE369BC12D1 /* RaisesException.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RaisesException.swift; path = Sources/Nimble/Matchers/RaisesException.swift; sourceTree = ""; }; 7EF60AC0AF9A8589E5BD931EAC70C737 /* World.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = World.swift; path = Sources/Quick/World.swift; sourceTree = ""; }; 80EFFBC331D7B75C7689F478B728663E /* Pods-SwiftDataTables_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-SwiftDataTables_Example.release.xcconfig"; sourceTree = ""; }; 814044D9DC540957290C399CB1D970D1 /* FBSnapshotTestCase.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSnapshotTestCase.h; path = FBSnapshotTestCase/FBSnapshotTestCase.h; sourceTree = ""; }; + 81A1BB62F579338FB5B3D1B46593C516 /* PaginationHeader.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PaginationHeader.swift; sourceTree = ""; }; 820F9D392E1638DA2DC01DFEECAE0400 /* NMBStringify.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NMBStringify.m; path = Sources/NimbleObjectiveC/NMBStringify.m; sourceTree = ""; }; 8345849CAFBED9EEDE92E26A20C0A6F5 /* mach_excServer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mach_excServer.h; path = Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/mach_excServer.h; sourceTree = ""; }; 843C71B76BF6333F7E3BC21CF4790615 /* Functional.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Functional.swift; path = Sources/Nimble/Utils/Functional.swift; sourceTree = ""; }; @@ -355,48 +353,44 @@ 86FA0E63F942A371F612D17FC46F527F /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 87CF70DA6913C74B478980A07C7D4C14 /* BeNil.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeNil.swift; path = Sources/Nimble/Matchers/BeNil.swift; sourceTree = ""; }; 88ACCBB5E3910980D61E82E008DA4002 /* Quick.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Quick.xcconfig; sourceTree = ""; }; - 88B82656182572F88DCB8037D1BCC4E1 /* PaginationHeader.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PaginationHeader.swift; sourceTree = ""; }; 8B4F126DB4A59259CBDCC1F2A4A1990A /* QuickSpec.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QuickSpec.m; path = Sources/QuickObjectiveC/QuickSpec.m; sourceTree = ""; }; 8C36DB6F05615EC71278526272A72BAD /* Quick.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Quick.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 8C5D885FBC4688F9E021C43F6259202E /* DataCell.xib */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.xib; path = DataCell.xib; sourceTree = ""; }; 8C8CBBF32C39839511129EB1C04B4277 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - 8EB8C886623335C2232D9BF3501403EB /* DataCellViewModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DataCellViewModel.swift; sourceTree = ""; }; + 8EE1F7C243C8D194CB6C5DFC46CE2597 /* DataCellLayoutAttributes.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DataCellLayoutAttributes.swift; sourceTree = ""; }; 91B35075C2C09AD9E7FB16BE3C249DB9 /* XCTestSuite+QuickTestSuiteBuilder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "XCTestSuite+QuickTestSuiteBuilder.m"; path = "Sources/QuickObjectiveC/XCTestSuite+QuickTestSuiteBuilder.m"; sourceTree = ""; }; 93362A5E44184053D77B56304DD0F370 /* ThrowError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ThrowError.swift; path = Sources/Nimble/Matchers/ThrowError.swift; sourceTree = ""; }; - 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 94F61772FE7F69CAF6D3935270969868 /* World+DSL.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "World+DSL.h"; path = "Sources/QuickObjectiveC/DSL/World+DSL.h"; sourceTree = ""; }; 95BA53326633CC8E49D8BD5CE001D4F4 /* FBSnapshotTestCase-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FBSnapshotTestCase-prefix.pch"; sourceTree = ""; }; - 9625351C0850CAD9FA9F52E6EEE944D6 /* Nimble.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = Nimble.modulemap; sourceTree = ""; }; + 9625351C0850CAD9FA9F52E6EEE944D6 /* Nimble.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = Nimble.modulemap; sourceTree = ""; }; 96BA61587DF2343D7CA2E265F24EC09C /* FBSnapshotTestCase.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FBSnapshotTestCase.xcconfig; sourceTree = ""; }; + 96CB8888EBCDDEA599EB73C4DB608B5A /* DataCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DataCell.swift; sourceTree = ""; }; 9823197EA5904A9150FB0AD8B09841E6 /* FBSnapshotTestCase.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = FBSnapshotTestCase.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 9963EE7CC8E08B315A80570158907487 /* World.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = World.h; path = Sources/QuickObjectiveC/World.h; sourceTree = ""; }; 9ED7B23AEE06C44713BF4D8166463FD4 /* QCKDSL.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCKDSL.m; path = Sources/QuickObjectiveC/DSL/QCKDSL.m; sourceTree = ""; }; 9EFC3CB0C7C9BDE6158189DAA3FFBED5 /* Nimble-Snapshots-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Nimble-Snapshots-dummy.m"; sourceTree = ""; }; 9F2F853A85B8879EEB1CE2DC95B97EBC /* CwlCatchException.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CwlCatchException.swift; path = Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException/CwlCatchException.swift; sourceTree = ""; }; - 9FABAC60001A47C873F328A0D56472E2 /* FBSnapshotTestCase.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = FBSnapshotTestCase.modulemap; sourceTree = ""; }; + 9FABAC60001A47C873F328A0D56472E2 /* FBSnapshotTestCase.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = FBSnapshotTestCase.modulemap; sourceTree = ""; }; A0CCCF841830A407AA9D8BB9E8F07F5C /* PostNotification.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PostNotification.swift; path = Sources/Nimble/Matchers/PostNotification.swift; sourceTree = ""; }; - A1A5BD59DC61028CF8BFE9BA39665374 /* SwiftDataTable+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "SwiftDataTable+Extensions.swift"; sourceTree = ""; }; - A20791AAF2E0D828876018267DA3B5F0 /* DataStore.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DataStore.swift; sourceTree = ""; }; A213DB43C26C0FF24A69CFE61660387B /* Nimble-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Nimble-prefix.pch"; sourceTree = ""; }; A4A7D10DFC80274683FA6D5D7CB30045 /* Pods-SwiftDataTables_Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-SwiftDataTables_Tests-dummy.m"; sourceTree = ""; }; - A7BE48330356076F18E9FF51B3CD9DC5 /* column-sort-descending.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "column-sort-descending.png"; sourceTree = ""; }; A8B3330E9A86A20013F3ABF42BC342A2 /* QuickSelectedTestSuiteBuilder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = QuickSelectedTestSuiteBuilder.swift; path = Sources/Quick/QuickSelectedTestSuiteBuilder.swift; sourceTree = ""; }; A8B368409FE89D4D75FB9369398B388A /* Nimble-Snapshots.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Nimble-Snapshots.xcconfig"; sourceTree = ""; }; A9497FD77AFF9D1079B44445D1536828 /* Pods-SwiftDataTables_Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-SwiftDataTables_Example-acknowledgements.markdown"; sourceTree = ""; }; ABA451463938AAC29772A9BA4A644712 /* UIImage+Compare.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+Compare.m"; path = "FBSnapshotTestCase/Categories/UIImage+Compare.m"; sourceTree = ""; }; AD81E3B1B8900A13D8DCEFC7FBC89C51 /* BeIdenticalTo.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeIdenticalTo.swift; path = Sources/Nimble/Matchers/BeIdenticalTo.swift; sourceTree = ""; }; - ADC05C3D0B613A47D0E19F012D9C1F87 /* PaginationHeader.xib */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.xib; path = PaginationHeader.xib; sourceTree = ""; }; - AE3FA8C289BB2B0213DFCD9351E770DC /* Pods-SwiftDataTables_Tests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Pods-SwiftDataTables_Tests.modulemap"; sourceTree = ""; }; + AE3FA8C289BB2B0213DFCD9351E770DC /* Pods-SwiftDataTables_Tests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "Pods-SwiftDataTables_Tests.modulemap"; sourceTree = ""; }; AE95FD22040B2F419CA820D80377A6FA /* Callsite.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Callsite.swift; path = Sources/Quick/Callsite.swift; sourceTree = ""; }; AF56BECC3FEF842A4B13280D5BC5FE11 /* Closures.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Closures.swift; path = Sources/Quick/Hooks/Closures.swift; sourceTree = ""; }; B0BDDFCA6435FEF025A8AA771C018452 /* UIApplication+StrictKeyWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIApplication+StrictKeyWindow.h"; path = "FBSnapshotTestCase/Categories/UIApplication+StrictKeyWindow.h"; sourceTree = ""; }; B0E67650E7214DCE853B31771FB5FEF5 /* AssertionRecorder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AssertionRecorder.swift; path = Sources/Nimble/Adapters/AssertionRecorder.swift; sourceTree = ""; }; B1906C2EEC74D3F756324E96F610273D /* URL+FileName.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "URL+FileName.swift"; path = "Sources/Quick/URL+FileName.swift"; sourceTree = ""; }; - B35C197F77731EF4FACC5E8C2355E5D1 /* SwiftDataTables.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SwiftDataTables.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - B40E59D5AB481F936FB0B7AEA50B1C83 /* DataCellLayoutAttributes.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DataCellLayoutAttributes.swift; sourceTree = ""; }; + B35C197F77731EF4FACC5E8C2355E5D1 /* SwiftDataTables.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = SwiftDataTables.framework; path = SwiftDataTables.framework; sourceTree = BUILT_PRODUCTS_DIR; }; B419C0F352F8E79D519735CEEBC3F5E2 /* HaveCount.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HaveCount.swift; path = Sources/Nimble/Matchers/HaveCount.swift; sourceTree = ""; }; B4F8491C368290A8B20C9EF13A6C6EE6 /* BeGreaterThan.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeGreaterThan.swift; path = Sources/Nimble/Matchers/BeGreaterThan.swift; sourceTree = ""; }; + B6B09B046705E533AEAE674DAD999AE2 /* DataStructureModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DataStructureModel.swift; sourceTree = ""; }; B82C7AA48F705507E47A21AD8E10484F /* Equal.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Equal.swift; path = Sources/Nimble/Matchers/Equal.swift; sourceTree = ""; }; + B8A3C43C936854AC7B9E3E96FBAFFFB3 /* DataCellRowRepresentable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DataCellRowRepresentable.swift; sourceTree = ""; }; BBB1CC5D92DC46FF22448782CCC44E1D /* Nimble.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Nimble.h; path = Sources/Nimble/Nimble.h; sourceTree = ""; }; BC0FD0FEE4B07056B1C991A1EC970739 /* Pods-SwiftDataTables_Tests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-SwiftDataTables_Tests-frameworks.sh"; sourceTree = ""; }; BCEB37B89B355A11349E00B4B0C904E7 /* CwlCatchException.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CwlCatchException.h; path = Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException/CwlCatchException.h; sourceTree = ""; }; @@ -407,24 +401,29 @@ C098EE9572B95825B622EAA7BFB4731C /* Async.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Async.swift; path = Sources/Nimble/Utils/Async.swift; sourceTree = ""; }; C176F393E5F2D0693CCCCA47B405EA01 /* CwlCatchBadInstruction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CwlCatchBadInstruction.h; path = Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstruction.h; sourceTree = ""; }; C2770AEF977D9751DB909937B4E13AF1 /* UIImage+Snapshot.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+Snapshot.m"; path = "FBSnapshotTestCase/Categories/UIImage+Snapshot.m"; sourceTree = ""; }; + C51B1CBE13F43FCA0ED53371BD6546BA /* column-sort-unspecified.png */ = {isa = PBXFileReference; includeInIndex = 1; path = "column-sort-unspecified.png"; sourceTree = ""; }; + C5ED1D2C95803E58A72D6699C4F0DC03 /* column-sort-descending.png */ = {isa = PBXFileReference; includeInIndex = 1; path = "column-sort-descending.png"; sourceTree = ""; }; CA570EBAAA31239A6305CFD1BA04587C /* Expression.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Expression.swift; path = Sources/Nimble/Expression.swift; sourceTree = ""; }; CCDCED103BFD74EDA9864A6F526C685B /* BeCloseTo.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeCloseTo.swift; path = Sources/Nimble/Matchers/BeCloseTo.swift; sourceTree = ""; }; CDD5CEC74296B67DA0E45D00465A3C67 /* FBSnapshotTestCasePlatform.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSnapshotTestCasePlatform.m; path = FBSnapshotTestCase/FBSnapshotTestCasePlatform.m; sourceTree = ""; }; - CEBEFDA604D2C97391E06EFF59430FFC /* DataHeaderFooter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DataHeaderFooter.swift; sourceTree = ""; }; D2C50F93E3FF19DF9139E95FCA488BA4 /* Pods-SwiftDataTables_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-SwiftDataTables_Tests.debug.xcconfig"; sourceTree = ""; }; + D33697A87B8F44DDE9797AA32060CD8B /* PaginationHeaderViewModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PaginationHeaderViewModel.swift; sourceTree = ""; }; D43F5D818152EC8734F94D83F6CB632A /* Filter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Filter.swift; path = Sources/Quick/Filter.swift; sourceTree = ""; }; D4DD3A78EA1ED665AB5B536675F79D11 /* Stringers.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Stringers.swift; path = Sources/Nimble/Utils/Stringers.swift; sourceTree = ""; }; D5C1E27C8CE0AFBE69F80EEC5A72348C /* SatisfyAnyOf.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SatisfyAnyOf.swift; path = Sources/Nimble/Matchers/SatisfyAnyOf.swift; sourceTree = ""; }; + D6E801D8109B27ABF2C29EB0C82DCF8C /* SwiftDataTable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SwiftDataTable.swift; sourceTree = ""; }; + DA0A3B002A6F00B48748D52241622DCE /* SwiftDataTableFlowLayout.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SwiftDataTableFlowLayout.swift; sourceTree = ""; }; DA5B451D8364D107582FF70E5FA71C65 /* Quick-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Quick-prefix.pch"; sourceTree = ""; }; + DA7ECB32F073B7A01296671D9C29E01C /* DataTableValueType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DataTableValueType.swift; sourceTree = ""; }; DB26733A19DEE294A032B66575C90AEA /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - DBFB9A9C359ECEFE88F0539EFCF829D9 /* FBSnapshotTestCase.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = FBSnapshotTestCase.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + DBFB9A9C359ECEFE88F0539EFCF829D9 /* FBSnapshotTestCase.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = FBSnapshotTestCase.framework; path = FBSnapshotTestCase.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + DC435B597A1AB28EFC1D91289A40A4E6 /* MenuLengthHeader.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MenuLengthHeader.swift; sourceTree = ""; }; DC57DA19B7547061C4391AEE40D7AB91 /* QuickConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QuickConfiguration.h; path = Sources/QuickObjectiveC/Configuration/QuickConfiguration.h; sourceTree = ""; }; DC664780D8DFF8970DA8994D41CCF9B2 /* NMBExceptionCapture.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NMBExceptionCapture.h; path = Sources/NimbleObjectiveC/NMBExceptionCapture.h; sourceTree = ""; }; DD489E28B0C02C490FE97D19B2868DB7 /* QuickTestSuite.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = QuickTestSuite.swift; path = Sources/Quick/QuickTestSuite.swift; sourceTree = ""; }; DD957622A3C0DB785B9C02722820AEF2 /* ExampleGroup.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExampleGroup.swift; path = Sources/Quick/ExampleGroup.swift; sourceTree = ""; }; DF49BDFF61F7EDC15478F187293020F3 /* Configuration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Configuration.swift; path = Sources/Quick/Configuration/Configuration.swift; sourceTree = ""; }; E024920AB8586A368B7A80B2476E9E8D /* CwlBadInstructionException.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CwlBadInstructionException.swift; path = Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlBadInstructionException.swift; sourceTree = ""; }; - E3595D6906633B4290F93E1CCFD4AE48 /* PaginationHeaderViewModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PaginationHeaderViewModel.swift; sourceTree = ""; }; E4C4B015314BBB05168BA389FF2D0CA4 /* UIImage+Diff.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+Diff.m"; path = "FBSnapshotTestCase/Categories/UIImage+Diff.m"; sourceTree = ""; }; E62B08603E00709D2E2462B0FCCBBF61 /* Quick-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Quick-dummy.m"; sourceTree = ""; }; EB646F5C3AD648D54BA7807757A438B3 /* NSBundle+CurrentTestBundle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSBundle+CurrentTestBundle.swift"; path = "Sources/Quick/NSBundle+CurrentTestBundle.swift"; sourceTree = ""; }; @@ -435,16 +434,17 @@ F1E6C461F1C5604D58CFD9E8581D3A94 /* Pods-SwiftDataTables_Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-SwiftDataTables_Example-acknowledgements.plist"; sourceTree = ""; }; F31CF5F8D4CD212CEEBCE9658B34CAA9 /* World+DSL.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "World+DSL.swift"; path = "Sources/Quick/DSL/World+DSL.swift"; sourceTree = ""; }; F3696EC637DC2B4E0D9042A916287FDF /* DSL.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DSL.h; path = Sources/NimbleObjectiveC/DSL.h; sourceTree = ""; }; - F3AA969B93F59D7F3C6F072F2A131187 /* Quick.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Quick.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + F3AA969B93F59D7F3C6F072F2A131187 /* Quick.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Quick.framework; path = Quick.framework; sourceTree = BUILT_PRODUCTS_DIR; }; F4C3776AEE672BA0788E6A1E5CEE93B2 /* PrettySyntax.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PrettySyntax.swift; sourceTree = ""; }; F59D049190E109365BF9BA6BF1409B7F /* BeLessThan.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeLessThan.swift; path = Sources/Nimble/Matchers/BeLessThan.swift; sourceTree = ""; }; F62481E1600B58F612F67D19918378A8 /* Quick.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Quick.h; path = Sources/QuickObjectiveC/Quick.h; sourceTree = ""; }; - F744B5BE4FF7C4AC93070FD703DEEEF2 /* Nimble.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Nimble.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - F86CA1DF8958576E21577E5F137907B2 /* Quick.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = Quick.modulemap; sourceTree = ""; }; + F744B5BE4FF7C4AC93070FD703DEEEF2 /* Nimble.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Nimble.framework; path = Nimble.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + F86CA1DF8958576E21577E5F137907B2 /* Quick.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = Quick.modulemap; sourceTree = ""; }; FA68CDEB565662C3E1B336DB7D1493CA /* UIApplication+StrictKeyWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIApplication+StrictKeyWindow.m"; path = "FBSnapshotTestCase/Categories/UIApplication+StrictKeyWindow.m"; sourceTree = ""; }; FB581661953B50A6C707A77A53A29B1F /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.0.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; FC3F6290B83976335DAD42ABA1099D45 /* Nimble-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Nimble-dummy.m"; sourceTree = ""; }; FD1F32B8DCF598ED9E3BDF343E4C8A91 /* AsyncMatcherWrapper.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AsyncMatcherWrapper.swift; path = Sources/Nimble/Matchers/AsyncMatcherWrapper.swift; sourceTree = ""; }; + FD3A7ED43AABB75248525A0E205BDAE4 /* DataTableSortType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DataTableSortType.swift; sourceTree = ""; }; FD7A4AD39E55980AD6756E73FBCE477D /* BeAKindOf.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeAKindOf.swift; path = Sources/Nimble/Matchers/BeAKindOf.swift; sourceTree = ""; }; FE57DCFD282C11F6A1F3C938D6B6E221 /* BeAnInstanceOf.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeAnInstanceOf.swift; path = Sources/Nimble/Matchers/BeAnInstanceOf.swift; sourceTree = ""; }; /* End PBXFileReference section */ @@ -531,27 +531,6 @@ path = "../Target Support Files/Nimble"; sourceTree = ""; }; - 15D48566D49491380BE85916D7FE8FA6 /* Classes */ = { - isa = PBXGroup; - children = ( - A20791AAF2E0D828876018267DA3B5F0 /* DataStore.swift */, - 6B899A6FF3E66923F3240514BAB0C88F /* DataStructureModel.swift */, - 0E57FF7D2327A8EEB09FF0552D0999B3 /* DataTableConfiguration.swift */, - 25CFB5E67138CBEFC7694CD22302F5D8 /* DataTableSortable.swift */, - 7DDBC8E95DD0B0833A7DBF2104BEC105 /* DataTableSortType.swift */, - 0596A5858DC69D0EF61B17F97FC18F4B /* SwiftDataTable.swift */, - 7056D4F252D7AB93A9A1474D65939562 /* SwiftDataTableFlowLayout.swift */, - A7ACD110E0BAF6C2331ABAD0BE96B18D /* DataCell */, - B449DCD4D90FB3BC58F9757FFA6C33BC /* Extensions */, - 2D9A2F9F871FDD139E64328CC3BAF55C /* HeaderFooter */, - 6FDF97CDED25ACF6BCA86B6217777CE9 /* MenuLengthHeader */, - C124E78D3AE284780ADA4CACE7687EFE /* PaginationHeader */, - E438F0155AB139BEDE8F5648372A4383 /* Protocols */, - 051344681E75CA51000350FF /* DataTableValueType.swift */, - ); - path = Classes; - sourceTree = ""; - }; 1BA88B309FCAC0B2454CD7E2531270B5 /* iOS */ = { isa = PBXGroup; children = ( @@ -581,16 +560,6 @@ path = "Target Support Files/Pods-SwiftDataTables_Example"; sourceTree = ""; }; - 2D9A2F9F871FDD139E64328CC3BAF55C /* HeaderFooter */ = { - isa = PBXGroup; - children = ( - CEBEFDA604D2C97391E06EFF59430FFC /* DataHeaderFooter.swift */, - 7B4B530F20BAA9612EDFB93379EC160E /* DataHeaderFooter.xib */, - 0FDE86EEC1288DF7AB5612C6C34CD702 /* DataHeaderFooterViewModel.swift */, - ); - path = HeaderFooter; - sourceTree = ""; - }; 3238DB3638800A6156387878EF7F4A0E /* Pods */ = { isa = PBXGroup; children = ( @@ -602,16 +571,6 @@ name = Pods; sourceTree = ""; }; - 3A48900A46C4401382A6CA34DA075232 /* SwiftDataTables.bundle */ = { - isa = PBXGroup; - children = ( - 1F38014839DEEA1DA698E6AE364A8D18 /* column-sort-ascending.png */, - A7BE48330356076F18E9FF51B3CD9DC5 /* column-sort-descending.png */, - 4DFA97D9BCE027AACC1E692E9F532D16 /* column-sort-unspecified.png */, - ); - path = SwiftDataTables.bundle; - sourceTree = ""; - }; 3A64E2BFA8BE00C9CAE63BE4DA4167F7 /* Support Files */ = { isa = PBXGroup; children = ( @@ -626,12 +585,35 @@ path = "../Target Support Files/FBSnapshotTestCase"; sourceTree = ""; }; + 3E0D795ABA8D0AA008CF45EBFE23D733 /* SwiftDataTables.bundle */ = { + isa = PBXGroup; + children = ( + 5CBE07CBEF0A9F6D1115A9DCD2EEA50C /* column-sort-ascending.png */, + C5ED1D2C95803E58A72D6699C4F0DC03 /* column-sort-descending.png */, + C51B1CBE13F43FCA0ED53371BD6546BA /* column-sort-unspecified.png */, + ); + name = SwiftDataTables.bundle; + path = SwiftDataTables.bundle; + sourceTree = ""; + }; + 457C12057ABCC332009AA524E13FA70B /* MenuLengthHeader */ = { + isa = PBXGroup; + children = ( + DC435B597A1AB28EFC1D91289A40A4E6 /* MenuLengthHeader.swift */, + 7DBB33DAE7B794564F6FA560075614C8 /* MenuLengthHeader.xib */, + 5FF66442B3706F72C3360B21A22E47D8 /* MenuLengthHeaderViewModel.swift */, + ); + name = MenuLengthHeader; + path = MenuLengthHeader; + sourceTree = ""; + }; 52045CD8B19561ADDB866E6452CF7DD6 /* Nimble-Snapshots */ = { isa = PBXGroup; children = ( 55AB7748C705A156CFE476497F6BE5CB /* Core */, C6262FCF46052C8C9480585E842296FA /* Support Files */, ); + name = "Nimble-Snapshots"; path = "Nimble-Snapshots"; sourceTree = ""; }; @@ -652,25 +634,25 @@ 3A64E2BFA8BE00C9CAE63BE4DA4167F7 /* Support Files */, 8EBEDD7CDD38628083C1BAAC15789DE2 /* SwiftSupport */, ); + name = FBSnapshotTestCase; path = FBSnapshotTestCase; sourceTree = ""; }; - 6F3829022BF39FC6AAF751676A132072 /* Resources */ = { + 622366AF1820CF887AB0D17EAA765D1D /* Extensions */ = { isa = PBXGroup; children = ( - C0E85F095D6B95C898ABC4A065CE2698 /* SwiftDataTables */, + 1AD804FA3D8F3F6364A5D9D007B80856 /* SwiftDataTable+Extensions.swift */, ); - name = Resources; + name = Extensions; + path = Extensions; sourceTree = ""; }; - 6FDF97CDED25ACF6BCA86B6217777CE9 /* MenuLengthHeader */ = { + 6F3829022BF39FC6AAF751676A132072 /* Resources */ = { isa = PBXGroup; children = ( - 6D3C6D32637623815FB4AF6B9BD12B08 /* MenuLengthHeader.swift */, - 0559791336DC30B0E002EC449125333F /* MenuLengthHeader.xib */, - 2141D295178DD08FD8962A61C87239FB /* MenuLengthHeaderViewModel.swift */, + C0E85F095D6B95C898ABC4A065CE2698 /* SwiftDataTables */, ); - path = MenuLengthHeader; + name = Resources; sourceTree = ""; }; 7DB346D0F39D3F0E887471402A8071AB = { @@ -685,6 +667,28 @@ ); sourceTree = ""; }; + 7DEF21227A9E0A672F52277BE275EF9E /* Classes */ = { + isa = PBXGroup; + children = ( + 24C5B75DC8BB1D3AC33E13F348A6FD17 /* DataStore.swift */, + B6B09B046705E533AEAE674DAD999AE2 /* DataStructureModel.swift */, + 7545976213A79CF058DF04F103DA13F5 /* DataTableConfiguration.swift */, + 758C2C1E7462638527091ADC27FBC27E /* DataTableSortable.swift */, + FD3A7ED43AABB75248525A0E205BDAE4 /* DataTableSortType.swift */, + DA7ECB32F073B7A01296671D9C29E01C /* DataTableValueType.swift */, + D6E801D8109B27ABF2C29EB0C82DCF8C /* SwiftDataTable.swift */, + DA0A3B002A6F00B48748D52241622DCE /* SwiftDataTableFlowLayout.swift */, + 9DF386D91D557BC7C32220A418A3580F /* DataCell */, + 622366AF1820CF887AB0D17EAA765D1D /* Extensions */, + C6E7C30C3C108CF7210E29AF8F74BA51 /* HeaderFooter */, + 457C12057ABCC332009AA524E13FA70B /* MenuLengthHeader */, + E0138C9574692E135E92BA4D19C072BF /* PaginationHeader */, + DE208CE36A0B4FC548333CB6E7ED0ED8 /* Protocols */, + ); + name = Classes; + path = Classes; + sourceTree = ""; + }; 8558C28D56B0F1833537529A4873189A /* Targets Support Files */ = { isa = PBXGroup; children = ( @@ -734,23 +738,15 @@ path = "Target Support Files/Pods-SwiftDataTables_Tests"; sourceTree = ""; }; - 9F3E4547E84DDC9CECA479B05885610A /* SwiftDataTables */ = { + 9DF386D91D557BC7C32220A418A3580F /* DataCell */ = { isa = PBXGroup; children = ( - 15D48566D49491380BE85916D7FE8FA6 /* Classes */, - 3A48900A46C4401382A6CA34DA075232 /* SwiftDataTables.bundle */, - ); - path = SwiftDataTables; - sourceTree = ""; - }; - A7ACD110E0BAF6C2331ABAD0BE96B18D /* DataCell */ = { - isa = PBXGroup; - children = ( - 755F9D30DB560296D234E1CC7BF32C7B /* DataCell.swift */, - 8C5D885FBC4688F9E021C43F6259202E /* DataCell.xib */, - B40E59D5AB481F936FB0B7AEA50B1C83 /* DataCellLayoutAttributes.swift */, - 8EB8C886623335C2232D9BF3501403EB /* DataCellViewModel.swift */, + 96CB8888EBCDDEA599EB73C4DB608B5A /* DataCell.swift */, + 58396C00E501273D8D517F4680C5497B /* DataCell.xib */, + 8EE1F7C243C8D194CB6C5DFC46CE2597 /* DataCellLayoutAttributes.swift */, + 3CFE8D2B2475153C3B82873CBD1500D5 /* DataCellViewModel.swift */, ); + name = DataCell; path = DataCell; sourceTree = ""; }; @@ -779,20 +775,12 @@ name = Frameworks; sourceTree = ""; }; - B449DCD4D90FB3BC58F9757FFA6C33BC /* Extensions */ = { - isa = PBXGroup; - children = ( - A1A5BD59DC61028CF8BFE9BA39665374 /* SwiftDataTable+Extensions.swift */, - ); - path = Extensions; - sourceTree = ""; - }; B7171DEBFA788BC102839F52AEBCD24D /* SwiftDataTables */ = { isa = PBXGroup; children = ( 6F3829022BF39FC6AAF751676A132072 /* Resources */, 91F49031BEC3D2C49579FAEEDB8B6C71 /* Support Files */, - 9F3E4547E84DDC9CECA479B05885610A /* SwiftDataTables */, + EF49D79784EACE3A2D8180D71361BD1D /* SwiftDataTables */, ); name = SwiftDataTables; path = ../..; @@ -833,6 +821,7 @@ 91B35075C2C09AD9E7FB16BE3C249DB9 /* XCTestSuite+QuickTestSuiteBuilder.m */, D7F677C54186ADF4246082E159F709EF /* Support Files */, ); + name = Quick; path = Quick; sourceTree = ""; }; @@ -841,19 +830,10 @@ children = ( 7CD548E01AB1C82543F72FC3ACDE740B /* SwiftDataTables.bundle */, ); + name = SwiftDataTables; path = SwiftDataTables; sourceTree = ""; }; - C124E78D3AE284780ADA4CACE7687EFE /* PaginationHeader */ = { - isa = PBXGroup; - children = ( - 88B82656182572F88DCB8037D1BCC4E1 /* PaginationHeader.swift */, - ADC05C3D0B613A47D0E19F012D9C1F87 /* PaginationHeader.xib */, - E3595D6906633B4290F93E1CCFD4AE48 /* PaginationHeaderViewModel.swift */, - ); - path = PaginationHeader; - sourceTree = ""; - }; C6262FCF46052C8C9480585E842296FA /* Support Files */ = { isa = PBXGroup; children = ( @@ -868,6 +848,17 @@ path = "../Target Support Files/Nimble-Snapshots"; sourceTree = ""; }; + C6E7C30C3C108CF7210E29AF8F74BA51 /* HeaderFooter */ = { + isa = PBXGroup; + children = ( + 3F51A0022452EF1EFD995A3C901C8035 /* DataHeaderFooter.swift */, + 5FE39D66642A56668EE1C80FE219DEBC /* DataHeaderFooter.xib */, + 692C83EA7BDB5F20630C8A087F6D4189 /* DataHeaderFooterViewModel.swift */, + ); + name = HeaderFooter; + path = HeaderFooter; + sourceTree = ""; + }; C7943E716FA7D9813F93E632E83C7F67 /* Nimble */ = { isa = PBXGroup; children = ( @@ -937,6 +928,7 @@ 6A75CD2BBED6DBFEC2C162C0CB9CA5FC /* XCTestObservationCenter+Register.m */, 10435EF2FCF6FE3F3B8BBA9465426A73 /* Support Files */, ); + name = Nimble; path = Nimble; sourceTree = ""; }; @@ -954,17 +946,29 @@ path = "../Target Support Files/Quick"; sourceTree = ""; }; - E438F0155AB139BEDE8F5648372A4383 /* Protocols */ = { + DE208CE36A0B4FC548333CB6E7ED0ED8 /* Protocols */ = { isa = PBXGroup; children = ( - 5E03864D4E5038802D89293B2EFD7933 /* CollectionViewCellRepresentable.swift */, - 51CF77072ED023933B112C24142CD886 /* CollectionViewSupplementaryElementRepresentable.swift */, - 1DDF2057E3F22DCB9C7A6D4A6FC28DF5 /* DataCellRowRepresentable.swift */, - 4060623E8D8F3EE8E50EE7AA6B799D56 /* VirtualPositionTrackable.swift */, + 6F5F6B5F09B6B3170BEF01CA41B2823A /* CollectionViewCellRepresentable.swift */, + 3D230D9B285E4DB6BE57283D0DA369B9 /* CollectionViewSupplementaryElementRepresentable.swift */, + B8A3C43C936854AC7B9E3E96FBAFFFB3 /* DataCellRowRepresentable.swift */, + 09B4FE2CBBA7486FA032F19F7C6EC1D1 /* VirtualPositionTrackable.swift */, ); + name = Protocols; path = Protocols; sourceTree = ""; }; + E0138C9574692E135E92BA4D19C072BF /* PaginationHeader */ = { + isa = PBXGroup; + children = ( + 81A1BB62F579338FB5B3D1B46593C516 /* PaginationHeader.swift */, + 70B187106D06C52BCE59600E80CACA8E /* PaginationHeader.xib */, + D33697A87B8F44DDE9797AA32060CD8B /* PaginationHeaderViewModel.swift */, + ); + name = PaginationHeader; + path = PaginationHeader; + sourceTree = ""; + }; ECC106B502730C893BFACA908222F37B /* Core */ = { isa = PBXGroup; children = ( @@ -994,6 +998,16 @@ name = "Development Pods"; sourceTree = ""; }; + EF49D79784EACE3A2D8180D71361BD1D /* SwiftDataTables */ = { + isa = PBXGroup; + children = ( + 7DEF21227A9E0A672F52277BE275EF9E /* Classes */, + 3E0D795ABA8D0AA008CF45EBFE23D733 /* SwiftDataTables.bundle */, + ); + name = SwiftDataTables; + path = SwiftDataTables; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ @@ -1192,7 +1206,7 @@ isa = PBXNativeTarget; buildConfigurationList = E37FE4BE49E660A00455BBA146E635D8 /* Build configuration list for PBXNativeTarget "SwiftDataTables" */; buildPhases = ( - D911ECF2C14F72401FFB7CDB5D8B8C75 /* Sources */, + 2157F92E17631A4C1CA868A796384A80 /* Sources */, 5203177A10482D5BE9424CDDB4F41031 /* Frameworks */, FFFB985261598D8E39F3C5288C548319 /* Resources */, 2088B95A042860FA554F033730639BCD /* Headers */, @@ -1250,6 +1264,43 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ + 2157F92E17631A4C1CA868A796384A80 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FB1A49A5265FEF672D6190A5D46A937C /* CollectionViewCellRepresentable.swift in Sources */, + 155AF45595400F755AD7510330CE2E2D /* CollectionViewSupplementaryElementRepresentable.swift in Sources */, + 8F4CAE912203890EB984FE7D249E1647 /* column-sort-ascending.png in Sources */, + 2E26B4E84EFC5D6AD20E456938B92982 /* column-sort-descending.png in Sources */, + 8CD7C202E24196AC12F79C16FF4E6D87 /* column-sort-unspecified.png in Sources */, + FC2A9D3708B5820E0C0304E5EF1C14CD /* DataCell.swift in Sources */, + 35BC77868CC47151547D08C4BE923246 /* DataCell.xib in Sources */, + 04D3A2072D43BBF4D1BFDFD45F859226 /* DataCellLayoutAttributes.swift in Sources */, + FD73735DACD60D5B0A36E1A9CD3F8A0B /* DataCellRowRepresentable.swift in Sources */, + DE23705BA788F762AEC564940DC5B258 /* DataCellViewModel.swift in Sources */, + 0C4C3FD1B0C3881E2A7BA491A0E3CDE7 /* DataHeaderFooter.swift in Sources */, + AAB0D3BF1DCF998A416345AD0D3FA94A /* DataHeaderFooter.xib in Sources */, + 6D296F7C0DD65616E31298E40A4200C5 /* DataHeaderFooterViewModel.swift in Sources */, + C69882855206EA713FE1C6427851B34C /* DataStore.swift in Sources */, + 3C70FA40AE67C09E1DFA28AFC3DCC226 /* DataStructureModel.swift in Sources */, + 6A754488F2940DEE2BE0B4680D30B830 /* DataTableConfiguration.swift in Sources */, + 2AF491F84ACD4C8AFDBC5725149D67BB /* DataTableSortable.swift in Sources */, + 6BCD50C7C8D2AEFE81B6DC028BD64892 /* DataTableSortType.swift in Sources */, + 361C0FD3E09385E01C9851B26F2C61BE /* DataTableValueType.swift in Sources */, + 872F4A71132D099AEA08A1EA096F3D4C /* MenuLengthHeader.swift in Sources */, + AB8F247AEAD41BB1641A263D940D263C /* MenuLengthHeader.xib in Sources */, + 5CBA47C5F7B5145795D38A11F28FBC39 /* MenuLengthHeaderViewModel.swift in Sources */, + 62005E546AAD30CC92BAD45F5D788875 /* PaginationHeader.swift in Sources */, + C26D4DCB949EAFBCCAE561F9F62A736B /* PaginationHeader.xib in Sources */, + C864273AF5D17F7176186DAFEF19AB3D /* PaginationHeaderViewModel.swift in Sources */, + B5FDE273BF516D8426A0002E3CC2DB22 /* SwiftDataTable+Extensions.swift in Sources */, + FFAF529B34E378B0F1BA092DB2768A50 /* SwiftDataTable.swift in Sources */, + C17B750075715E03B148AC604FAEE825 /* SwiftDataTableFlowLayout.swift in Sources */, + 3C5F558833ACE66DDAD220135719D273 /* SwiftDataTables-dummy.m in Sources */, + 7E79D622172995458EE3F96123FBC676 /* VirtualPositionTrackable.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 3C4AABA28564F6F29FE8E3F38226690A /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -1361,42 +1412,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - D911ECF2C14F72401FFB7CDB5D8B8C75 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 29256368703C6C5691A5383A9F7EA94F /* CollectionViewCellRepresentable.swift in Sources */, - 60EA2AFB4E26C3F1D3EDAEB5EECD1B35 /* CollectionViewSupplementaryElementRepresentable.swift in Sources */, - 494A142F7EBBD56A076347BA1FF96644 /* column-sort-ascending.png in Sources */, - AB9719CA6465E4C17659FE0F9B88435D /* column-sort-descending.png in Sources */, - 086FBB88C86C24C3C7A6A9C211276734 /* column-sort-unspecified.png in Sources */, - C281314D9049ABE135C435146A776433 /* DataCell.swift in Sources */, - 80F44700FB3FAD5631EA99015F696CF0 /* DataCell.xib in Sources */, - C5F683BD1741A65F15E48F15C6A8158F /* DataCellLayoutAttributes.swift in Sources */, - 077F99C7AE125ABF0C0047716F680943 /* DataCellRowRepresentable.swift in Sources */, - F336183375A875502312CCC4C0FA59F6 /* DataCellViewModel.swift in Sources */, - FC74F800AE63DE369C6E86F95AED49D4 /* DataHeaderFooter.swift in Sources */, - 49AD1B687BC056E98E670C79033825AC /* DataHeaderFooter.xib in Sources */, - C673B41F6B455657DB5F675767C0DAA9 /* DataHeaderFooterViewModel.swift in Sources */, - DD78402AB6127C2A0ED909BF969EB9B7 /* DataStore.swift in Sources */, - 4D9EFE8CD5F2A0482652CDF93007E74C /* DataStructureModel.swift in Sources */, - E827637CA9ED245D376A7C43374CBB3F /* DataTableConfiguration.swift in Sources */, - AFE643E1A3B4E018B488B4BF2FA03123 /* DataTableSortable.swift in Sources */, - 102ED0594E47358CAF10F0B91A5AC245 /* DataTableSortType.swift in Sources */, - 0640AF66CA2850971146A85E311D6E21 /* MenuLengthHeader.swift in Sources */, - FEFB482B4DD00779F1F67CFA12C29AE1 /* MenuLengthHeader.xib in Sources */, - 5A46E66F50BE9140F94ED259C86ABB46 /* MenuLengthHeaderViewModel.swift in Sources */, - FBD47C785698E57587A1A603B94A2584 /* PaginationHeader.swift in Sources */, - 8BB178859482C49A65E3C0E5FF5A56B9 /* PaginationHeader.xib in Sources */, - 6EE0190B7DAA78BF3753643D2A10A122 /* PaginationHeaderViewModel.swift in Sources */, - A9EB2A8820C4AE7FBC8C0DEB850A1892 /* SwiftDataTable+Extensions.swift in Sources */, - 5E29B1B3040E2851FFEB9CA945D1C70C /* SwiftDataTable.swift in Sources */, - BA0B2E144928C6954CCFB3770482285C /* SwiftDataTableFlowLayout.swift in Sources */, - 8A20DBDED66FD708C0B5B99DBADD9AA5 /* SwiftDataTables-dummy.m in Sources */, - 9617C11C52D7C832471BE7012C55D2D9 /* VirtualPositionTrackable.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; E10EADE18F6082E2DE9A4DA7F181D538 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -1418,7 +1433,6 @@ A4F69F3477A935285620AC3031C5C848 /* FBSnapshotTestController.m in Sources */, 1AB7934C16CE49DE196FFC7BE7278287 /* SwiftSupport.swift in Sources */, 094973D2D2F1E3B2E772F93C8147C6B9 /* UIApplication+StrictKeyWindow.m in Sources */, - 051344691E75CA52000350FF /* DataTableValueType.swift in Sources */, 69DA8B003216466C60F029CBD79897F1 /* UIImage+Compare.m in Sources */, 35DD05FD595A6FE7F5A0692D12E319DC /* UIImage+Diff.m in Sources */, 756564ABAF2892FE7140C92A1CDDCF65 /* UIImage+Snapshot.m in Sources */, diff --git a/Example/Pods/Target Support Files/SwiftDataTables/Info.plist b/Example/Pods/Target Support Files/SwiftDataTables/Info.plist index 32648df..4b635bf 100644 --- a/Example/Pods/Target Support Files/SwiftDataTables/Info.plist +++ b/Example/Pods/Target Support Files/SwiftDataTables/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 0.2.6 + 0.2.7 CFBundleSignature ???? CFBundleVersion diff --git a/SwiftDataTables/Classes/DataStructureModel.swift b/SwiftDataTables/Classes/DataStructureModel.swift index c9ed688..0f91164 100644 --- a/SwiftDataTables/Classes/DataStructureModel.swift +++ b/SwiftDataTables/Classes/DataStructureModel.swift @@ -20,7 +20,7 @@ public struct DataStructureModel { return headerTitles.count// ?? 0 } //MARK: - Public Properties - var data = [[String]]() + var data = DataTableContent() var headerTitles = [String]() var footerTitles = [String]() var shouldFootersShowSortingElement: Bool = false @@ -29,11 +29,11 @@ public struct DataStructureModel { //MARK: - Lifecycle init() { - self.init(data: [[String]](), headerTitles: [String]()) + self.init(data: DataTableContent(), headerTitles: [String]()) } init( - data: [[String]], headerTitles: [String], + data: DataTableContent, headerTitles: [String], shouldMakeTitlesFitInColumn: Bool = true, shouldDisplayFooterHeaders: Bool = true //sortableColumns: [Int] // This will map onto which column can be sortable @@ -72,12 +72,12 @@ public struct DataStructureModel { //extension DataStructureModel { //Finds the average content length in each column - private func processColumnDataAverages(data: [[String]]) -> [Float] { + private func processColumnDataAverages(data: DataTableContent) -> [Float] { var columnContentAverages = [Float]() for column in Array(0.. Date: Mon, 13 Mar 2017 09:58:18 +0000 Subject: [PATCH 3/8] Refactors Data Cell and Data CellViewModel to incorporate DataCellTypeValue --- SwiftDataTables/Classes/DataCell/DataCell.swift | 7 +------ SwiftDataTables/Classes/DataCell/DataCellViewModel.swift | 5 +++-- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/SwiftDataTables/Classes/DataCell/DataCell.swift b/SwiftDataTables/Classes/DataCell/DataCell.swift index 323fcb3..4bf4ff1 100644 --- a/SwiftDataTables/Classes/DataCell/DataCell.swift +++ b/SwiftDataTables/Classes/DataCell/DataCell.swift @@ -15,11 +15,6 @@ class DataCell: UICollectionViewCell { //MARK: - Lifecycle func setup(_ viewModel: DataCellViewModel){ - self.dataLabel.text = viewModel.data - -// self.highlight(viewModel.highlighted) + self.dataLabel.text = viewModel.data.stringRepresentation } -// var representedElementKind = { -// -// } } diff --git a/SwiftDataTables/Classes/DataCell/DataCellViewModel.swift b/SwiftDataTables/Classes/DataCell/DataCellViewModel.swift index c76c0fd..6d6dbb5 100644 --- a/SwiftDataTables/Classes/DataCell/DataCellViewModel.swift +++ b/SwiftDataTables/Classes/DataCell/DataCellViewModel.swift @@ -14,10 +14,11 @@ open class DataCellViewModel: VirtualPositionTrackable, CollectionViewCellRepres var xPositionRunningTotal: CGFloat? = nil var yPositionRunningTotal: CGFloat? = nil var virtualHeight: CGFloat = 0 - let data: String + let data: DataTableValueType + var highlighted: Bool = false //MARK: - Lifecycle - init(data: String){ + init(data: DataTableValueType){ self.data = data } static func registerCell(collectionView: UICollectionView) { From c12ea98afb54cedec3c37645bdb424507838cfe2 Mon Sep 17 00:00:00 2001 From: Pavan Kataria Date: Mon, 13 Mar 2017 10:17:21 +0000 Subject: [PATCH 4/8] Adds comparable protocol to DataTableValueType, the == method --- SwiftDataTables/Classes/DataCell/DataCellViewModel.swift | 4 +++- SwiftDataTables/Classes/DataTableValueType.swift | 6 ++++++ SwiftDataTables/Classes/SwiftDataTable.swift | 4 ---- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/SwiftDataTables/Classes/DataCell/DataCellViewModel.swift b/SwiftDataTables/Classes/DataCell/DataCellViewModel.swift index 6d6dbb5..94f4068 100644 --- a/SwiftDataTables/Classes/DataCell/DataCellViewModel.swift +++ b/SwiftDataTables/Classes/DataCell/DataCellViewModel.swift @@ -10,17 +10,19 @@ import Foundation import UIKit open class DataCellViewModel: VirtualPositionTrackable, CollectionViewCellRepresentable { + //MARK: - Public Properties var xPositionRunningTotal: CGFloat? = nil var yPositionRunningTotal: CGFloat? = nil var virtualHeight: CGFloat = 0 let data: DataTableValueType - var highlighted: Bool = false + //MARK: - Lifecycle init(data: DataTableValueType){ self.data = data } + static func registerCell(collectionView: UICollectionView) { let identifier = String(describing: DataCell.self) let nib = UINib(nibName: identifier, bundle: nil) diff --git a/SwiftDataTables/Classes/DataTableValueType.swift b/SwiftDataTables/Classes/DataTableValueType.swift index 892c36b..f1bb628 100644 --- a/SwiftDataTables/Classes/DataTableValueType.swift +++ b/SwiftDataTables/Classes/DataTableValueType.swift @@ -32,3 +32,9 @@ public enum DataTableValueType { } } } + +extension DataTableValueType: Comparable { + public static func == (lhs: DataTableValueType, rhs: DataTableValueType) -> Bool { + return lhs.stringRepresentation == rhs.stringRepresentation + } +} diff --git a/SwiftDataTables/Classes/SwiftDataTable.swift b/SwiftDataTables/Classes/SwiftDataTable.swift index 4617234..54a252a 100644 --- a/SwiftDataTables/Classes/SwiftDataTable.swift +++ b/SwiftDataTables/Classes/SwiftDataTable.swift @@ -370,12 +370,8 @@ extension SwiftDataTable { switch by { case .ascending: self.rowViewModels = self.rowViewModels.sorted(by: ascendingOrder) - break; case .descending: self.rowViewModels = self.rowViewModels.sorted(by: descendingOrder) - break; - default: - break; } } From 29616b2633fbaf5463b98b68e51c300fc1ba753d Mon Sep 17 00:00:00 2001 From: Pavan Kataria Date: Mon, 13 Mar 2017 10:35:12 +0000 Subject: [PATCH 5/8] Completes Comparable implementation for DataTableValueType --- SwiftDataTables/Classes/DataTableValueType.swift | 14 ++++++++++++++ SwiftDataTables/Classes/SwiftDataTable.swift | 2 ++ 2 files changed, 16 insertions(+) diff --git a/SwiftDataTables/Classes/DataTableValueType.swift b/SwiftDataTables/Classes/DataTableValueType.swift index f1bb628..9d6f373 100644 --- a/SwiftDataTables/Classes/DataTableValueType.swift +++ b/SwiftDataTables/Classes/DataTableValueType.swift @@ -37,4 +37,18 @@ extension DataTableValueType: Comparable { public static func == (lhs: DataTableValueType, rhs: DataTableValueType) -> Bool { return lhs.stringRepresentation == rhs.stringRepresentation } + public static func < (lhs: DataTableValueType, rhs: DataTableValueType) -> Bool { + switch (lhs, rhs) { + case (.string(let lhsValue), .string(let rhsValue)): + return lhsValue < rhsValue + case (.int(let lhsValue), .int(let rhsValue)): + return lhsValue < rhsValue + case (.float(let lhsValue), .float(let rhsValue)): + return lhsValue < rhsValue + case (.double(let lhsValue), .double(let rhsValue)): + return lhsValue < rhsValue + default: + return lhs.stringRepresentation < rhs.stringRepresentation + } + } } diff --git a/SwiftDataTables/Classes/SwiftDataTable.swift b/SwiftDataTables/Classes/SwiftDataTable.swift index 54a252a..3ce9f0f 100644 --- a/SwiftDataTables/Classes/SwiftDataTable.swift +++ b/SwiftDataTables/Classes/SwiftDataTable.swift @@ -372,6 +372,8 @@ extension SwiftDataTable { self.rowViewModels = self.rowViewModels.sorted(by: ascendingOrder) case .descending: self.rowViewModels = self.rowViewModels.sorted(by: descendingOrder) + default: + break } } From f3d9d2c58078fd6d8fdeca99a86d2d2f00125223 Mon Sep 17 00:00:00 2001 From: Pavan Kataria Date: Mon, 13 Mar 2017 12:15:27 +0000 Subject: [PATCH 6/8] Adds optional initialiser to DataTableValueType to automatically infer the right type. --- Example/SwiftDataTables/File.swift | 904 ++---------------- Example/SwiftDataTables/ViewController.swift | 17 +- .../Classes/DataTableValueType.swift | 17 + 3 files changed, 130 insertions(+), 808 deletions(-) diff --git a/Example/SwiftDataTables/File.swift b/Example/SwiftDataTables/File.swift index d1ed46e..152449c 100644 --- a/Example/SwiftDataTables/File.swift +++ b/Example/SwiftDataTables/File.swift @@ -8,806 +8,106 @@ import Foundation -public func exampleDataSet() -> [[String]] { - return [[ - "1", - "Miss Andreanne Daugherty", - "Natalie.Nolan55@yahoo.com", - "(313) 490-4546", - "Croninshire", - "690.17" - ], - [ - "2", - "Lucie Boyer", - "Dwight82@gmail.com", - "(602) 227-8161", - "West Maudieborough", - "332.21" - ], - [ - "3", - "Dr. Aidan Reynolds", - "Imogene83@gmail.com", - "936-628-1501", - "Kayleyport", - "841.10" - ], - [ - "4", - "Dean Stehr", - "Omari.Hansen@yahoo.com", - "1-103-729-2113", - "Leonorburgh", - "733.31" - ], - [ - "5", - "Elmo Tromp", - "Stephen.Quigley21@hotmail.com", - "847-466-7702", - "West Daphneestad", - "747.68" - ], - [ - "6", - "Paxton Kozey", - "Sage.Rippin71@yahoo.com", - "1-901-573-8910 x273", - "Rosemaryhaven", - "914.95" - ], - [ - "7", - "Jacinthe Jones", - "Richie.Dicki80@gmail.com", - "864-394-7295", - "Rutherfordtown", - "634.38" - ], - [ - "8", - "Cleora McLaughlin", - "Collin92@hotmail.com", - "549.343.7611 x36526", - "North Budtown", - "728.03" - ], - [ - "9", - "Helmer Homenick", - "Libbie_Roberts16@yahoo.com", - "362.095.1998", - "North Darrion", - "673.29" - ], - [ - "10", - "Mr. Katrine Kreiger", - "Luella31@gmail.com", - "231.159.8335 x1395", - "South Alfonzo", - "379.44" - ], - [ - "11", - "Rylee Leffler", - "Anabelle_Franecki@hotmail.com", - "1-108-892-4300 x803", - "Port Josephine", - "523.46" - ], - [ - "12", - "Haven Smith MD", - "Tiara_Wilderman@hotmail.com", - "340.075.4955 x24461", - "South Audie", - "899.52" - ], - [ - "13", - "Isac Cormier Jr.", - "Queen_Tremblay@gmail.com", - "658-084-0544 x72767", - "North Weldon", - "202.89" - ], - [ - "14", - "Vicente Dicki", - "Houston98@hotmail.com", - "593.567.0480", - "East Lou", - "575.50" - ], - [ - "15", - "Brooks Olson", - "Etha_Rosenbaum@gmail.com", - "1-340-244-2523", - "South Mateo", - "399.65" - ], - [ - "16", - "Mr. Viva Wolf", - "Carlotta.Berge23@yahoo.com", - "612.057.9797 x70070", - "Mohrton", - "994.86" - ], - [ - "17", - "Brain Sauer", - "Darrin.Huel7@gmail.com", - "(321) 497-3767", - "Schoenview", - "249.67" - ], - [ - "18", - "Gretchen Kuvalis", - "Theresia.Keeling@gmail.com", - "1-928-017-6723 x66185", - "Schuppeport", - "118.09" - ], - [ - "19", - "Tyrese Weissnat", - "Kevin70@gmail.com", - "986.072.8370 x7319", - "East Carol", - "908.18" - ], - [ - "20", - "Kody Runte", - "Lon.Waters@gmail.com", - "300.202.1167", - "Friesenmouth", - "611.51" - ], - [ - "21", - "Lysanne Maggio", - "Keaton_Johns22@hotmail.com", - "1-697-299-4289 x69149", - "Schummside", - "760.12" - ], - [ - "22", - "Spencer Olson", - "Berta61@hotmail.com", - "(900) 120-9311 x9308", - "Labadieville", - "804.44" - ], - [ - "23", - "Raymond Oberbrunner", - "Julio72@hotmail.com", - "506-979-3304", - "New Tyrell", - "174.48" - ], - [ - "24", - "Maybell Goldner", - "Emilie_Jerde@yahoo.com", - "161-634-5677 x3407", - "West Vincebury", - "347.33" - ], - [ - "25", - "Mr. Arianna Rodriguez", - "Estefania_Mraz71@hotmail.com", - "081-590-5203", - "Lake Anabel", - "181.64" - ], - [ - "26", - "Isabel Blanda", - "Eva_Hilll4@gmail.com", - "449-556-0446", - "Lake Cordelia", - "740.44" - ], - [ - "27", - "Miss Arne Larkin", - "Josh97@hotmail.com", - "1-177-107-9811", - "Yostland", - "309.65" - ], - [ - "28", - "Annalise Becker", - "Nils_Ebert98@gmail.com", - "(153) 251-3149 x51450", - "Hyattland", - "305.68" - ], - [ - "29", - "Weldon Walker", - "Brant.Herman44@yahoo.com", - "761-741-3777", - "Vonbury", - "615.83" - ], - [ - "30", - "Eddie Hintz", - "Gerry15@yahoo.com", - "397-400-0849 x825", - "New Raulburgh", - "929.18" - ], - [ - "31", - "Fannie Bergnaum", - "Bo_Berge48@gmail.com", - "967-219-6631", - "Port Clinton", - "429.85" - ], - [ - "32", - "Miss Edyth Ernser", - "Rolando.Homenick@hotmail.com", - "(695) 596-2937 x297", - "East Alexane", - "829.76" - ], - [ - "33", - "Jonatan Hauck IV", - "Lonnie_Parisian83@hotmail.com", - "1-922-070-3855 x322", - "New Briana", - "865.87" - ], - [ - "34", - "Elijah Hoeger", - "Rene_Casper@gmail.com", - "616-408-2131 x97066", - "Lake Coleview", - "20.25" - ], - [ - "35", - "Stanford Glover", - "Preston_Cruickshank36@hotmail.com", - "1-204-671-1858", - "New Alfonzoton", - "195.42" - ], - [ - "36", - "Jedediah Dibbert", - "Birdie_Schamberger62@gmail.com", - "1-797-119-5984 x5841", - "Maevetown", - "863.83" - ], - [ - "37", - "Wilmer Zboncak PhD", - "Gudrun_Zemlak@gmail.com", - "640.580.5016", - "West Godfrey", - "684.51" - ], - [ - "38", - "Adolphus Schamberger", - "Eunice40@yahoo.com", - "075-371-5205", - "Krajcikshire", - "145.82" - ], - [ - "39", - "Devan Dibbert", - "Ellis.Von71@yahoo.com", - "821-210-6632", - "Gavinmouth", - "368.64" - ], - [ - "40", - "Keara Lehner", - "Khalid_Collier61@hotmail.com", - "468.401.3877", - "South Josiane", - "66.17" - ], - [ - "41", - "Elmo Hamill", - "Filomena_Cole65@yahoo.com", - "(923) 550-5272", - "Lake Roberta", - "667.41" - ], - [ - "42", - "Nicklaus Cormier", - "Marvin_Brakus@yahoo.com", - "632-400-0797", - "South Amyaberg", - "170.97" - ], - [ - "43", - "Houston Waters", - "Douglas15@hotmail.com", - "(755) 796-4692 x13640", - "New Hoseastad", - "200.16" - ], - [ - "44", - "Filomena Dickinson", - "Hilton_Ruecker@hotmail.com", - "1-455-228-7977 x557", - "New Ignatiusbury", - "671.28" - ], - [ - "45", - "Miss Triston Turner", - "Tomasa_Lowe@yahoo.com", - "284.018.1954", - "West Carolanneburgh", - "394.12" - ], - [ - "46", - "Delfina Toy", - "Vince_Glover12@hotmail.com", - "783.069.3562 x94493", - "East Haileyport", - "669.16" - ], - [ - "47", - "Noble Swift", - "Kasey_Braun40@yahoo.com", - "(196) 480-4779 x6987", - "Bernierberg", - "304.66" - ], - [ - "48", - "Lilly Tromp", - "Garnett.Prosacco@gmail.com", - "(392) 469-7528 x176", - "West Favianberg", - "427.36" - ], - [ - "49", - "Adelia Beahan", - "Hayley79@gmail.com", - "(078) 444-7785 x795", - "North Wendy", - "605.28" - ], - [ - "50", - "Weldon Sporer", - "Kali35@gmail.com", - "893-749-8720 x80418", - "New Friedrich", - "650.22" - ], - [ - "51", - "Mrs. Elissa Schimmel", - "Morgan_OConner40@gmail.com", - "050-470-6504 x94157", - "Thielbury", - "551.82" - ], - [ - "52", - "Wilburn Becker", - "Ransom.McCullough18@hotmail.com", - "1-382-518-3303 x02173", - "South Joanny", - "781.20" - ], - [ - "53", - "Thalia Gaylord III", - "Elda.Purdy@gmail.com", - "1-186-682-0654 x087", - "New Clarechester", - "394.08" - ], - [ - "54", - "Mr. Georgette Collier", - "Rosella_Friesen86@hotmail.com", - "(983) 019-3330 x5983", - "West Maidaborough", - "627.13" - ], - [ - "55", - "Treva Jast IV", - "Estella_Littel@gmail.com", - "1-430-755-0625", - "Hopebury", - "589.72" - ], - [ - "56", - "Alayna Hickle", - "Nels54@hotmail.com", - "(668) 015-7437", - "Cadechester", - "129.57" - ], - [ - "57", - "Kieran O'Hara", - "Ken.Block10@gmail.com", - "1-305-545-2923 x97769", - "Schuppeborough", - "29.54" - ], - [ - "58", - "Aidan Hartmann", - "Dolly1@gmail.com", - "1-789-300-6841", - "Port Vincent", - "126.91" - ], - [ - "59", - "Virginia Carter", - "Cheyenne.Hermann73@yahoo.com", - "1-637-275-5590 x6154", - "Gorczanystad", - "405.48" - ], - [ - "60", - "Grace Becker", - "Franco_Schamberger@yahoo.com", - "(905) 684-2273", - "Lake Rene", - "393.43" - ], - [ - "61", - "Andrew Wehner", - "Dwight.Abshire@gmail.com", - "1-197-383-0823 x289", - "Edmundport", - "542.32" - ], - [ - "62", - "Christophe Effertz", - "Newton_Gulgowski@yahoo.com", - "209-767-0467 x18731", - "Johannborough", - "460.56" - ], - [ - "63", - "Mr. Maybelle Kris", - "Margarette_Wilkinson69@gmail.com", - "568-687-9514 x19786", - "Kiehnfort", - "202.87" - ], - [ - "64", - "Jimmie Renner", - "Lottie79@hotmail.com", - "(717) 080-3561", - "Brownborough", - "778.04" - ], - [ - "65", - "Rahsaan Lubowitz", - "Lon5@yahoo.com", - "163.252.4806", - "Gaylehaven", - "401.39" - ], - [ - "66", - "Melba Fahey", - "Darlene.Zemlak@hotmail.com", - "854-607-4942", - "New Eunice", - "329.44" - ], - [ - "67", - "Marc Waelchi DVM", - "Aurelia.Lang20@yahoo.com", - "(257) 610-7959", - "South Doriantown", - "308.41" - ], - [ - "68", - "Camren Weissnat", - "Leonora_Dickens19@hotmail.com", - "654.481.4298 x545", - "Parkerfurt", - "346.09" - ], - [ - "69", - "Khalid Johnson", - "Alfonso.Tillman@yahoo.com", - "(566) 739-9491 x119", - "Reyfort", - "604.77" - ], - [ - "70", - "Tina Hagenes V", - "Ollie.Turner28@hotmail.com", - "1-438-571-4010", - "Aufderharside", - "752.14" - ], - [ - "71", - "Jace Willms", - "Shany98@yahoo.com", - "(030) 512-3051 x166", - "Lake Austynshire", - "21.71" - ], - [ - "72", - "Norene Hackett", - "Juana55@gmail.com", - "325-048-4422 x91762", - "South Johannafurt", - "836.07" - ], - [ - "73", - "Ignacio Pagac", - "Katelynn.King29@yahoo.com", - "(467) 388-1492", - "Champlinborough", - "239.75" - ], - [ - "74", - "Ben Tremblay", - "Elisa_Hane63@yahoo.com", - "204-753-7245", - "Toneyport", - "800.07" - ], - [ - "75", - "Garrett Grimes", - "Jamel93@gmail.com", - "(790) 049-4878 x05390", - "Lake Julianne", - "205.87" - ], - [ - "76", - "Ines Cassin", - "Keanu.Kris2@yahoo.com", - "1-262-343-2905", - "Lanceberg", - "687.08" - ], - [ - "77", - "Olen Adams", - "Bill.Bailey@gmail.com", - "1-676-131-2989", - "Nicolaschester", - "354.60" - ], - [ - "78", - "Thad Barton", - "Howell50@hotmail.com", - "361-602-9886 x1533", - "Raynorshire", - "367.50" - ], - [ - "79", - "Frederik Rogahn V", - "Armand27@hotmail.com", - "1-248-477-4046", - "East Pattiefort", - "72.80" - ], - [ - "80", - "Omer Reichert", - "Fermin43@hotmail.com", - "720.727.8422 x743", - "Jeanieland", - "655.54" - ], - [ - "81", - "Rocky Koelpin", - "Isaias33@gmail.com", - "1-479-720-5777 x589", - "North Tillmanmouth", - "802.59" - ], - [ - "82", - "Esta Sawayn", - "Ardella78@yahoo.com", - "1-233-170-8247 x064", - "Casimerfurt", - "399.46" - ], - [ - "83", - "Dale Reinger", - "Edwin46@gmail.com", - "1-550-308-4388", - "North Jeradhaven", - "508.60" - ], - [ - "84", - "Wendell McDermott", - "Jonas_Lueilwitz@gmail.com", - "(941) 678-2135 x0722", - "South Gavin", - "765.23" - ], - [ - "85", - "Judson Kutch", - "Maureen.Hamill@hotmail.com", - "152-622-4533", - "North Athenahaven", - "393.98" - ], - [ - "86", - "Rafaela Jenkins", - "Zoie96@hotmail.com", - "937.518.5889 x54282", - "Rutherfordshire", - "165.53" - ], - [ - "87", - "Godfrey Turner I", - "Waylon24@gmail.com", - "647-076-2628 x53807", - "Grimesville", - "331.15" - ], - [ - "88", - "Eldred Willms Sr.", - "Elisha.Batz@gmail.com", - "930-475-3546 x52309", - "Lupemouth", - "404.32" - ], - [ - "89", - "Gerry Davis", - "Hosea_Hayes21@gmail.com", - "1-950-319-0140 x425", - "New Casandraton", - "915.89" - ], - [ - "90", - "Gabriella Pouros MD", - "Nathan.Kris@gmail.com", - "219.550.1353 x71506", - "East Marianafort", - "378.42" - ], - [ - "91", - "Emerald Lakin", - "Kailee_Roob86@hotmail.com", - "(839) 377-5659 x25749", - "East Donald", - "744.33" - ], - [ - "92", - "Dr. Ellie Hettinger", - "Yesenia24@yahoo.com", - "1-615-742-7620", - "Port Clyde", - "254.49" - ], - [ - "93", - "Raul Thompson", - "Judy_Will@hotmail.com", - "1-282-578-5517 x752", - "New Gwendolyn", - "275.22" - ], - [ - "94", - "Noe Kshlerin", - "Robert36@gmail.com", - "319-622-4035", - "Littleborough", - "560.36" - ], - [ - "95", - "Mylene DuBuque", - "Isaias_Lang@yahoo.com", - "683-602-8685", - "New Ashtonmouth", - "51.87" - ], - [ - "96", - "Brenda O'Hara", - "Aaliyah_Blick@gmail.com", - "1-965-279-5503", - "South Loyceshire", - "329.71" - ], - [ - "97", - "Anya Crona", - "Jazmyn_Sipes@gmail.com", - "842.654.1253", - "Port Cecilia", - "110.00" - ], - [ - "98", - "Weldon Conroy", - "Neil.Brown65@yahoo.com", - "(319) 777-6597 x1429", - "Bernadetteside", - "393.55" - ], - [ - "99", - "Selmer Kassulke", - "Clare_Aufderhar@gmail.com", - "(599) 461-9038 x9360", - "Lake Zoieberg", - "850.80" - ], - [ - "100", - "Matilde Senger", - "Annette.Bauch@gmail.com", - "1-958-747-2270", - "Kunzefurt", - "534.82" - ] - ] +public func exampleDataSet() -> [[Any]] { + return [ + [1,"Meggie Block","Rosamond29@gmail.com","(397) 102-5456 x371","Emilioshire","876.06"], + [2,"Waldo Sporer","Martina.Barrows@hotmail.com","(726) 447-9616 x726","Port Jedediahfurt","220.69"], + [3,"Vickie Stroman","Parker40@hotmail.com","1-347-447-3401 x491","Delbertberg","340.64"], + [4,"Kiley Denesik","Ida.Murphy2@hotmail.com","069.128.7032","South Aidaside","271.01"], + [5,"Shanie Langworth","Gennaro1@yahoo.com","185-323-3421","Ileneville","342.04"], + [6,"Clifford Greenfelder","Rowena.Kessler@yahoo.com","1-445-170-5544 x69505","Zboncakburgh","660.10"], + [7,"Lurline Rolfson","Quincy_Cole76@yahoo.com","1-839-002-7378 x36811","New Mitchelshire","401.82"], + [8,"Sallie Kiehn","Arnold_Kiehn65@hotmail.com","617-589-5786","Mosciskiberg","771.67"], + [9,"Rubie Walker","Rory_Thompson@gmail.com","(599) 852-8825","Mitchellmouth","743.72"], + [10,"Michale Prosacco","Freddy5@yahoo.com","359-441-2319 x97802","Linnealand","121.52"], + [11,"Willa Kautzer","Amaya.Kovacek@yahoo.com","433-002-8109 x23682","Palmaburgh","8.85"], + [12,"Ezra Erdman","Candice14@gmail.com","(664) 950-3514","Ignatiustown","631.18"], + [13,"Fatima Conn","Dayton_Schumm2@yahoo.com","568-341-9829 x31032","South Kurtfurt","695.77"], + [14,"Ladarius Kautzer","Malcolm33@gmail.com","627-225-2065","Albaport","396.39"], + [15,"Madeline Moen","Jimmy.Muller29@yahoo.com","851-692-9961 x8251","Altenwerthbury","151.96"], + [16,"Trever Senger","Casimer13@yahoo.com","(074) 145-9347","North Karastad","546.10"], + [17,"Jaycee Hane","Guadalupe.Fritsch@hotmail.com","(612) 926-0774 x84579","Gulgowskiburgh","59.69"], + [18,"Brigitte Monahan","Edmond70@gmail.com","457.890.1634","West Kraig","21.88"], + [19,"Mackenzie Gorczany","Stanford_Hahn@gmail.com","1-214-143-6076 x22257","North Enrique","545.30"], + [20,"Shawna Collins","Jayson_Marks30@gmail.com","1-952-483-1123 x0779","Lianamouth","851.26"], + [21,"Mr. Norene Emard","Ralph_Schumm@gmail.com","826-325-3523","South Marcellus","267.33"], + [22,"Stone Prosacco Sr.","Miles.Kozey88@hotmail.com","836-187-0793","East Julianachester","472.03"], + [23,"Ressie Schuppe","Mallory.Bayer@hotmail.com","1-704-802-3791 x07043","Saulside","344.36"], + [24,"Frank Hane DVM","Gussie84@gmail.com","(788) 000-1020","Clevemouth","849.38"], + [25,"Mandy Windler","Abigail_Shields76@hotmail.com","500.059.9784 x865","Bettyview","61.65"], + [26,"Ms. Thelma Walker","Thelma66@yahoo.com","(873) 332-2604 x644","South Granvilleport","676.53"], + [27,"Freddy Stark","Blanche_Schmidt40@gmail.com","380-768-2395","South Nicola","623.04"], + [28,"Keanu Windler","Shanon.Grimes@gmail.com","(905) 868-0552 x228","South Florencio","307.54"], + [29,"Murl Leannon DDS","Kristin_Morissette@hotmail.com","430.415.0138","West Kaciville","420.63"], + [30,"Gaetano McCullough","Reese.Wisoky59@yahoo.com","534-018-2021","Lake Tavaresview","856.25"], + [31,"Roderick Champlin","Stan.Collier30@yahoo.com","391-777-2911 x425","Lake Oran","640.72"], + [32,"Bernice Thiel DVM","Gladys.Swaniawski2@yahoo.com","(963) 946-1460 x6229","New Khalid","478.74"], + [33,"Diana Stracke","Alexander.Stoltenberg88@gmail.com","529.447.6269 x950","Gutkowskibury","806.32"], + [34,"Manuel Mueller","Neha.Fisher56@yahoo.com","1-002-038-0065 x6453","Lednerfurt","71.07"], + [35,"Allie Cruickshank","Isaac.Greenfelder@yahoo.com","1-952-058-3201 x22268","New Madonna","709.34"], + [36,"Oceane Weimann IV","Cristopher.Metz@yahoo.com","982-591-8206","South Verdie","486.53"], + [37,"Noemy Heathcote","Cicero_Bins90@gmail.com","449.010.9587","Halvorsonview","330.70"], + [38,"Waylon Halvorson","Idella_Larson32@yahoo.com","(930) 560-4786","Bartonport","106.39"], + [39,"Howell Ritchie","Hilton.Hilll26@hotmail.com","348-148-9060 x23329","Murazikside","519.12"], + [40,"Hellen Cremin","Winnifred_Klein@hotmail.com","(200) 090-1425","New Fatima","865.66"], + [41,"Dora Schmitt","Maybell55@gmail.com","375.253.4745","New Newtonshire","369.42"], + [42,"Maximillia Fay","Hadley64@gmail.com","(661) 575-2051 x20801","East Jazlyn","416.94"], + [43,"Aglae White","Maximillia_Mitchell@gmail.com","940-676-5937 x561","Rutherfordview","295.10"], + [44,"Amina Hintz","Calista.Rippin80@hotmail.com","(094) 478-7083 x584","Port Whitney","488.07"], + [45,"Jackeline Lowe","Keaton.Weimann@gmail.com","757-100-0605","Bahringerburgh","499.55"], + [46,"Martin Schultz","Jabari_Hand@hotmail.com","(433) 531-0591","South Garnet","683.63"], + [47,"Braxton Gislason PhD","Carson.Rippin60@hotmail.com","1-742-741-7815 x75500","Lake Marcellusfurt","658.86"], + [48,"Isaias Gerlach","Kareem.Mills60@gmail.com","705.713.8018 x784","West Piercebury","715.29"], + [49,"Richmond Balistreri","Etha36@yahoo.com","126.387.2347 x59192","Muraziktown","752.97"], + [50,"Tillman Oberbrunner","Candido99@yahoo.com","822.716.9469","Lake Zane","231.80"], + [51,"Delfina Breitenberg","Kaylee.Aufderhar42@hotmail.com","(226) 867-2460 x967","Ashtynhaven","309.09"], + [52,"Dominique Friesen","Lonie_Ortiz@yahoo.com","(278) 131-3414","Cadenland","790.38"], + [53,"Miss Arlie Witting","Ernestine_Kunde60@hotmail.com","931.197.6316","Port Angelita","102.56"], + [54,"Telly Crist","Heidi.Cassin@yahoo.com","681.227.5022","Robelmouth","235.69"], + [55,"Osvaldo Kerluke","Anya_Thiel80@yahoo.com","294-962-4061","Port Jerrodborough","63.34"], + [56,"Virgil Wisozk DDS","Christopher.Walsh0@gmail.com","(528) 516-7344 x75969","Aufderharfurt","938.04"], + [57,"Sam Stokes","Yazmin.Thompson13@yahoo.com","670-903-0746 x091","McDermottside","160.98"], + [58,"Joanny Cassin","Courtney_Larkin@hotmail.com","647-447-7007","Maggiehaven","725.69"], + [59,"Anastasia Heaney","Armand_Koss55@hotmail.com","304-210-7052","Cloydhaven","331.06"], + [60,"Thalia Wunsch IV","Bartholome.Rosenbaum@hotmail.com","(862) 585-9852 x17181","West Xandermouth","467.96"], + [61,"Nils Ernser","Evan_Haag@gmail.com","105-568-4311","North Maxland","254.66"], + [62,"Mozelle Gottlieb","Avery36@yahoo.com","073.351.6616 x13022","West Agnes","549.40"], + [63,"Clara White","Ophelia85@yahoo.com","1-916-658-3410 x32142","East Miraclefurt","522.03"], + [64,"Lucius Metz","Zita.Beatty90@yahoo.com","(398) 176-5212","Cormierfurt","613.06"], + [65,"Dax Cartwright","Wyatt_Price35@gmail.com","(278) 821-6045 x1969","West Elissa","683.88"], + [66,"Anastasia Thiel","Diana.Bashirian92@yahoo.com","(691) 719-2358","Angelineborough","481.19"], + [67,"Eleazar Volkman","Noe.Kris@yahoo.com","847.633.8700 x74450","Alfredaborough","813.18"], + [68,"Mona Dicki","Tad47@hotmail.com","(314) 914-7974","Schuppeland","160.39"], + [69,"Dr. Kaela Bernier","Nick91@yahoo.com","588.926.8249 x61443","Skilesshire","621.77"], + [70,"Monte Kertzmann","Talia_Walker@gmail.com","(182) 652-7575","Camilaton","35.70"], + [71,"Raquel Sporer II","Estevan.Witting94@yahoo.com","(009) 687-2842","Schadenville","965.33"], + [72,"Brooke Witting","Ona.Kuhic@yahoo.com","393.953.8940","South Angelo","38.19"], + [73,"Jack Turcotte","Dandre34@hotmail.com","(976) 011-9073","Albamouth","971.88"], + [74,"Elian Beier","Joaquin7@yahoo.com","983-117-9823 x95410","Spinkaton","329.50"], + [75,"Pierce Kling","Bertram.Runolfsdottir@yahoo.com","(555) 529-6221 x7725","North Wilhelmine","321.66"], + [76,"Maybell Green","Mortimer_Murphy@yahoo.com","446-561-0200","New Connie","113.05"], + [77,"Stanford Schowalter","Chanelle.Block@yahoo.com","246.280.6517 x21563","Lillyburgh","941.31"], + [78,"Eloise Block","Syble.Jacobs47@hotmail.com","489-922-0693 x6606","West Mya","953.38"], + [79,"Eloisa Little","Nola89@hotmail.com","165.643.6023 x0937","Murazikburgh","557.50"], + [80,"Ms. Julio Strosin","Jimmie.Jast81@gmail.com","1-457-451-7225 x862","South Norrisfurt","662.50"], + [81,"Ashlee Zieme","Royce85@gmail.com","464-385-5112","North Marceloview","787.98"], + [82,"Name Toy","Eloise.Borer@yahoo.com","(364) 727-5363 x33239","Wilkinsonton","842.71"], + [83,"Bernadette Von","Berenice26@yahoo.com","582.179.7298 x4936","Zechariahview","567.62"], + [84,"Sheila Renner","Terrence_Schaefer@hotmail.com","352-872-5244 x01195","Harrystad","600.88"], + [85,"Casimir Olson","Mafalda83@hotmail.com","968.212.7364 x7312","West Mackenziefurt","141.45"], + [86,"Sim Hudson","Chloe95@yahoo.com","1-770-690-6219 x8079","Lake Marguerite","3.65"], + [87,"Odessa Davis","Dejuan_Howell33@hotmail.com","(495) 377-8123 x703","South Destiniberg","185.68"], + [88,"Mrs. Roselyn Mohr","Hannah.Hodkiewicz76@hotmail.com","071.521.4106","New Christinafurt","292.83"], + [89,"William Powlowski","Frankie.Nader@hotmail.com","832.362.6208 x602","Zboncakmouth","56.50"], + [90,"Mrs. Willow Eichmann","Jess_Keeling52@yahoo.com","1-501-261-8561","Elviefort","406.49"], + [91,"Lavon Gislason","Darlene_Gleason90@gmail.com","(925) 351-7180","Valliefurt","204.52"], + [92,"Dustin Bins","Melisa_Mosciski34@yahoo.com","1-890-319-3360 x3221","Jonfurt","714.01"], + [93,"Clark Littel","Kian25@gmail.com","460.498.4154","Wuckertchester","718.49"], + [94,"Lucienne Rogahn","George.Bergstrom52@gmail.com","1-028-562-2124","Huelschester","637.46"], + [95,"Gudrun Schneider","Stephen_Gusikowski@gmail.com","1-303-770-0814 x556","Lednertown","635.71"], + [96,"Roberto Littel","Jewell.Waelchi@yahoo.com","(899) 777-1443","West Murielburgh","596.75"], + [97,"Jerome Franecki","Marilou58@gmail.com","1-023-601-0809","Rossieside","950.90"], + [98,"Torrance Rosenbaum","Mitchel_Howe97@yahoo.com","280.227.1340 x77633","Klockoburgh","830.10"], + [99,"Helen Borer","Birdie.Dietrich75@yahoo.com","937-622-2385","Dedricport","71.60"], + [100,"Chandler Kulas","Salma.Jakubowski19@yahoo.com","553.206.1457","Lake Rosamond","837.20"]] } diff --git a/Example/SwiftDataTables/ViewController.swift b/Example/SwiftDataTables/ViewController.swift index 59751c2..db7f22c 100644 --- a/Example/SwiftDataTables/ViewController.swift +++ b/Example/SwiftDataTables/ViewController.swift @@ -53,14 +53,19 @@ extension ViewController { "Id", "Name", "Email", - "Number" -// "City", -// "Balance" + "Number", + "City", + "Balance" ] } - func data() -> [[String]]{ - let dataSet = exampleDataSet() - return dataSet //[["lol"]]//array/ + func data() -> [[DataTableValueType]]{ + //This would be your json object + let dataSet: [[Any]] = exampleDataSet() + return dataSet.map { + $0.flatMap { + return DataTableValueType($0) + } + } } } diff --git a/SwiftDataTables/Classes/DataTableValueType.swift b/SwiftDataTables/Classes/DataTableValueType.swift index 9d6f373..ee21aac 100644 --- a/SwiftDataTables/Classes/DataTableValueType.swift +++ b/SwiftDataTables/Classes/DataTableValueType.swift @@ -12,6 +12,8 @@ import Foundation //This will probably make sorting easier and could potenntially allow us to get rid of this class public enum DataTableValueType { + + //MARK: - Properties case string(String) case int(Int) case float(Float) @@ -31,6 +33,21 @@ public enum DataTableValueType { } } } + + public init?(_ value: Any){ + if let value = value as? Int { + self = .int(value) + } + else if let value = value as? Float { + self = .float(value) + } + else if let value = value as? Double { + self = .double(value) + } + else { + self = .string(String(describing: value)) + } + } } extension DataTableValueType: Comparable { From b0254e8d6e3aaebab3bc4f8a88fa336a4ce24ecc Mon Sep 17 00:00:00 2001 From: Pavan Kataria Date: Mon, 13 Mar 2017 15:06:42 +0000 Subject: [PATCH 7/8] Improves the type detection algorithm for DataTableValueType enum --- Example/SwiftDataTables/File.swift | 2 +- .../Classes/DataTableValueType.swift | 29 +++++++++++++------ 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/Example/SwiftDataTables/File.swift b/Example/SwiftDataTables/File.swift index 152449c..6615952 100644 --- a/Example/SwiftDataTables/File.swift +++ b/Example/SwiftDataTables/File.swift @@ -13,7 +13,7 @@ public func exampleDataSet() -> [[Any]] { [1,"Meggie Block","Rosamond29@gmail.com","(397) 102-5456 x371","Emilioshire","876.06"], [2,"Waldo Sporer","Martina.Barrows@hotmail.com","(726) 447-9616 x726","Port Jedediahfurt","220.69"], [3,"Vickie Stroman","Parker40@hotmail.com","1-347-447-3401 x491","Delbertberg","340.64"], - [4,"Kiley Denesik","Ida.Murphy2@hotmail.com","069.128.7032","South Aidaside","271.01"], + [[4,"Kiley Denesik","Ida.Murphy2@hotmail.com","069.128.7032","South Aidaside","271.01"], [5,"Shanie Langworth","Gennaro1@yahoo.com","185-323-3421","Ileneville","342.04"], [6,"Clifford Greenfelder","Rowena.Kessler@yahoo.com","1-445-170-5544 x69505","Zboncakburgh","660.10"], [7,"Lurline Rolfson","Quincy_Cole76@yahoo.com","1-839-002-7378 x36811","New Mitchelshire","401.82"], diff --git a/SwiftDataTables/Classes/DataTableValueType.swift b/SwiftDataTables/Classes/DataTableValueType.swift index ee21aac..d2b2b89 100644 --- a/SwiftDataTables/Classes/DataTableValueType.swift +++ b/SwiftDataTables/Classes/DataTableValueType.swift @@ -34,18 +34,29 @@ public enum DataTableValueType { } } - public init?(_ value: Any){ - if let value = value as? Int { + public init(_ value: Any){ + //Determine the actual type first + switch value { + case let value as Int: self = .int(value) - } - else if let value = value as? Float { + case let value as Float: self = .float(value) - } - else if let value = value as? Double { + case let value as Double: self = .double(value) - } - else { - self = .string(String(describing: value)) + default: + let temporaryStringRepresentation = String(describing: value) + if let value = Int(temporaryStringRepresentation) { + self = .int(value) + } + else if let value = Float(temporaryStringRepresentation) { + self = .float(value) + } + else if let value = Double(temporaryStringRepresentation) { + self = .double(value) + } + else { + self = .string(temporaryStringRepresentation) + } } } } From 0773e6377147e92b03a25160862d995eabba86d3 Mon Sep 17 00:00:00 2001 From: Pavan Kataria Date: Mon, 13 Mar 2017 15:52:54 +0000 Subject: [PATCH 8/8] Increments podspec to version 0.3 --- SwiftDataTables.podspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SwiftDataTables.podspec b/SwiftDataTables.podspec index f62badc..eff0913 100644 --- a/SwiftDataTables.podspec +++ b/SwiftDataTables.podspec @@ -8,7 +8,7 @@ Pod::Spec.new do |s| s.name = 'SwiftDataTables' - s.version = '0.2.7' + s.version = '0.3.0' s.summary = 'A Swift Data Table package that allows ordering, searching, and paging with extensible options.' # This description is used to generate tags and improve search results.