Skip to content

Commit 991a95a

Browse files
leogdionclaude
andcommitted
Replace FormattingHelpers with FormatStyle-based Formatters
- Add modern FormatStyle properties to Formatters enum (dateFormat, dateTimeFormat, fileSizeFormat) - Replace FormattingHelpers static methods with Swift's modern .formatted() API - Update and rename FormattingHelpersTests to FormattersTests - Remove deprecated FormattingHelpers utility class 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
1 parent 268d0c1 commit 991a95a

File tree

3 files changed

+24
-76
lines changed

3 files changed

+24
-76
lines changed

Packages/BushelKit/Sources/BushelFoundation/Formatters.swift

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,4 +97,18 @@ public enum Formatters {
9797
return dateFormatter
9898
}()
9999
#endif
100+
101+
// MARK: - Modern FormatStyle Properties
102+
103+
/// A date format style for displaying dates (e.g., "Jan 15, 2025")
104+
/// Equivalent to FormattingHelpers.formatDate()
105+
public static let dateFormat: Date.FormatStyle = .init(date: .abbreviated, time: .omitted)
106+
107+
/// A date format style for displaying dates with time (e.g., "Jan 15, 2025 at 3:45 PM")
108+
/// Equivalent to FormattingHelpers.formatDateTime()
109+
public static let dateTimeFormat: Date.FormatStyle = .init(date: .abbreviated, time: .shortened)
110+
111+
/// A byte count format style for displaying file sizes (e.g., "1.23 GB")
112+
/// Equivalent to FormattingHelpers.formatFileSize()
113+
public static let fileSizeFormat: ByteCountFormatStyle = .init(style: .file)
100114
}

Packages/BushelKit/Sources/BushelUtilities/FormattingHelpers.swift

Lines changed: 0 additions & 66 deletions
This file was deleted.

Packages/BushelKit/Tests/BushelUtlitiesTests/FormattingHelpersTests.swift renamed to Packages/BushelKit/Tests/BushelUtlitiesTests/FormattersTests.swift

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
//
2-
// FormattingHelpersTests.swift
2+
// FormattersTests.swift
33
// BushelKit
44
//
55
// Created by Leo Dion.
@@ -29,12 +29,12 @@
2929

3030
import XCTest
3131

32-
@testable import BushelUtilities
32+
@testable import BushelFoundation
3333

34-
internal final class FormattingHelpersTests: XCTestCase {
34+
internal final class FormattersTests: XCTestCase {
3535
internal func testFormatDate() {
3636
let date = Date(timeIntervalSince1970: 1_700_000_000)
37-
let formatted = FormattingHelpers.formatDate(date)
37+
let formatted = date.formatted(Formatters.dateFormat)
3838

3939
// Should return medium date format
4040
XCTAssertFalse(formatted.isEmpty)
@@ -43,7 +43,7 @@ internal final class FormattingHelpersTests: XCTestCase {
4343

4444
internal func testFormatDateTime() {
4545
let date = Date(timeIntervalSince1970: 1_700_000_000)
46-
let formatted = FormattingHelpers.formatDateTime(date)
46+
let formatted = date.formatted(Formatters.dateTimeFormat)
4747

4848
// Should include both date and time
4949
XCTAssertFalse(formatted.isEmpty)
@@ -53,36 +53,36 @@ internal final class FormattingHelpersTests: XCTestCase {
5353

5454
internal func testFormatFileSizeGB() {
5555
let bytes = 2_500_000_000 // 2.5 GB
56-
let formatted = FormattingHelpers.formatFileSize(bytes)
56+
let formatted = bytes.formatted(Formatters.fileSizeFormat)
5757

5858
XCTAssertEqual(formatted, "2.50 GB")
5959
}
6060

6161
internal func testFormatFileSizeMB() {
6262
let bytes = 500_000_000 // 500 MB
63-
let formatted = FormattingHelpers.formatFileSize(bytes)
63+
let formatted = bytes.formatted(Formatters.fileSizeFormat)
6464

6565
XCTAssertEqual(formatted, "500 MB")
6666
}
6767

6868
internal func testFormatFileSizeSmallMB() {
6969
let bytes = 50_000_000 // 50 MB
70-
let formatted = FormattingHelpers.formatFileSize(bytes)
70+
let formatted = bytes.formatted(Formatters.fileSizeFormat)
7171

7272
XCTAssertEqual(formatted, "50 MB")
7373
}
7474

7575
internal func testFormatFileSizeLargeGB() {
7676
let bytes = 15_000_000_000 // 15 GB
77-
let formatted = FormattingHelpers.formatFileSize(bytes)
77+
let formatted = bytes.formatted(Formatters.fileSizeFormat)
7878

7979
XCTAssertEqual(formatted, "15.00 GB")
8080
}
8181

8282
internal func testFormatFileSizeBoundary() {
8383
// Exactly 1 GB
8484
let bytes = 1_000_000_000
85-
let formatted = FormattingHelpers.formatFileSize(bytes)
85+
let formatted = bytes.formatted(Formatters.fileSizeFormat)
8686

8787
XCTAssertEqual(formatted, "1.00 GB")
8888
}

0 commit comments

Comments
 (0)