Sha256: bc978fe6c8771239dccaf2d844b7bda373f10dd05ff2f4352853b1e1c05acaba

Contents?: true

Size: 679 Bytes

Versions: 1

Compression:

Stored size: 679 Bytes

Contents

require_relative "age/version"

module Unicode
  module Age
    KNOWN_UNICODE_VERSIONS = [
      1.1,
      2.0,
      2.1,
      3.0,
      3.1,
      3.2,
      4.0,
      4.1,
      5.0,
      5.1,
      5.2,
      6.0,
      6.1,
      6.2,
      6.3,
      7.0,
      8.0,
      9.0,
    ].freeze

    KNOWN_UNICODE_REGEXES = KNOWN_UNICODE_VERSIONS.map{ |uv|
      begin
        /\A\p{age=#{"%.1f" % uv}}*\z/
      rescue RegexpError
      end
    }.compact.freeze

    def self.of(string)
      return nil if string =~ /\A\p{Unassigned}*\z/
      KNOWN_UNICODE_VERSIONS.find.with_index{ |uv, index|
        string =~ KNOWN_UNICODE_REGEXES[index]
      }
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
unicode-age-1.1.0 lib/unicode/age.rb