Sha256: 0031f9cb4fa2c0ebf643ba05b17146c2f112fb65fa37b2ae51dae20294ea4884

Contents?: true

Size: 1.24 KB

Versions: 28

Compression:

Stored size: 1.24 KB

Contents

# encoding: UTF-8

# Copyright 2012 Twitter, Inc
# http://www.apache.org/licenses/LICENSE-2.0

module TwitterCldr
  module Parsers
    class UnicodeRegexParser

      # unicode_char, escaped_char, string, multichar_string
      # Can exist inside and outside of character classes
      class UnicodeString < Component

        attr_reader :codepoints

        def initialize(codepoints)
          @codepoints = codepoints
        end

        def to_set
          # If the number of codepoints is greater than 1, treat them as a
          # group (eg. multichar string). This is definitely a hack in that
          # it means there has to be special logic in RangeSet that deals
          # with data types that aren't true integer ranges. I can't think
          # of any other way to support multichar strings :(
          if codepoints.size > 1
            TwitterCldr::Utils::RangeSet.new([codepoints..codepoints])
          else
            TwitterCldr::Utils::RangeSet.new([codepoints.first..codepoints.first])
          end
        end

        def to_regexp_str
          array_to_regex(Array(codepoints))
        end

        def to_s
          to_regexp_str
        end

        def type
          :unicode_string
        end

      end
    end
  end
end

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
twitter_cldr-6.12.1 lib/twitter_cldr/parsers/unicode_regex/unicode_string.rb
twitter_cldr-6.12.0 lib/twitter_cldr/parsers/unicode_regex/unicode_string.rb
twitter_cldr-6.11.5 lib/twitter_cldr/parsers/unicode_regex/unicode_string.rb
twitter_cldr-6.11.4 lib/twitter_cldr/parsers/unicode_regex/unicode_string.rb
twitter_cldr-6.11.3 lib/twitter_cldr/parsers/unicode_regex/unicode_string.rb
twitter_cldr-6.11.2 lib/twitter_cldr/parsers/unicode_regex/unicode_string.rb
twitter_cldr-6.11.1 lib/twitter_cldr/parsers/unicode_regex/unicode_string.rb
twitter_cldr-6.11.0 lib/twitter_cldr/parsers/unicode_regex/unicode_string.rb
twitter_cldr-6.10.0 lib/twitter_cldr/parsers/unicode_regex/unicode_string.rb
twitter_cldr-6.9.0 lib/twitter_cldr/parsers/unicode_regex/unicode_string.rb
twitter_cldr-6.8.0 lib/twitter_cldr/parsers/unicode_regex/unicode_string.rb
twitter_cldr-6.7.0 lib/twitter_cldr/parsers/unicode_regex/unicode_string.rb
twitter_cldr-6.6.2 lib/twitter_cldr/parsers/unicode_regex/unicode_string.rb
twitter_cldr-6.6.1 lib/twitter_cldr/parsers/unicode_regex/unicode_string.rb
twitter_cldr-6.6.0 lib/twitter_cldr/parsers/unicode_regex/unicode_string.rb
twitter_cldr-6.5.0 lib/twitter_cldr/parsers/unicode_regex/unicode_string.rb
twitter_cldr-6.4.0 lib/twitter_cldr/parsers/unicode_regex/unicode_string.rb
twitter_cldr-6.3.0 lib/twitter_cldr/parsers/unicode_regex/unicode_string.rb
twitter_cldr-6.2.0 lib/twitter_cldr/parsers/unicode_regex/unicode_string.rb
twitter_cldr-6.1.0 lib/twitter_cldr/parsers/unicode_regex/unicode_string.rb