Class: String::SBEncoded
Overview
SingleByte encoded Strings, more speed than MBEncoded for operations like length, index, [] and []= (predefined length of characters)
Constant Summary
Constants inherited
from String
Binary, COLORS, Encodings, Escapes, UNICODE_LEADERS_AND_TRAILERS, UNICODE_LT_PAT, UNICODE_L_PAT, UNICODE_T_PAT, UNICODE_WHITESPACE
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from String
#arguments, #ascii, #binary, #camelcase, #chunks, encodings, #mirc_formatted, #mirc_stripped, #mirc_translated_color, #post_arguments, #strip_user_prefixes, #to_flags, #to_s, #unescaped, #user_prefixes, #valid_channelname?, #valid_nickname?, #valid_user?
Constructor Details
#initialize(string, encoding, collation = nil) ⇒ SBEncoded
Returns a new instance of SBEncoded.
17
18
19
20
21
|
# File 'lib/string/sbencoded.rb', line 17
def initialize(string, encoding, collation=nil)
super(string)
@encoding = encoding.freeze
@collation = collation.freeze
end
|
Instance Attribute Details
#collation ⇒ Object
Returns the value of attribute collation.
15
16
17
|
# File 'lib/string/sbencoded.rb', line 15
def collation
@collation
end
|
#encoding ⇒ Object
Returns the value of attribute encoding.
13
14
15
|
# File 'lib/string/sbencoded.rb', line 13
def encoding
@encoding
end
|
Class Method Details
.new(string, encoding, collation = nil) ⇒ Object
6
7
8
9
10
11
|
# File 'lib/string/sbencoded.rb', line 6
def self.new(string, encoding, collation=nil)
raise "No encoding given" unless Encodings[encoding]
obj = allocate
obj.send(:initialize, string, encoding, collation)
obj
end
|
Instance Method Details
#<=>(other) ⇒ Object
23
24
25
26
27
28
29
30
31
|
# File 'lib/string/sbencoded.rb', line 23
def <=>(other)
unless other.collation == @collation
raise ArgumentError, "Collations don't match: #{@collation} <=> #{other.collation}"
end
unless other.encoding == @encoding
raise ArgumentError.new("Encodings don't match: #{@encoding} <=> #{other.encoding}")
end
self.utf8 <=> other.utf8
end
|
#[](*args) ⇒ Object
Also known as:
slice
38
39
40
|
# File 'lib/string/sbencoded.rb', line 38
def [](*args)
String::SBEncoded.new(super, @encoding, @collation)
end
|
#capitalize ⇒ Object
36
|
# File 'lib/string/sbencoded.rb', line 36
def capitalize; utf8.capitalize.to_s(@encoding, @collation); end
|
#capitalize! ⇒ Object
60
|
# File 'lib/string/sbencoded.rb', line 60
def capitalize!; replace(capitalize); end
|
#chop ⇒ Object
43
44
45
|
# File 'lib/string/sbencoded.rb', line 43
def chop
String::SBEncoded.new(super, @encoding, @collation)
end
|
#downcase ⇒ Object
35
|
# File 'lib/string/sbencoded.rb', line 35
def downcase; utf8.downcase.to_s(@encoding, @collation); end
|
#downcase! ⇒ Object
59
|
# File 'lib/string/sbencoded.rb', line 59
def downcase!; replace(downcase); end
|
#dup ⇒ Object
62
63
64
|
# File 'lib/string/sbencoded.rb', line 62
def dup
String::SBEncoded.new(self, @encoding, @collation)
end
|
#inspect ⇒ Object
74
75
76
|
# File 'lib/string/sbencoded.rb', line 74
def inspect
"#{encoding}(#{collation||'none'}):#{super}"
end
|
#lstrip ⇒ Object
49
50
51
|
# File 'lib/string/sbencoded.rb', line 49
def lstrip
String::SBEncoded.new(super, @encoding, @collation)
end
|
#rstrip ⇒ Object
52
53
54
|
# File 'lib/string/sbencoded.rb', line 52
def rstrip
String::SBEncoded.new(super, @encoding, @collation)
end
|
#strip ⇒ Object
46
47
48
|
# File 'lib/string/sbencoded.rb', line 46
def strip
String::SBEncoded.new(super, @encoding, @collation)
end
|
#upcase ⇒ Object
all methods delegated to utf8-ified strings (and if necessary it’s reconversion)
34
|
# File 'lib/string/sbencoded.rb', line 34
def upcase; utf8.upcase.to_s(@encoding, @collation); end
|
#upcase! ⇒ Object
! variants, using self.replace
58
|
# File 'lib/string/sbencoded.rb', line 58
def upcase!; replace(upcase); end
|
#utf8(collation = nil) ⇒ Object
66
67
68
69
70
71
72
|
# File 'lib/string/sbencoded.rb', line 66
def utf8(collation=nil)
String::UTF8.new(
Iconv.iconv(String::UTF8::UTF8, @encoding, self).first,
String::UTF8::UTF8,
collation || @collation
)
end
|