class MysqlPR::Charset
@!attribute [r] number
@private
@!attribute [r] name
@return [String] charset name
@!attribute [r] csname
@return [String] collation name
Constants
- BINARY_CHARSET_NUMBER
@private
- CHARSETS
- [charset_number, charset_name, collation_name, default], …
-
@private
- CHARSET_DEFAULT
@private
- CHARSET_ENCODING
@private MySQL
Charset
-> Ruby’s Encodeing- COLLATION_TO_CHARSET
@private
- NUMBER_TO_CHARSET
@private
- UNSAFE_CHARSET
@private
Attributes
csname[R]
name[R]
number[R]
unsafe[RW]
@private
Public Class Methods
by_name(str)
click to toggle source
@private @param [String] str @return [Mysql::Charset]
# File lib/mysql-pr/charset.rb, line 217 def self.by_name(str) ret = COLLATION_TO_CHARSET[str] || CHARSET_DEFAULT[str] raise ClientError, "unknown charset: #{str}" unless ret ret end
by_number(n)
click to toggle source
@private @param [Integer] n @return [Mysql::Charset]
# File lib/mysql-pr/charset.rb, line 209 def self.by_number(n) raise ClientError, "unknown charset number: #{n}" unless NUMBER_TO_CHARSET.key? n NUMBER_TO_CHARSET[n] end
convert_encoding(raw, encoding)
click to toggle source
@private convert raw to encoding and convert to Encoding.default_internal @param [String] raw @param [Encoding] encoding @return [String] result
# File lib/mysql-pr/charset.rb, line 279 def self.convert_encoding(raw, encoding) raw.force_encoding(encoding).encode end
new(number, name, csname)
click to toggle source
@private @param [Integer] number @param [String] name @param [String] csname
# File lib/mysql-pr/charset.rb, line 17 def initialize(number, name, csname) @number, @name, @csname = number, name, csname @unsafe = false end
to_binary(value)
click to toggle source
@private @param [String] value @return [String]
# File lib/mysql-pr/charset.rb, line 270 def self.to_binary(value) value.force_encoding Encoding::ASCII_8BIT end
Public Instance Methods
convert(value)
click to toggle source
@private convert encoding to corrensponding to MySQL charset @param [String] value @return [String]
# File lib/mysql-pr/charset.rb, line 296 def convert(value) if value.is_a? String and value.encoding != Encoding::ASCII_8BIT value = value.encode encoding end value end
encoding()
click to toggle source
@private retrun corresponding Ruby encoding @return [Encoding] encoding
# File lib/mysql-pr/charset.rb, line 286 def encoding enc = CHARSET_ENCODING[@name.downcase] raise Mysql::ClientError, "unsupported charset: #{@name}" unless enc enc end