Skip to content

Refactor and Modernize ISO8601DateFormatter #21

Open
@blakewatters

Description

@blakewatters

Hi Peter -

Thanks so much for your most excellent contribution of ISO8601DateFormatter to the Cocoa Open Source community. It definitely has to be one of the most widely used libraries floating around.

Several years ago I integrated the library into RestKit/RestKit and have been maintaining a forked version of the library ever since. We have made a number of incremental improvements to the package. We are currently in the process of atomizing some parts of RestKit into smaller more modular libraries and one of the sticking points at the moment is the dependence on the forked copy of the date formatter.

This has put me in the position of either a) shipping a standalone competing implementation of the date formatter or b) trying to integrate our changes back into the mainline so that there is one authoritative code base out there. I'd prefer to go the latter route and wanted to reach out and gauge your enthusiasm for larger changes to the library.

I'd like to do the following:

  • Put an Xcode project on tree and integrate unit tests that aren't dependent on python / shell scripting.
  • Put the project under Travis CI for continuous integration of the tests.
  • Modernize the date formatter by updating it for ARC.
  • Integrate whatever fixes I have in my codebase that have not appeared in your main line and add appropriate test coverage.
  • Clean up the formatting and styling in use within the library to be more in line with modern idiomatic Cocoa.
  • Improve the thread-safety of the library by factoring the parsing state out of the main class such that a new parsing operation object is created on each invocation.
  • Refactor the parsing routines to be simpler to read and follow. The library has excellent support for the ISO date format standard, but is rather hard to follow.
  • Mark up the source code with Appledoc

Let me know if this is of interest to you and you'd be willing to merge such changes. I am also happy to help you with on-going maintenance of the library.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions