Sha256: 07a2aabea003fe2eb3b7eff8bbf8afc29426045d44f10574f85bc84b13f0e6f5
Contents?: true
Size: 1.76 KB
Versions: 1
Compression:
Stored size: 1.76 KB
Contents
# encoding: utf-8 module CassandraMapper #:nodoc: module Support module Multibyte #:nodoc: if Kernel.const_defined?(:Encoding) # Returns a regular expression that matches valid characters in the current encoding def self.valid_character VALID_CHARACTER[Encoding.default_external.to_s] end else def self.valid_character case $KCODE when 'UTF8' VALID_CHARACTER['UTF-8'] when 'SJIS' VALID_CHARACTER['Shift_JIS'] end end end if 'string'.respond_to?(:valid_encoding?) # Verifies the encoding of a string def self.verify(string) string.valid_encoding? end else def self.verify(string) if expression = valid_character # Splits the string on character boundaries, which are determined based on $KCODE. string.split(//).all? { |c| expression =~ c } else true end end end # Verifies the encoding of the string and raises an exception when it's not valid def self.verify!(string) raise EncodingError.new("Found characters with invalid encoding") unless verify(string) end if 'string'.respond_to?(:force_encoding) # Removes all invalid characters from the string. # # Note: this method is a no-op in Ruby 1.9 def self.clean(string) string end else def self.clean(string) if expression = valid_character # Splits the string on character boundaries, which are determined based on $KCODE. string.split(//).grep(expression).join else string end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
cassandra_mapper-0.0.1 | lib/cassandra_mapper/support/multibyte/utils.rb |