From 638399eb2d2dac7cf251ddbd6f15e1eb024c89ae Mon Sep 17 00:00:00 2001 From: Igor Kislyuk Date: Fri, 28 Jul 2017 14:24:38 +0300 Subject: [PATCH] Fix. Linting & rules --- LeadKitAdditions/.swiftlint.yml | 138 +----------------- .../View/BasePassCodeViewController.swift | 4 +- .../ViewModel/BasePassCodeViewModel.swift | 14 +- .../Sources/Services/MaskFieldTextProxy.swift | 4 +- .../ValidationService/ValidationItem.swift | 4 +- .../Views/CellTextField/CellTextField.swift | 6 +- .../CellTextFieldViewModel.swift | 14 +- 7 files changed, 31 insertions(+), 153 deletions(-) mode change 100644 => 120000 LeadKitAdditions/.swiftlint.yml diff --git a/LeadKitAdditions/.swiftlint.yml b/LeadKitAdditions/.swiftlint.yml deleted file mode 100644 index cd926c2..0000000 --- a/LeadKitAdditions/.swiftlint.yml +++ /dev/null @@ -1,137 +0,0 @@ -disabled_rules: - - identifier_name -excluded: - - Carthage - - Pods - -line_length: 128 -type_body_length: - - 500 # warning - - 700 # error -file_length: - warning: 500 - error: 1200 -warning_threshold: 1 - -custom_rules: - uiwebview_disabled: - included: ".*.swift" - name: "UIWebView Usage Disabled" - regex: 'UIWebView' - message: "Do not use UIWebView. Use WKWebView Instead. https://developer.apple.com/reference/uikit/uiwebview" - severity: error - - native_print: - name: "print -> DDLog" - regex: '(print|NSLog)\(' - message: "Please use CocoaLumberjack instead `print` and `NSlog`" - severity: error - - zero: - name: "Short .zero" - regex: '\(top: 0, left: 0, bottom: 0, right: 0\)' - message: "Please use short init `.zero`." - severity: error - - private_variable: - name: "Private variable" - regex: '(?|>=)\s*0' - message: "Prefer checking `isEmpty` over comparing `count` to zero." - severity: warning - - # Should be { braces_body } instead of {braces_body} - spaces_around_braces: - included: ".*.swift" - name: "Spaces around the braces" - regex: '(([A-Za-z0-9])[\{\}])|([\{\}]([A-Za-z0-9]))' - message: "No spaces around the braces" - severity: error - match_kinds: - - attribute.builtin - - attribute.id - - buildconfig.id - - buildconfig.keyword - - identifier - - keyword - - objectliteral - - parameter - - placeholder - - typeidentifier - - inout_keyword: - name: "Inout" - regex: 'inout' - message: "Don't use inout arguments" - severity: error - match_kinds: keyword - - continue_keyword: - name: "Continue" - regex: 'continue' - message: "Don't use continue instruction" - severity: error - match_kinds: keyword - - cyrillic_strings: - name: "Cyrillic strings" - regex: '[а-яА-Я]+' - message: "Localize or translate" - severity: error - match_kinds: - - identifier - - string - - simple_ban: - name: "Simple type name" - regex: '(class|struct)(.)+[sS]imple(.)+\{' - message: "Don't use 'simple' in type name, use 'default' or 'base' instead" - severity: warning diff --git a/LeadKitAdditions/.swiftlint.yml b/LeadKitAdditions/.swiftlint.yml new file mode 120000 index 0000000..7fc22af --- /dev/null +++ b/LeadKitAdditions/.swiftlint.yml @@ -0,0 +1 @@ +../code-quality/.swiftlint.yml \ No newline at end of file diff --git a/LeadKitAdditions/Sources/Controllers/PassCode/View/BasePassCodeViewController.swift b/LeadKitAdditions/Sources/Controllers/PassCode/View/BasePassCodeViewController.swift index 11591ce..ccb7918 100644 --- a/LeadKitAdditions/Sources/Controllers/PassCode/View/BasePassCodeViewController.swift +++ b/LeadKitAdditions/Sources/Controllers/PassCode/View/BasePassCodeViewController.swift @@ -212,11 +212,11 @@ extension BasePassCodeViewController: ConfigurableController { open func bindViews() { fakeTextField.rx.text.asDriver() - .do(onNext: { [weak self] text in + .drive(onNext: { [weak self] text in self?.setStates(for: text ?? "") self?.hideError() + self?.viewModel.setPassCodeText(text) }) - .drive(viewModel.passCodeText) .addDisposableTo(disposeBag) viewModel.validationResult diff --git a/LeadKitAdditions/Sources/Controllers/PassCode/ViewModel/BasePassCodeViewModel.swift b/LeadKitAdditions/Sources/Controllers/PassCode/ViewModel/BasePassCodeViewModel.swift index b78d9a4..f17ca41 100644 --- a/LeadKitAdditions/Sources/Controllers/PassCode/ViewModel/BasePassCodeViewModel.swift +++ b/LeadKitAdditions/Sources/Controllers/PassCode/ViewModel/BasePassCodeViewModel.swift @@ -52,9 +52,7 @@ open class BasePassCodeViewModel: BaseViewModel { return passCodeControllerStateHolder.asDriver() } - // swiftlint:disable private_variable - public let passCodeText = Variable(nil) - // swiftlint:enable private_variable + private let passCodeText = Variable(nil) fileprivate var attemptsNumber = 0 @@ -110,6 +108,16 @@ open class BasePassCodeViewModel: BaseViewModel { .addDisposableTo(disposeBag) } + // MARK: - Public + + public var passCodeTextValue: String? { + return passCodeText.value + } + + public func setPassCodeText(_ value: String?) { + passCodeText.value = value + } + public func reset() { passCodeText.value = nil validationResultHolder.value = nil diff --git a/LeadKitAdditions/Sources/Services/MaskFieldTextProxy.swift b/LeadKitAdditions/Sources/Services/MaskFieldTextProxy.swift index cfd4ead..a275c51 100644 --- a/LeadKitAdditions/Sources/Services/MaskFieldTextProxy.swift +++ b/LeadKitAdditions/Sources/Services/MaskFieldTextProxy.swift @@ -6,9 +6,7 @@ class MaskFieldTextProxy: NSObject { private var disposeBag = DisposeBag() - // swiftlint:disable private_variable - let text = Variable("") - // swiftlint:enable private_variable + fileprivate let text = Variable("") fileprivate let isCompleteHolder = Variable(false) var isComplete: Bool { diff --git a/LeadKitAdditions/Sources/Services/ValidationService/ValidationItem.swift b/LeadKitAdditions/Sources/Services/ValidationService/ValidationItem.swift index 3204d53..e848cd5 100644 --- a/LeadKitAdditions/Sources/Services/ValidationService/ValidationItem.swift +++ b/LeadKitAdditions/Sources/Services/ValidationService/ValidationItem.swift @@ -43,9 +43,7 @@ class ValidationItem { return validationStateHolder.asObservable() } - // swiftlint:disable private_variable - let text = Variable(nil) - // swiftlint:enable private_variable + private let text = Variable(nil) private(set) var rules: [Rule] = [] diff --git a/LeadKitAdditions/Sources/Views/CellTextField/CellTextField.swift b/LeadKitAdditions/Sources/Views/CellTextField/CellTextField.swift index 4ccf4ac..0377b83 100644 --- a/LeadKitAdditions/Sources/Views/CellTextField/CellTextField.swift +++ b/LeadKitAdditions/Sources/Views/CellTextField/CellTextField.swift @@ -24,14 +24,16 @@ class CellTextField: UITextField { inputAccessoryView = viewModel.toolBar returnKeyType = viewModel.returnButtonType - text = viewModel.text.value + text = viewModel.textValue placeholder = viewModel.placeholder viewModel.textFieldSettingsBlock?(self) viewModel.bind(for: self, to: disposeBag) rx.text.asDriver() - .drive(viewModel.text) + .drive(onNext: { + viewModel.setTextValue($0) + }) .addDisposableTo(disposeBag) rx.controlEvent(.editingDidEndOnExit).asObservable() diff --git a/LeadKitAdditions/Sources/Views/CellTextField/CellTextFieldViewModel.swift b/LeadKitAdditions/Sources/Views/CellTextField/CellTextFieldViewModel.swift index 1c9ffcd..b3508f8 100644 --- a/LeadKitAdditions/Sources/Views/CellTextField/CellTextFieldViewModel.swift +++ b/LeadKitAdditions/Sources/Views/CellTextField/CellTextFieldViewModel.swift @@ -3,9 +3,7 @@ import RxSwift class CellTextFieldViewModel: CellFieldJumpingProtocol { - // swiftlint:disable private_variable - let text: Variable - // swiftlint:enable private_variable + private let text: Variable let placeholder: String @@ -30,4 +28,14 @@ class CellTextFieldViewModel: CellFieldJumpingProtocol { self.textFieldSettingsBlock = textFieldSettingsBlock } + // MARK: - Internal + + var textValue: String? { + return text.value + } + + func setTextValue(_ value: String?) { + text.value = value + } + }