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