Holds static data from the Unicode database.

Methods

Constants

ATTRIBUTES = :codepoints, :composition_exclusion, :composition_map, :boundary, :cp1252

Class Public methods

dirname()

Returns the directory in which the data files are stored.

📝 Source code
# File activesupport/lib/active_support/multibyte/unicode.rb, line 361
        def self.dirname
          File.expand_path("../values", __dir__)
        end
🔎 See on GitHub

filename()

Returns the filename for the data file for this version.

📝 Source code
# File activesupport/lib/active_support/multibyte/unicode.rb, line 366
        def self.filename
          File.expand_path File.join(dirname, "unicode_tables.dat")
        end
🔎 See on GitHub

new()

📝 Source code
# File activesupport/lib/active_support/multibyte/unicode.rb, line 318
        def initialize
          @codepoints = Hash.new(Codepoint.new)
          @composition_exclusion = []
          @composition_map = {}
          @boundary = {}
          @cp1252 = {}
        end
🔎 See on GitHub

Instance Public methods

===(other)

📝 Source code
# File activesupport/lib/active_support/multibyte/unicode.rb, line 348
              def ===(other)
                detect { |i| i === other } ? true : false
              end
🔎 See on GitHub

load()

Loads the Unicode database and returns all the internal objects of UnicodeDatabase.

📝 Source code
# File activesupport/lib/active_support/multibyte/unicode.rb, line 338
        def load
          begin
            @codepoints, @composition_exclusion, @composition_map, @boundary, @cp1252 = File.open(self.class.filename, "rb") { |f| Marshal.load f.read }
          rescue => e
            raise IOError.new("Couldn't load the Unicode tables for UTF8Handler (#{e.message}), ActiveSupport::Multibyte is unusable")
          end

          # Redefine the === method so we can write shorter rules for grapheme cluster breaks
          @boundary.each_key do |k|
            @boundary[k].instance_eval do
              def ===(other)
                detect { |i| i === other } ? true : false
              end
            end if @boundary[k].kind_of?(Array)
          end

          # define attr_reader methods for the instance variables
          class << self
            attr_reader(*ATTRIBUTES)
          end
        end
🔎 See on GitHub