Skip to content

Commit

Permalink
🎨 Add swiftformat (#32)
Browse files Browse the repository at this point in the history
🎨 Add swiftformat
  • Loading branch information
ElonPark committed Mar 26, 2021
1 parent f69ffec commit 2bc6e22
Show file tree
Hide file tree
Showing 93 changed files with 1,417 additions and 1,128 deletions.
46 changes: 46 additions & 0 deletions RIBsReactorKit/.swiftformat
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
--swiftversion 5.3

# format options
--indent 2
--extensionacl on-extension
--modifierorder
--beforemarks typealias,enum,struct
--organizetypes enum,struct,class
--self init-only
--semicolons inline
--trailingclosures
--commas inline
--stripunusedargs closure-only
--maxwidth 120
--wrapparameters before-first
--wrapcollections before-first
--wrapconditions after-first
--funcattributes prev-line
--typeattributes prev-line
--varattributes prev-line
--ranges no-space
--xcodeindentation enabled
--patternlet hoist
--marktypes if-not-empty
--typemark "MARK: - %t"
--markextensions always
--extensionmark "MARK: - %t + %c"
--groupedextension "MARK: - %c"

# file options
--exclude Scripts, Carthage, Resource, **/Generated

# rules
--enable duplicateImports
--enable enumNamespaces
--enable isEmpty
--enable markTypes
--enable wrapSwitchCases

--disable andOperator
--disable anyObjectProtocol
--disable blankLinesAtStartOfScope
--disable redundantBackticks
--disable sortedSwitchCases
--disable redundantReturn
--disable void
3 changes: 2 additions & 1 deletion RIBsReactorKit/Brewfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,5 @@ tap "homebrew/core"
brew "carthage"
brew "xcodegen"
brew "swiftgen"
brew "swiftlint"
brew "swiftlint"
brew "swiftformat"
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ import Foundation

import RxSwift

// MARK: - DelayOption

enum DelayOption {
case immediate
case constant(time: Double)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,16 @@

import RxDataSources

// MARK: - UserInfoSectionModel

struct UserInfoSectionModel {
var header: UserInfoSectionHeaderViewModel?
var hasFooter: Bool
var items: [UserInfoSectionItem]
}

// MARK: - Equatable

extension UserInfoSectionModel: Equatable {
static func == (lhs: UserInfoSectionModel, rhs: UserInfoSectionModel) -> Bool {
let isEqulHeader = lhs.header?.title == rhs.header?.title
Expand All @@ -23,29 +27,35 @@ extension UserInfoSectionModel: Equatable {
}
}

// MARK: - SectionModelType

extension UserInfoSectionModel: SectionModelType {

typealias Item = UserInfoSectionItem

init(original: UserInfoSectionModel, items: [Item]) {
self = original
}
}

// MARK: - UserInfoSectionItem

enum UserInfoSectionItem {
case profile(UserProfileViewModel)
case detail(UserDetailInfoItemViewModel)
case dummyProfile
case dummy
}

// MARK: - Equatable

extension UserInfoSectionItem: Equatable {
static func == (lhs: UserInfoSectionItem, rhs: UserInfoSectionItem) -> Bool {
switch (lhs, rhs) {
case (.profile(let lhsViewModel), .profile(let rhsViewModel)):
case let (.profile(lhsViewModel), .profile(rhsViewModel)):
return lhsViewModel.uuid == rhsViewModel.uuid

case (.detail(let lhsViewModel), .detail(let rhsViewModel)):
case let (.detail(lhsViewModel), .detail(rhsViewModel)):
return lhsViewModel.uuid == rhsViewModel.uuid

case (.dummyProfile, .dummyProfile):
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//
// UserInfomationPresentableState.swift
// UserInformationPresentableState.swift
// RIBsReactorKit
//
// Created by Elon on 2020/09/19.
Expand All @@ -8,6 +8,6 @@

import Foundation

struct UserInfomationPresentableState: Equatable {
var userInfomationSections = [UserInfoSectionModel]()
struct UserInformationPresentableState: Equatable {
var userInformationSections = [UserInfoSectionModel]()
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,21 +8,25 @@

import RxDataSources

// MARK: - UserListSectionModel

enum UserListSectionModel: Equatable {
case randomUser([UserListSectionItem])
}

// MARK: - SectionModelType

extension UserListSectionModel: SectionModelType {

typealias Item = UserListSectionItem

var items: [Item] {
switch self {
case .randomUser(let items):
case let .randomUser(items):
return items
}
}

init(original: UserListSectionModel, items: [Item]) {
switch original {
case .randomUser:
Expand All @@ -31,15 +35,19 @@ extension UserListSectionModel: SectionModelType {
}
}

// MARK: - UserListSectionItem

enum UserListSectionItem {
case user(UserListItemViewModel)
case dummy
}

// MARK: - Equatable

extension UserListSectionItem: Equatable {
static func == (lhs: UserListSectionItem, rhs: UserListSectionItem) -> Bool {
switch (lhs, rhs) {
case (.user(let lhsViewModel), .user(let rhsViewModel)):
case let (.user(lhsViewModel), .user(rhsViewModel)):
return lhsViewModel.uuid == rhsViewModel.uuid

case (.dummy, dummy):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,10 @@
// Copyright © 2020 Elon. All rights reserved.
//

import Foundation
import CoreLocation.CLLocation
import Foundation

// MARK: - UserModel

struct UserModel {
let gender: String
Expand All @@ -26,8 +28,10 @@ struct UserModel {
let thumbnailImageURL: URL?
}

// MARK: - Equatable

extension UserModel: Equatable {
static func == (lhs: UserModel, rhs: UserModel) -> Bool {
return lhs.login.uuid == rhs.login.uuid
lhs.login.uuid == rhs.login.uuid
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,38 +6,44 @@
// Copyright © 2020 Elon. All rights reserved.
//

import RxSwift
import RxRelay
import RxSwift

// MARK: - UserModelDataStream

protocol UserModelDataStream {
var userModels: Observable<[UserModel]> { get }
}

// MARK: - MutableUserModelDataStream

protocol MutableUserModelDataStream: UserModelDataStream {
func updateUserModels(with userModels: [UserModel])
func appendUserModels(with userModels: [UserModel])
}

// MARK: - UserModelDataStreamImpl

final class UserModelDataStreamImpl: MutableUserModelDataStream {

// MARK: - Properties

lazy var userModels: Observable<[UserModel]> = userModalsRelay.asObservable()
private let userModalsRelay = BehaviorRelay<[UserModel]>(value: [])

// MARK: - Internal methods

func updateUserModels(with userModels: [UserModel]) {
userModalsRelay.accept(userModels)
}

func appendUserModels(with userModels: [UserModel]) {
var newUserModals: [UserModel] {
var modals = userModalsRelay.value
modals.append(contentsOf: userModels)
return modals
}

userModalsRelay.accept(newUserModals)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,24 +6,30 @@
// Copyright © 2020 Elon. All rights reserved.
//

import RxSwift
import RxRelay
import RxSwift

// MARK: - UserModelStream

protocol UserModelStream {
var userModel: Observable<UserModel> { get }
}

// MARK: - MutableUserModelStream

protocol MutableUserModelStream: UserModelStream {
func updateUserModel(by userModel: UserModel)
}

// MARK: - UserModelStreamImpl

final class UserModelStreamImpl: MutableUserModelStream {

// MARK: - Properties

lazy var userModel: Observable<UserModel> = userModalRelay.asObservable().compactMap { $0 }
private let userModalRelay = BehaviorRelay<UserModel?>(value: nil)

// MARK: - Internal methods

func updateUserModel(by userModel: UserModel) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@

import UIKit

// MARK: - UserDetailInfoItemViewModel

protocol UserDetailInfoItemViewModel: HasUserModel, HasUUID {
var icon: UIImage? { get }
var title: String { get }
Expand All @@ -16,6 +18,8 @@ protocol UserDetailInfoItemViewModel: HasUserModel, HasUUID {
var hasSubtitle: Bool { get }
}

// MARK: - UserDetailInfoItemViewModelImpl

struct UserDetailInfoItemViewModelImpl: UserDetailInfoItemViewModel, Equatable {

let userModel: UserModel
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,14 @@

import Foundation

// MARK: - UserInfoSectionHeaderViewModel

protocol UserInfoSectionHeaderViewModel {
var title: String { get }
}

// MARK: - UserInfoSectionHeaderViewModelImpl

struct UserInfoSectionHeaderViewModelImpl: UserInfoSectionHeaderViewModel, Equatable {
var title: String
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//
// UserDetailInfomationItemViewModel.swift
// UserDetailInformationItemViewModel.swift
// RIBsReactorKit
//
// Created by Elon on 2020/09/13.
Expand All @@ -8,13 +8,13 @@

import UIKit

struct UserDetailInfomationItemViewModel: Equatable {
struct UserDetailInformationItemViewModel: Equatable {

let icon: UIImage
let title: String
let subtitle: String
let showSeparatorLine: Bool

var hasSubtitle: Bool {
!subtitle.isEmpty
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,24 +8,28 @@

import Foundation

protocol UserListItemViewModel: HasUserModel, HasUUID {
// MARK: - UserListItemViewModel

protocol UserListItemViewModel: HasUserModel, HasUUID {
var profileImageURL: URL? { get }
var titleWithFullName: String { get }
var location: String { get }
}

// MARK: - UserListItemViewModelImpl

struct UserListItemViewModelImpl: UserListItemViewModel, Equatable {

let userModel: UserModel

var profileImageURL: URL? {
userModel.thumbnailImageURL
}

var titleWithFullName: String {
"\(userModel.name.title). \(userModel.name.first) \(userModel.name.last)"
}

var location: String {
"\(userModel.location.city) \(userModel.location.state) \(userModel.location.country)"
}
Expand Down
Loading

0 comments on commit 2bc6e22

Please sign in to comment.