Skip to content

Commit c9ee624

Browse files
committed
Merge branch 'release/v0.9.0'
2 parents 1a4a7d0 + 2e95bb3 commit c9ee624

File tree

83 files changed

+2425
-1047
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

83 files changed

+2425
-1047
lines changed

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ xcuserdata/
2020
## Other
2121
*.moved-aside
2222
*.xcuserstate
23-
*.xcworkspace
2423

2524
## Obj-C/Swift specific
2625
*.hmap

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[submodule "External/Nimble"]
2+
path = External/Nimble
3+
url = git://github.com/Quick/Nimble.git

.swift-version

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
3.0

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
language: objective-c
2-
osx_image: xcode7.3
2+
osx_image: xcode8
33
script: sh build.sh
44
after_success:
55
- bash <(curl -s https://codecov.io/bash)

Assets/logo.png

74.8 KB
Loading

Examples/SampleApp/SampleApp.xcodeproj/project.pbxproj

Lines changed: 54 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,13 @@
1616
CC19AB271D7DAB7F00B8B196 /* PickerControl.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC19AB261D7DAB7F00B8B196 /* PickerControl.swift */; };
1717
CC28B4091D7D060B00B7CA97 /* CustomHeaderFooterView.xib in Resources */ = {isa = PBXBuildFile; fileRef = CC28B4081D7D060B00B7CA97 /* CustomHeaderFooterView.xib */; };
1818
CC28B40B1D7D064700B7CA97 /* CustomHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC28B40A1D7D064700B7CA97 /* CustomHeader.swift */; };
19+
CC2B23AE1D84DF4B0025CDF8 /* ActionBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC2B23AD1D84DF4B0025CDF8 /* ActionBar.swift */; };
1920
CC5234581D730EF500F312E7 /* SelectionViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC5234571D730EF500F312E7 /* SelectionViewController.swift */; };
21+
CCBD2FBC1D87344E00C61DCC /* ActionBarManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCBD2FBB1D87344E00C61DCC /* ActionBarManager.swift */; };
22+
CCBD2FC21D874BBA00C61DCC /* Rules.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCBD2FBE1D874BBA00C61DCC /* Rules.swift */; };
23+
CCBD2FC31D874BBA00C61DCC /* Validation.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCBD2FBF1D874BBA00C61DCC /* Validation.swift */; };
24+
CCBD2FC41D874BBA00C61DCC /* ValidationError.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCBD2FC01D874BBA00C61DCC /* ValidationError.swift */; };
25+
CCBD2FC51D874BBA00C61DCC /* Validator.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCBD2FC11D874BBA00C61DCC /* Validator.swift */; };
2026
CCDDB6971D7DA9CB006C0F9F /* CustomItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCDDB6951D7DA9CB006C0F9F /* CustomItem.swift */; };
2127
CCDDB6981D7DA9CB006C0F9F /* TextFieldItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCDDB6961D7DA9CB006C0F9F /* TextFieldItem.swift */; };
2228
CCDDB69A1D7DA9DE006C0F9F /* TextFieldCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = CCDDB6991D7DA9DE006C0F9F /* TextFieldCell.xib */; };
@@ -46,7 +52,13 @@
4652
CC19AB261D7DAB7F00B8B196 /* PickerControl.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PickerControl.swift; sourceTree = "<group>"; };
4753
CC28B4081D7D060B00B7CA97 /* CustomHeaderFooterView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CustomHeaderFooterView.xib; sourceTree = "<group>"; };
4854
CC28B40A1D7D064700B7CA97 /* CustomHeader.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CustomHeader.swift; sourceTree = "<group>"; };
55+
CC2B23AD1D84DF4B0025CDF8 /* ActionBar.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ActionBar.swift; path = ActionBar/ActionBar.swift; sourceTree = "<group>"; };
4956
CC5234571D730EF500F312E7 /* SelectionViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SelectionViewController.swift; sourceTree = "<group>"; };
57+
CCBD2FBB1D87344E00C61DCC /* ActionBarManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ActionBarManager.swift; path = ActionBar/ActionBarManager.swift; sourceTree = "<group>"; };
58+
CCBD2FBE1D874BBA00C61DCC /* Rules.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Rules.swift; sourceTree = "<group>"; };
59+
CCBD2FBF1D874BBA00C61DCC /* Validation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Validation.swift; sourceTree = "<group>"; };
60+
CCBD2FC01D874BBA00C61DCC /* ValidationError.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ValidationError.swift; sourceTree = "<group>"; };
61+
CCBD2FC11D874BBA00C61DCC /* Validator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Validator.swift; sourceTree = "<group>"; };
5062
CCDDB6951D7DA9CB006C0F9F /* CustomItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CustomItem.swift; sourceTree = "<group>"; };
5163
CCDDB6961D7DA9CB006C0F9F /* TextFieldItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TextFieldItem.swift; sourceTree = "<group>"; };
5264
CCDDB6991D7DA9DE006C0F9F /* TextFieldCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = TextFieldCell.xib; sourceTree = "<group>"; };
@@ -96,6 +108,8 @@
96108
257F72C31D07204A00F7B954 /* SampleApp */ = {
97109
isa = PBXGroup;
98110
children = (
111+
CCBD2FBD1D874BBA00C61DCC /* Validator */,
112+
CCBD2FC61D874BFC00C61DCC /* ActionBar */,
99113
257F72C41D07204A00F7B954 /* AppDelegate.swift */,
100114
CC5234571D730EF500F312E7 /* SelectionViewController.swift */,
101115
257F72C61D07204A00F7B954 /* ViewController.swift */,
@@ -132,6 +146,26 @@
132146
name = Frameworks;
133147
sourceTree = "<group>";
134148
};
149+
CCBD2FBD1D874BBA00C61DCC /* Validator */ = {
150+
isa = PBXGroup;
151+
children = (
152+
CCBD2FBE1D874BBA00C61DCC /* Rules.swift */,
153+
CCBD2FBF1D874BBA00C61DCC /* Validation.swift */,
154+
CCBD2FC01D874BBA00C61DCC /* ValidationError.swift */,
155+
CCBD2FC11D874BBA00C61DCC /* Validator.swift */,
156+
);
157+
path = Validator;
158+
sourceTree = "<group>";
159+
};
160+
CCBD2FC61D874BFC00C61DCC /* ActionBar */ = {
161+
isa = PBXGroup;
162+
children = (
163+
CC2B23AD1D84DF4B0025CDF8 /* ActionBar.swift */,
164+
CCBD2FBB1D87344E00C61DCC /* ActionBarManager.swift */,
165+
);
166+
name = ActionBar;
167+
sourceTree = "<group>";
168+
};
135169
/* End PBXGroup section */
136170

137171
/* Begin PBXNativeTarget section */
@@ -180,11 +214,13 @@
180214
isa = PBXProject;
181215
attributes = {
182216
LastSwiftUpdateCheck = 0730;
183-
LastUpgradeCheck = 0730;
217+
LastUpgradeCheck = 0800;
184218
ORGANIZATIONNAME = ODIGEO;
185219
TargetAttributes = {
186220
257F72C01D07204A00F7B954 = {
187221
CreatedOnToolsVersion = 7.3.1;
222+
DevelopmentTeam = 7M6E9TXYGF;
223+
LastSwiftMigration = 0800;
188224
};
189225
25FA9E171D24123100E2C899 = {
190226
CreatedOnToolsVersion = 7.3.1;
@@ -288,11 +324,17 @@
288324
files = (
289325
CCDDB6981D7DA9CB006C0F9F /* TextFieldItem.swift in Sources */,
290326
257F72C71D07204A00F7B954 /* ViewController.swift in Sources */,
327+
CCBD2FC31D874BBA00C61DCC /* Validation.swift in Sources */,
291328
CC28B40B1D7D064700B7CA97 /* CustomHeader.swift in Sources */,
329+
CCBD2FC51D874BBA00C61DCC /* Validator.swift in Sources */,
292330
CC5234581D730EF500F312E7 /* SelectionViewController.swift in Sources */,
331+
CCBD2FC41D874BBA00C61DCC /* ValidationError.swift in Sources */,
293332
CC19AB271D7DAB7F00B8B196 /* PickerControl.swift in Sources */,
333+
CCBD2FBC1D87344E00C61DCC /* ActionBarManager.swift in Sources */,
334+
CC2B23AE1D84DF4B0025CDF8 /* ActionBar.swift in Sources */,
294335
257F72C51D07204A00F7B954 /* AppDelegate.swift in Sources */,
295336
CCDDB6971D7DA9CB006C0F9F /* CustomItem.swift in Sources */,
337+
CCBD2FC21D874BBA00C61DCC /* Rules.swift in Sources */,
296338
);
297339
runOnlyForDeploymentPostprocessing = 0;
298340
};
@@ -347,8 +389,10 @@
347389
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
348390
CLANG_WARN_EMPTY_BODY = YES;
349391
CLANG_WARN_ENUM_CONVERSION = YES;
392+
CLANG_WARN_INFINITE_RECURSION = YES;
350393
CLANG_WARN_INT_CONVERSION = YES;
351394
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
395+
CLANG_WARN_SUSPICIOUS_MOVE = YES;
352396
CLANG_WARN_UNREACHABLE_CODE = YES;
353397
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
354398
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
@@ -392,8 +436,10 @@
392436
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
393437
CLANG_WARN_EMPTY_BODY = YES;
394438
CLANG_WARN_ENUM_CONVERSION = YES;
439+
CLANG_WARN_INFINITE_RECURSION = YES;
395440
CLANG_WARN_INT_CONVERSION = YES;
396441
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
442+
CLANG_WARN_SUSPICIOUS_MOVE = YES;
397443
CLANG_WARN_UNREACHABLE_CODE = YES;
398444
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
399445
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
@@ -412,6 +458,7 @@
412458
IPHONEOS_DEPLOYMENT_TARGET = 9.3;
413459
MTL_ENABLE_DEBUG_INFO = NO;
414460
SDKROOT = iphoneos;
461+
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
415462
VALIDATE_PRODUCT = YES;
416463
};
417464
name = Release;
@@ -420,28 +467,32 @@
420467
isa = XCBuildConfiguration;
421468
baseConfigurationReference = 224FEB30105CBE2EBFFC9EE9 /* Pods-SampleApp.debug.xcconfig */;
422469
buildSettings = {
470+
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
423471
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
424472
CLANG_ENABLE_MODULES = YES;
473+
DEVELOPMENT_TEAM = 7M6E9TXYGF;
425474
INFOPLIST_FILE = "$(SRCROOT)/SampleApp/Info.plist";
426475
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
427476
PRODUCT_BUNDLE_IDENTIFIER = com.odigeo.tableviewkit.example;
428477
PRODUCT_NAME = "$(TARGET_NAME)";
429478
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
430-
SWIFT_VERSION = 2.3;
479+
SWIFT_VERSION = 3.0;
431480
};
432481
name = Debug;
433482
};
434483
257F72D51D07204A00F7B954 /* Release */ = {
435484
isa = XCBuildConfiguration;
436485
baseConfigurationReference = D368DEDD0DD5DD15CD2C3F65 /* Pods-SampleApp.release.xcconfig */;
437486
buildSettings = {
487+
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
438488
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
439489
CLANG_ENABLE_MODULES = YES;
490+
DEVELOPMENT_TEAM = 7M6E9TXYGF;
440491
INFOPLIST_FILE = "$(SRCROOT)/SampleApp/Info.plist";
441492
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
442493
PRODUCT_BUNDLE_IDENTIFIER = com.odigeo.tableviewkit.example;
443494
PRODUCT_NAME = "$(TARGET_NAME)";
444-
SWIFT_VERSION = 2.3;
495+
SWIFT_VERSION = 3.0;
445496
};
446497
name = Release;
447498
};

Examples/SampleApp/SampleApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Examples/SampleApp/SampleApp.xcodeproj/xcshareddata/xcschemes/SampleApp.xcscheme

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<Scheme
3-
LastUpgradeVersion = "0730"
3+
LastUpgradeVersion = "0800"
44
version = "1.3">
55
<BuildAction
66
parallelizeBuildables = "YES"
@@ -28,6 +28,16 @@
2828
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
2929
shouldUseLaunchSchemeArgsEnv = "YES">
3030
<Testables>
31+
<TestableReference
32+
skipped = "NO">
33+
<BuildableReference
34+
BuildableIdentifier = "primary"
35+
BlueprintIdentifier = "25FA9E171D24123100E2C899"
36+
BuildableName = "SampleAppTests.xctest"
37+
BlueprintName = "SampleAppTests"
38+
ReferencedContainer = "container:SampleApp.xcodeproj">
39+
</BuildableReference>
40+
</TestableReference>
3141
</Testables>
3242
<MacroExpansion>
3343
<BuildableReference

Examples/SampleApp/SampleApp.xcworkspace/contents.xcworkspacedata

Lines changed: 10 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

TableViewKit/Controls/ActionBar.swift renamed to Examples/SampleApp/SampleApp/ActionBar/ActionBar.swift

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@ public enum Direction {
1616

1717
public protocol ActionBarDelegate {
1818

19-
func actionBar(actionBar: ActionBar, direction: Direction) -> NSIndexPath?
20-
func actionBar(actionBar: ActionBar, doneButtonPressed doneButtonItem: UIBarButtonItem)
19+
func actionBar(_ actionBar: ActionBar, direction: Direction)
20+
func actionBar(_ actionBar: ActionBar, doneButtonPressed doneButtonItem: UIBarButtonItem)
2121
}
2222

23-
public class ActionBar: UIToolbar {
23+
open class ActionBar: UIToolbar {
2424

2525
var navigationControl: UISegmentedControl!
2626
var actionBarDelegate: ActionBarDelegate!
@@ -40,29 +40,29 @@ public class ActionBar: UIToolbar {
4040
super.init(coder: aDecoder)!
4141
}
4242

43-
private func setup() {
43+
fileprivate func setup() {
4444

4545
let previousButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.init(rawValue: 105)!, target: self, action: #selector(previousHandler))
4646
let nextButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.init(rawValue: 106)!, target: self, action: #selector(nextHandler))
47-
let doneButton = UIBarButtonItem(barButtonSystemItem: .Done, target: self, action: #selector(handleActionBarDone))
47+
let doneButton = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(handleActionBarDone))
4848

49-
let spacer = UIBarButtonItem(barButtonSystemItem: .FixedSpace, target: nil, action: nil)
49+
let spacer = UIBarButtonItem(barButtonSystemItem: .fixedSpace, target: nil, action: nil)
5050
spacer.width = 40.0
5151

52-
let flexible = UIBarButtonItem(barButtonSystemItem: .FlexibleSpace, target: nil, action: nil)
52+
let flexible = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
5353

5454
items = [previousButtonItem, spacer, nextButtonItem, flexible, doneButton]
5555
}
5656

57-
@objc func handleActionBarDone(item: UIBarButtonItem) {
57+
@objc func handleActionBarDone(_ item: UIBarButtonItem) {
5858
actionBarDelegate.actionBar(self, doneButtonPressed: item)
5959
}
6060

61-
@objc func previousHandler(sender: UIBarButtonItem) {
61+
@objc func previousHandler(_ sender: UIBarButtonItem) {
6262
actionBarDelegate.actionBar(self, direction: .previous)
6363
}
6464

65-
@objc func nextHandler(sender: UIBarButtonItem) {
65+
@objc func nextHandler(_ sender: UIBarButtonItem) {
6666
actionBarDelegate.actionBar(self, direction: .next)
6767
}
6868
}

0 commit comments

Comments
 (0)