Fix. Linting & rules

This commit is contained in:
Igor Kislyuk 2017-07-28 14:24:38 +03:00
parent 9c04cbdc32
commit 638399eb2d
7 changed files with 31 additions and 153 deletions

View File

@ -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: '(?<!private\s)let\s\w*(:|(\s=))\sVariable'
message: "Please use (file)private with variable."
severity: error
let_variable:
name: "Let Variable"
regex: 'var\s\w*(:|(\s=))\sVariable'
message: "Please make variable using `let`."
severity: error
marks_style:
name: "Marks"
regex: '// MARK: -?[a-zA-Z0-9]'
message: "Marks should follow the following structure: // MARK: - Comment."
severity: warning
no_header_comments:
name: "Header Comments"
regex: '//\s*Created by.*\s*//\s*Copyright'
match_kinds:
- comment
message: "Template header comments should be removed."
private_outlet:
name: "Outlet"
regex: '@IBOutlet(\sweak)?(\s(file)?private(\(set\))?)?\svar'
message: "Please use some of `private` modifiers and make property it weak. Use pattern: `IBOutlet private weak var`."
severity: error
delegate:
name: "Delegate"
regex: '(?<!weak\s)var\s\w*(D|d)elegate\w*:'
message: "Please use `weak` for `delegate`. "
severity: error
unnecessary_type:
name: "Unnecessary Type"
regex: '[ @a-zA-Z]*(?:let|var)\s\w*: ([a-zA-Z0-9]*)\?? = \1'
message: "Type definition not needed"
severity: error
unowned:
name: "Unowned"
regex: 'unowned'
message: "Please use `weak` instead. "
severity: error
empty_count_zero:
name: "Empty Count Violation"
regex: '\.count\s*(==|!=|<|<=|>|>=)\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

View File

@ -0,0 +1 @@
../code-quality/.swiftlint.yml

View File

@ -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

View File

@ -52,9 +52,7 @@ open class BasePassCodeViewModel: BaseViewModel {
return passCodeControllerStateHolder.asDriver()
}
// swiftlint:disable private_variable
public let passCodeText = Variable<String?>(nil)
// swiftlint:enable private_variable
private let passCodeText = Variable<String?>(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

View File

@ -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 {

View File

@ -43,9 +43,7 @@ class ValidationItem {
return validationStateHolder.asObservable()
}
// swiftlint:disable private_variable
let text = Variable<String?>(nil)
// swiftlint:enable private_variable
private let text = Variable<String?>(nil)
private(set) var rules: [Rule] = []

View File

@ -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()

View File

@ -3,9 +3,7 @@ import RxSwift
class CellTextFieldViewModel: CellFieldJumpingProtocol {
// swiftlint:disable private_variable
let text: Variable<String?>
// swiftlint:enable private_variable
private let text: Variable<String?>
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
}
}