rom

Roman

Seamless Roman numeral conversion in Swift

Showing:

Popularity

Downloads/wk

0

GitHub Stars

36

Maintenance

Last Commit

6yrs ago

Contributors

1

Package

Dependencies

0

License

MIT

Categories

Readme

Roman Banner

Platform Swift Package Manager CocoaPods Carthage MIT License

InstallationUsageLicenseDocumentation

Roman is a Swift framework that allows for seamless Roman numeral conversion.

Installation

Compatibility:

  • Platforms:
    • OS X
    • iOS
    • watchOS
    • tvOS
    • Linux
  • Language:
    • Swift 2.1+

Install Using Swift Package Manager

The Swift Package Manager is a decentralized dependency manager for Swift.

  1. Add the project to your Package.swift.

    import PackageDescription
    
    let package = Package(
        name: "MyAwesomeProject",
        dependencies: [
            .Package(url: "https://github.com/nvzqz/Roman.git",
                     majorVersion: 1)
        ]
    )
    
  2. Import the Roman module.

    import Roman
    

Install Using CocoaPods

CocoaPods is a centralized dependency manager for Objective-C and Swift. Go here to learn more.

  1. Add the project to your Podfile.

    use_frameworks!
    
    pod 'Roman', '~> 1.1.0'
    
  2. Run pod install and open the .xcworkspace file to launch Xcode.

  3. Import the Roman framework.

    import Roman
    

Install Using Carthage

Carthage is a decentralized dependency manager for Objective-C and Swift.

  1. Add the project to your Cartfile.

    github "nvzqz/Roman"
    
  2. Run carthage update and follow the additional steps in order to add Roman to your project.

  3. Import the Roman framework.

    import Roman
    

Install Manually

Simply add the Roman.swift file into your project.

Usage

String

A Roman numeral string can be created from an instance of a type that conforms to IntegerType.

String(roman: 1478)  // "MCDLXXVIII"
String(roman: 2743)  // "MMDCCXLIII"
String(roman: 1226)  // "MCCXXVI"
String(roman: 0)     // nil
String(roman: -42)   // nil

IntegerType

All types that conform to IntegerType can be initialized from a Roman numeral string.

The input string is case insensitive.

Int(roman: "III")  // 3
Int(roman: "MIV")  // 1004
Int(roman: "CdV")  // 405

Roman even supports irregular numerals that don't use a short form.

Each of the following evaluates to true:

Int(roman: "IV") == Int(roman: "IIII")
Int(roman: "XX") == Int(roman: "VVVV")
Int(roman: "CD") == Int(roman: "CCCC")

Invalid strings return nil.

Int(roman: "hello") == nil
Int(roman: "IIIXX") == nil
Int(roman: "XYZ")   == nil

FloatingPointType

All types that conform to FloatingPointType can be initialized from a Roman numeral string.

Creating instances from Roman numerals works the same way as with IntegerType.

License

Roman is released under the MIT License.

All assets are released under the Creative Commons Attribution-ShareAlike 4.0 International License and can be found in the Assets folder.

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100