Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 27 additions & 6 deletions Sources/OversizeCore/Extensions/Locale/Currency+Extension.swift
Original file line number Diff line number Diff line change
@@ -1,29 +1,50 @@
//
// Copyright Β© 2023 Alexander Romanov
// CurrencyExtension.swift, created on 15.07.2023
// Currency+Extension.swift, created on 15.07.2023
//

import Foundation

@available(macOS 13, iOS 16, tvOS 16, watchOS 9, *)
public extension Locale.Currency {
var dispalyName: String? {
var displayName: String? {
Locale.current.localizedString(forCurrencyCode: identifier)
}

var dispalyIdentifier: String? {
var displayIdentifier: String? {
identifier.uppercased()
}

var dispalyLocalizedSymbol: String? {
var displayLocalizedSymbol: String? {
Locale.current.localizedCurrencySymbol(forCurrencyCode: identifier)
}

var dispalySymbol: String? {
var displaySymbol: String? {
let allLocalCurrencies = Locale.availableIdentifiers.compactMap { Locale(identifier: $0) }
return allLocalCurrencies.first { $0.currency == self }?.currencySymbol
}

// MARK: - Deprecated aliases for backward compatibility
@available(*, deprecated, renamed: "displayName", message: "Use displayName instead")
var dispalyName: String? {
displayName
}

@available(*, deprecated, renamed: "displayIdentifier", message: "Use displayIdentifier instead")
var dispalyIdentifier: String? {
displayIdentifier
}

@available(*, deprecated, renamed: "displayLocalizedSymbol", message: "Use displayLocalizedSymbol instead")
var dispalyLocalizedSymbol: String? {
displayLocalizedSymbol
}

@available(*, deprecated, renamed: "displaySymbol", message: "Use displaySymbol instead")
var dispalySymbol: String? {
displaySymbol
}

var locale: Locale? {
let allLocalCurrencies = Locale.availableIdentifiers.compactMap { Locale(identifier: $0) }
return allLocalCurrencies.first { $0.currency == self }
Expand All @@ -33,6 +54,6 @@ public extension Locale.Currency {
Locale.availableIdentifiers
.compactMap { Locale(identifier: $0).currency }
.removeDuplicates()
.sorted { $0.dispalyName ?? "" < $1.dispalyName ?? "" }
.sorted { $0.displayName ?? "" < $1.displayName ?? "" }
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
//
// Copyright Β© 2023 Alexander Romanov
// LocaleExtension.swift, created on 15.07.2023
// Locale+Extension.swift, created on 15.07.2023
//

import Foundation
Expand Down
2 changes: 1 addition & 1 deletion Sources/OversizeCore/Extensions/Swift/Date+Extension.swift
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ public extension Date {
Calendar.current.date(byAdding: .day, value: -30, to: self)!
}

var halfYarBefore: Date {
var halfYearBefore: Date {
Calendar.current.date(byAdding: .month, value: -6, to: self)!
}

Expand Down
8 changes: 5 additions & 3 deletions Sources/OversizeCore/Extensions/Swift/String+Extension.swift
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ public extension String {
var urlEncode: String {
let originalString = self
let escapedString = originalString.addingPercentEncoding(withAllowedCharacters: .urlHostAllowed)
return escapedString!
return escapedString ?? originalString
}

var url: URL? {
Expand Down Expand Up @@ -83,7 +83,7 @@ public extension String {
}

var data: Data {
self.data(using: String.Encoding.utf8)!
self.data(using: String.Encoding.utf8) ?? Data()
}

var range: NSRange {
Expand Down Expand Up @@ -114,7 +114,9 @@ public extension String {
return matches.map {
var array: [String] = []
for rangeIndex in 0 ... max(0, $0.numberOfRanges - 1) {
array.append(String(self[Range($0.range(at: rangeIndex), in: self)!]))
if let range = Range($0.range(at: rangeIndex), in: self) {
array.append(String(self[range]))
}
}
return array
}
Expand Down
16 changes: 12 additions & 4 deletions Sources/OversizeCore/Global/Delay.swift
Original file line number Diff line number Diff line change
Expand Up @@ -14,21 +14,29 @@ public func delay(_ time: ContinuousClock.Duration, action: @Sendable @escaping
do {
try await Task.sleep(for: time)
await action()
} catch {}
} catch {
logError("Delay function failed", error: error)
}
}

@available(iOS 16.0, tvOS 16.0, watchOS 9.0, macOS 13.0, *)
public func delayMain(_ time: ContinuousClock.Duration, action: @MainActor @Sendable @escaping () async -> Void) async {
do {
try await Task.sleep(for: time)
await action()
} catch {}
} catch {
logError("DelayMain function failed", error: error)
}
}

@available(iOS 16.0, tvOS 16.0, watchOS 9.0, macOS 13.0, *)
public func delayDetached(_ time: ContinuousClock.Duration, action: @Sendable @escaping () -> Void) {
Task.detached {
try await Task.sleep(for: time)
action()
do {
try await Task.sleep(for: time)
action()
} catch {
logError("DelayDetached function failed", error: error)
}
}
}