Sha256: de8323c10e50ca15f957f48de413dd2c0b7c6dcf81899c07aed408d4952606c9

Contents?: true

Size: 577 Bytes

Versions: 71

Compression:

Stored size: 577 Bytes

Contents

class PhoneNumber {
    private static NANP_PATTERN =
        ~/^(?:\+?1)?[-.(\s]*([2-9]\d\d)[-.)\s]*\s?([2-9]\d\d)[-.\s]*(\d{4})\s*$/

    final String areaCode, exchange, subscriber, number, prettyNumber

    PhoneNumber(String input) {
        def matcher = (input =~ NANP_PATTERN)
        def groups = matcher ? matcher[0].tail() : ['000', '000', '0000']
        (areaCode, exchange, subscriber) = groups
        number = "${areaCode}${exchange}${subscriber}"
        prettyNumber = "(${areaCode}) ${exchange}-${subscriber}"
    }

    String toString() { prettyNumber }
}

Version data entries

71 entries across 71 versions & 1 rubygems

Version Path
trackler-2.2.1.119 tracks/groovy/exercises/phone-number/Example.groovy
trackler-2.2.1.118 tracks/groovy/exercises/phone-number/Example.groovy
trackler-2.2.1.117 tracks/groovy/exercises/phone-number/Example.groovy
trackler-2.2.1.116 tracks/groovy/exercises/phone-number/Example.groovy
trackler-2.2.1.115 tracks/groovy/exercises/phone-number/Example.groovy
trackler-2.2.1.114 tracks/groovy/exercises/phone-number/Example.groovy
trackler-2.2.1.113 tracks/groovy/exercises/phone-number/Example.groovy
trackler-2.2.1.111 tracks/groovy/exercises/phone-number/Example.groovy
trackler-2.2.1.110 tracks/groovy/exercises/phone-number/Example.groovy
trackler-2.2.1.109 tracks/groovy/exercises/phone-number/Example.groovy
trackler-2.2.1.108 tracks/groovy/exercises/phone-number/Example.groovy