Holds static data from the Unicode database
Methods
Constants
ATTRIBUTES | = | :codepoints, :composition_exclusion, :composition_map, :boundary, :cp1252 |
Class Public methods
Returns the directory in which the data files are stored
Source: show
# File activesupport/lib/active_support/multibyte/unicode.rb, line 364 def self.dirname File.dirname(__FILE__) + '/../values/' end
Returns the filename for the data file for this version
Source: show
# File activesupport/lib/active_support/multibyte/unicode.rb, line 369 def self.filename File.expand_path File.join(dirname, "unicode_tables.dat") end
Source: show
# File activesupport/lib/active_support/multibyte/unicode.rb, line 322 def initialize @codepoints = Hash.new(Codepoint.new) @composition_exclusion = [] @composition_map = {} @boundary = {} @cp1252 = {} end
Instance Public methods
Source: show
# File activesupport/lib/active_support/multibyte/unicode.rb, line 351 def ===(other) detect { |i| i === other } ? true : false end
Loads the Unicode database and returns all the internal objects of UnicodeDatabase.
Source: show
# File activesupport/lib/active_support/multibyte/unicode.rb, line 341 def load begin @codepoints, @composition_exclusion, @composition_map, @boundary, @cp1252 = File.open(self.class.filename, 'rb') { |f| Marshal.load f.read } rescue Exception => 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 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