Skip to content

Commit 6c40ef4

Browse files
committed
Shorten method body
1 parent 7c67d60 commit 6c40ef4

File tree

1 file changed

+24
-62
lines changed

1 file changed

+24
-62
lines changed

TweetNest/Shared/Previews/Extensions/TweetNestKit/PersistentContainer+Preview.swift

Lines changed: 24 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -232,69 +232,31 @@ extension PersistentContainer {
232232
userDetail.userID = latestUserDetail.userID
233233
userDetail.username = latestUserDetail.username
234234
}
235-
if let blockingUserIDs = previewUserDetail.blockingUserIDs {
236-
userDetail.blockingUserIDs = blockingUserIDs
237-
}
238-
if let creationDate = previewUserDetail.creationDate {
239-
userDetail.creationDate = creationDate
240-
}
241-
else {
242-
userDetail.creationDate = .now
243-
}
244-
if let followerUserIDs = previewUserDetail.followerUserIDs {
245-
userDetail.followerUserIDs = followerUserIDs
246-
}
247-
if let followerUsersCount = previewUserDetail.followerUsersCount {
248-
userDetail.followerUsersCount = .init(followerUsersCount)
249-
}
250-
if let followingUserIDs = previewUserDetail.followingUserIDs {
251-
userDetail.followingUserIDs = followingUserIDs
252-
}
253-
if let followingUsersCount = previewUserDetail.followingUsersCount {
254-
userDetail.followingUsersCount = .init(followingUsersCount)
255-
}
256-
if let isProtected = previewUserDetail.isProtected {
257-
userDetail.isProtected = isProtected
258-
}
259-
if let isVerified = previewUserDetail.isVerified {
260-
userDetail.isVerified = isVerified
261-
}
262-
if let listedCount = previewUserDetail.listedCount {
263-
userDetail.listedCount = .init(listedCount)
264-
}
265-
if let location = previewUserDetail.location {
266-
userDetail.location = location
267-
}
268-
if let mutingUserIDs = previewUserDetail.mutingUserIDs {
269-
userDetail.mutingUserIDs = mutingUserIDs
270-
}
271-
if let name = previewUserDetail.name {
272-
userDetail.name = name
273-
}
274-
if let profileHeaderImageURL = previewUserDetail.profileHeaderImageURL {
275-
userDetail.profileHeaderImageURL = profileHeaderImageURL
276-
}
277-
if let profileImageURL = previewUserDetail.profileImageURL {
278-
userDetail.profileImageURL = profileImageURL
279-
}
280-
if let tweetsCount = previewUserDetail.tweetsCount {
281-
userDetail.tweetsCount = .init(tweetsCount)
282-
}
283-
if let url = previewUserDetail.url {
284-
userDetail.url = url
285-
}
286-
if let userAttributedDescription = previewUserDetail.userAttributedDescription {
287-
userDetail.userAttributedDescription = .init(userAttributedDescription)
288-
}
289-
if let userCreationDate = previewUserDetail.userCreationDate {
290-
userDetail.userCreationDate = userCreationDate
291-
}
292-
if let userID = previewUserDetail.userID {
293-
userDetail.userID = userID
294-
}
295-
if let username = previewUserDetail.username {
296-
userDetail.username = username
235+
func assign<T>(_ value: T?, to dest: inout T) {
236+
if let value = value {
237+
dest = value
238+
}
297239
}
240+
assign(previewUserDetail.blockingUserIDs, to: &userDetail.blockingUserIDs)
241+
assign(previewUserDetail.creationDate ?? .now, to: &userDetail.creationDate)
242+
assign(previewUserDetail.followerUserIDs, to: &userDetail.followerUserIDs)
243+
assign(previewUserDetail.followerUsersCount.flatMap({.init($0)}), to: &userDetail.followerUsersCount)
244+
assign(previewUserDetail.followingUserIDs, to: &userDetail.followingUserIDs)
245+
assign(previewUserDetail.followingUsersCount.flatMap({.init($0)}), to: &userDetail.followingUsersCount)
246+
assign(previewUserDetail.isProtected, to: &userDetail.isProtected)
247+
assign(previewUserDetail.isVerified, to: &userDetail.isVerified)
248+
assign(previewUserDetail.listedCount.flatMap({.init($0)}), to: &userDetail.listedCount)
249+
assign(previewUserDetail.location, to: &userDetail.location)
250+
assign(previewUserDetail.mutingUserIDs, to: &userDetail.mutingUserIDs)
251+
assign(previewUserDetail.name, to: &userDetail.name)
252+
assign(previewUserDetail.profileHeaderImageURL, to: &userDetail.profileHeaderImageURL)
253+
assign(previewUserDetail.profileImageURL, to: &userDetail.profileImageURL)
254+
assign(previewUserDetail.tweetsCount.flatMap({.init($0)}), to: &userDetail.tweetsCount)
255+
assign(previewUserDetail.url, to: &userDetail.url)
256+
assign(previewUserDetail.userAttributedDescription.flatMap({.init($0)}), to: &userDetail.userAttributedDescription)
257+
assign(previewUserDetail.userCreationDate, to: &userDetail.userCreationDate)
258+
assign(previewUserDetail.userID, to: &userDetail.userID)
259+
assign(previewUserDetail.username, to: &userDetail.username)
298260
if save {
299261
do {
300262
try context.save()

0 commit comments

Comments
 (0)