Skip to content

Implement String Interpolation Extensions to prevent users from using the long formatter syntax #28

@Blackjacx

Description

@Blackjacx

Expected behaviour

The is a super user friendly way to format dates into strings. We need one extension for each Date format (or one with 2 parameters, date and format):

extension String.StringInterpolation {
    mutating func appendInterpolation(date: Date, format: SHDateFormat) {
       let string = SHDateFormatter.shared.string(from: date, format: format)
       appendLiteral(string)
    }
}
// "Your time is \(date: Date(), format: .shortTimeNoDate)" <-- automatically compatible to new formats

OR

extension String.StringInterpolation {
    mutating func appendInterpolation(shortTimeNoDate date: Date) {
       let string = SHDateFormatter.shared.string(from: date, format: .shortTimeNoDate)
       appendLiteral(string)
    }
}
// "Your time is \(shortTimeNoDate: Date())" <-- a bit shorter but needs a new extension for each new format

[...]

Actual behaviour

Right now, to formt a string, a user has to use:

let time = SHDateFormatter.shared.string(from: Date(), format: .shortTimeNoDate)
let string = "Now is \(time)"

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions