Sha256: a5b2451cfff1884ac41c7797651369436bbf123b0643aca1a6f49e720b0c3704

Contents?: true

Size: 1.12 KB

Versions: 1

Compression:

Stored size: 1.12 KB

Contents

require_relative "sequence_name/constants"

module Unicode
  module SequenceName
    def self.sequence_name(string)
      codepoints = get_codepoint_values(string)
      require_relative "sequence_name/index" unless defined? ::Unicode::SequenceName::INDEX
      if res = INDEX[:SEQUENCES][codepoints] || INDEX[:SEQUENCES_NOT_QUALIFIED][codepoints]
        res
      else
        nil
      end
    end
    class << self; alias of sequence_name; end

    def self.fully_qualified(string)
      codepoints = get_codepoint_values(string)
      require_relative "sequence_name/index" unless defined? ::Unicode::SequenceName::INDEX
      if res = INDEX[:SEQUENCES][codepoints]
        res
      else
        nil
      end
    end

    def self.get_codepoint_values(string)
      if string.valid_encoding?
        return string.codepoints
      elsif string.encoding.name == "UTF-8"
        begin
          return string.unpack("U*")
        rescue ArgumentError
        end
      end

      raise(ArgumentError, "Unicode::SequenceName.of must be given a valid string")
    end

    class << self
      private :get_codepoint_values
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
unicode-sequence_name-1.15.0 lib/unicode/sequence_name.rb