Skip to content

Commit f390a8a

Browse files
committed
Address PR comments
1 parent 522c16a commit f390a8a

File tree

4 files changed

+29
-11
lines changed

4 files changed

+29
-11
lines changed

SwiftWisdom.xcodeproj/project.pbxproj

+4-4
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,8 @@
100100
80D63D241C4F231C00C88D00 /* Synchronize.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D63D231C4F231C00C88D00 /* Synchronize.swift */; };
101101
80D63D261C4F236F00C88D00 /* Not.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D63D251C4F236F00C88D00 /* Not.swift */; };
102102
80D63D2F1C4F251E00C88D00 /* UnsignedInteger+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D63D2C1C4F251E00C88D00 /* UnsignedInteger+Extensions.swift */; };
103+
A4BB8A9420DAF35000F60485 /* String+Trimmed.swift in Sources */ = {isa = PBXBuildFile; fileRef = A4BB8A9320DAF35000F60485 /* String+Trimmed.swift */; };
103104
A53A4EE71EEF330100CC53C6 /* Rx+String.swift in Sources */ = {isa = PBXBuildFile; fileRef = A53A4EE61EEF330100CC53C6 /* Rx+String.swift */; };
104-
A53A4EE91EF01F8000CC53C6 /* String+Trimmed.swift in Sources */ = {isa = PBXBuildFile; fileRef = A53A4EE81EF01F8000CC53C6 /* String+Trimmed.swift */; };
105105
CD16463F1CC16A410049BBD5 /* UILabel+Typography.swift in Sources */ = {isa = PBXBuildFile; fileRef = CD16463E1CC16A410049BBD5 /* UILabel+Typography.swift */; };
106106
CDCDE2561E67A6EC007B3784 /* ResultTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDCDE2551E67A6EC007B3784 /* ResultTests.swift */; };
107107
CDCDE2591E67C574007B3784 /* NSDateComparableTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDCDE2581E67C574007B3784 /* NSDateComparableTests.swift */; };
@@ -233,8 +233,8 @@
233233
80D63D2C1C4F251E00C88D00 /* UnsignedInteger+Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UnsignedInteger+Extensions.swift"; sourceTree = "<group>"; };
234234
94555EC02E932CF736415F8E /* Pods.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods.framework; sourceTree = BUILT_PRODUCTS_DIR; };
235235
96E808C6BB3914E0E49C738D /* Pods_SwiftWisdom.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_SwiftWisdom.framework; sourceTree = BUILT_PRODUCTS_DIR; };
236+
A4BB8A9320DAF35000F60485 /* String+Trimmed.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "String+Trimmed.swift"; sourceTree = "<group>"; };
236237
A53A4EE61EEF330100CC53C6 /* Rx+String.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Rx+String.swift"; sourceTree = "<group>"; };
237-
A53A4EE81EF01F8000CC53C6 /* String+Trimmed.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "String+Trimmed.swift"; sourceTree = "<group>"; };
238238
CD16463E1CC16A410049BBD5 /* UILabel+Typography.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UILabel+Typography.swift"; sourceTree = "<group>"; };
239239
CDCDE2551E67A6EC007B3784 /* ResultTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ResultTests.swift; sourceTree = "<group>"; };
240240
CDCDE2581E67C574007B3784 /* NSDateComparableTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = NSDateComparableTests.swift; path = Date/NSDateComparableTests.swift; sourceTree = "<group>"; };
@@ -633,14 +633,14 @@
633633
80232BF71BF2F1BD00818B6E /* String */ = {
634634
isa = PBXGroup;
635635
children = (
636+
A4BB8A9320DAF35000F60485 /* String+Trimmed.swift */,
636637
13425F8A1DB0760400F446BE /* String+Validation.swift */,
637638
13425F881DB075E000F446BE /* String+Indexing.swift */,
638639
80D63D031C4F18FA00C88D00 /* String+Localization.swift */,
639640
FFCA61AF1C8A1F1B00FD35A7 /* String+Empty.swift */,
640641
1C99FB571DD51DEC009FC493 /* String+Data.swift */,
641642
1C99FB5B1DD525FF009FC493 /* String+Numbers.swift */,
642643
311178581E16CACF00294C25 /* String+Attributed.swift */,
643-
A53A4EE81EF01F8000CC53C6 /* String+Trimmed.swift */,
644644
);
645645
path = String;
646646
sourceTree = "<group>";
@@ -1068,7 +1068,6 @@
10681068
1C16E3031D27029D008A1001 /* NSLock+Extensions.swift in Sources */,
10691069
CD16463F1CC16A410049BBD5 /* UILabel+Typography.swift in Sources */,
10701070
80232C091BF2F1BD00818B6E /* UIColor+Hex.swift in Sources */,
1071-
A53A4EE91EF01F8000CC53C6 /* String+Trimmed.swift in Sources */,
10721071
80D63D021C4F16FE00C88D00 /* UIViewController+Nibs.swift in Sources */,
10731072
802C4BB41C1B6E4600C69D80 /* Downloader.swift in Sources */,
10741073
80D63D261C4F236F00C88D00 /* Not.swift in Sources */,
@@ -1089,6 +1088,7 @@
10891088
1C99FB561DD51DC0009FC493 /* Data+Extensions.swift in Sources */,
10901089
1C0438C41C751F2100069CE1 /* BasicVerticalGradientLayer.swift in Sources */,
10911090
8037D8731CADEE48008F324C /* Sequence+Utilities.swift in Sources */,
1091+
A4BB8A9420DAF35000F60485 /* String+Trimmed.swift in Sources */,
10921092
80232C041BF2F1BD00818B6E /* Array+Utilities.swift in Sources */,
10931093
311178591E16CACF00294C25 /* String+Attributed.swift in Sources */,
10941094
80232C031BF2F1BD00818B6E /* Geometry.swift in Sources */,
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3+
<plist version="1.0">
4+
<dict>
5+
<key>IDEDidComputeMac32BitWarning</key>
6+
<true/>
7+
</dict>
8+
</plist>

SwiftWisdom/Core/StandardLibrary/String/String+Trimmed.swift

+1-5
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,6 @@ import Foundation
1010

1111
extension String {
1212
func ip_trimmed(toLength length: Int) -> String {
13-
if ip_length > length {
14-
return substring(to: index(startIndex, offsetBy: length))
15-
} else {
16-
return self
17-
}
13+
return String(prefix(length))
1814
}
1915
}

SwiftWisdom/Rx/Rx+String.swift

+16-2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
import Foundation
1010
import RxSwift
11+
import RxCocoa
1112

1213
extension ObservableType where E == String {
1314
public func ip_limitLength(to limit: Int) -> Observable<E> {
@@ -21,14 +22,27 @@ extension ObservableType where E == String? {
2122
}
2223
}
2324

25+
extension ControlPropertyType where E == String {
26+
public func ip_limited(toLength length: Int) -> ControlProperty<String> {
27+
let values: Observable<String> = asObservable().map { $0.ip_trimmed(toLength: length) }
28+
let valueSink: AnyObserver<String> = mapObserver { $0 }
29+
return ControlProperty<String>(values: values, valueSink: valueSink)
30+
}
31+
}
32+
2433
extension Reactive where Base: UITextField {
2534
/** Limit the length of input to a text field
2635

2736
Usage Example:
2837

2938
textField.rx.ip_limitLength(to: 5)
30-
*/
31-
public func ip_limitLength(to limit: Int) -> Disposable {
39+
40+
Note: This does not restrict length when the text property of the text field is modified directly e.g.
41+
42+
textField.text = "A string over the limit"
43+
44+
*/
45+
public func ip_limitInputLength(to limit: Int) -> Disposable {
3246
return text.ip_limitLength(to: limit).bind(to: text)
3347
}
3448
}

0 commit comments

Comments
 (0)