Sha256: e87b69cfb512e96812c1d3822e6051c9e254f48bba07ad47fe6147361a1a144f

Contents?: true

Size: 916 Bytes

Versions: 77

Compression:

Stored size: 916 Bytes

Contents

module Twitter
  # This module lazily defines constants of the form Uxxxx for all Unicode
  # codepoints from U0000 to U10FFFF. The value of each constant is the
  # UTF-8 string for the codepoint.
  # Examples:
  #   copyright = Unicode::U00A9
  #   euro = Unicode::U20AC
  #   infinity = Unicode::U221E
  #
  module Unicode
    CODEPOINT_REGEX = /^U_?([0-9a-fA-F]{4,5}|10[0-9a-fA-F]{4})$/

    def self.const_missing(name)
      # Check that the constant name is of the right form: U0000 to U10FFFF
      if name.to_s =~ CODEPOINT_REGEX
        # Convert the codepoint to an immutable UTF-8 string,
        # define a real constant for that value and return the value
        #p name, name.class
        const_set(name, [$1.to_i(16)].pack("U").freeze)
      else  # Raise an error for constants that are not Unicode.
        raise NameError, "Uninitialized constant: Unicode::#{name}"
      end
    end
  end

end

Version data entries

77 entries across 75 versions & 5 rubygems

Version Path
tdiary-5.0.8 vendor/bundle/gems/twitter-text-1.14.7/lib/twitter-text/unicode.rb
twitter-text-2.0.2 lib/twitter-text/unicode.rb
twitter-text-2.0.1 lib/twitter-text/unicode.rb
twitter-text-2.0.0 lib/twitter-text/unicode.rb
twitter-text-1.14.7 lib/twitter-text/unicode.rb
tdiary-5.0.5 vendor/bundle/gems/tdiary-5.0.4/vendor/bundle/gems/twitter-text-1.14.5/lib/twitter-text/unicode.rb
tdiary-5.0.5 vendor/bundle/gems/twitter-text-1.14.5/lib/twitter-text/unicode.rb
tdiary-5.0.5 vendor/bundle/gems/twitter-text-1.14.6/lib/twitter-text/unicode.rb
twitter-text-1.14.6 lib/twitter-text/unicode.rb
tdiary-5.0.4 vendor/bundle/gems/twitter-text-1.14.5/lib/twitter-text/unicode.rb
twitter-text-1.14.5 lib/twitter-text/unicode.rb
twitter-text-1.14.2 lib/twitter-text/unicode.rb
twitter-text-1.14.1 lib/twitter-text/unicode.rb
twitter-text-1.14.0 lib/twitter-text/unicode.rb
twitter-text-1.13.4 lib/twitter-text/unicode.rb
twitter-text-1.13.3 lib/twitter-text/unicode.rb
tdiary-4.2.1 vendor/bundle/ruby/2.2.0/gems/twitter-text-1.13.0/lib/twitter-text/unicode.rb
twitter-text-1.13.0 lib/twitter-text/unicode.rb
twitter-text-1.12.0 lib/twitter-text/unicode.rb
twitter-text-1.11.0 lib/twitter-text/unicode.rb