summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorduerst <duerst@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-10-19 08:54:08 +0000
committerduerst <duerst@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-10-19 08:54:08 +0000
commitd72053c0a39447300706f1b64b6234292573383a (patch)
tree785a5fbc62f58224d3c1c2131c500a2832f5bc97 /lib
parent8a252f6b70a5f1c7bf225a886b529483392056cc (diff)
lib/unicode_normalize.rb: Changed to dynamic loading of actual normalization code and tables.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48020 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib')
-rw-r--r--lib/unicode_normalize.rb14
1 files changed, 11 insertions, 3 deletions
diff --git a/lib/unicode_normalize.rb b/lib/unicode_normalize.rb
index 6a6b5b7bea..576f6806da 100644
--- a/lib/unicode_normalize.rb
+++ b/lib/unicode_normalize.rb
@@ -2,8 +2,6 @@
# Copyright Ayumu Nojima (野島 歩) and Martin J. Dürst (duerst@it.aoyama.ac.jp)
-require 'unicode_normalize/normalize.rb'
-
# additions to class String for Unicode normalization
class String
# === Unicode Normalization
@@ -31,6 +29,12 @@ class String
# #=> Encoding::CompatibilityError raised
#
def unicode_normalize(form = :nfc)
+ require 'unicode_normalize/normalize.rb' unless defined? UnicodeNormalize
+ ## The following line can be uncommented to avoid repeated checking for
+ ## UnicodeNormalize. However, tests didn't show any noticeable speedup
+ ## when doing this. This comment also applies to the commented out lines
+ ## in String#unicode_normalize! and String#unicode_normalized?.
+ # String.send(:define_method, :normalize, ->(form = :nfc) { UnicodeNormalize.normalize(self, form) } )
UnicodeNormalize.normalize(self, form)
end
@@ -41,6 +45,8 @@ class String
# normalization in place.
#
def unicode_normalize!(form = :nfc)
+ require 'unicode_normalize/normalize.rb' unless defined? UnicodeNormalize
+ # String.send(:define_method, :normalize!, ->(form = :nfc) { replace(normalize(form)) } )
replace(self.normalize(form))
end
@@ -61,9 +67,11 @@ class String
# "\u00E0".unicode_normalized? #=> true
# "\u00E0".unicode_normalized?(:nfd) #=> false
# "\xE0".force_encoding('ISO-8859-1').unicode_normalized?
- # #=> Encoding::CompatibilityError raised
+ # #=> Encoding::CompatibilityError raised
#
def unicode_normalized?(form = :nfc)
+ require 'unicode_normalize/normalize.rb' unless defined? UnicodeNormalize
+ # String.send(:define_method, :unicode_normalized?, ->(form = :nfc) { UnicodeNormalize.normalized?(self, form) } )
UnicodeNormalize.normalized?(self, form)
end
end