Object
# File jcode.rb, line 192
def chop!
self.gsub!(/(?:.|\r?\n)\z/, '')
end
# File jcode.rb, line 156
def delete(del)
(str = self.dup).delete!(del) or str
end
# File jcode.rb, line 151
def delete!(del)
return nil if del == ""
self.gsub!(DeletePatternCache[del] ||= /[#{_regex_quote(del)}]+/, '')
end
# File jcode.rb, line 209
def each_char
if block_given?
scan(/./) do |x|
yield x
end
else
scan(/./)
end
end
# File jcode.rb, line 59
def end_regexp
case $KCODE[0]
when s, S
/#{PATTERN_SJIS}$/n
when e, E
/#{PATTERN_EUC}$/n
when u, U
/#{PATTERN_UTF8}$/n
else
/.$/n
end
end
# File jcode.rb, line 205
def jcount(str)
self.delete("^#{str}").jlength
end
# File jcode.rb, line 200
def jlength
self.gsub(/[^\Wa-zA-Z_\d]/, ' ').length
end
# File jcode.rb, line 46
def mbchar?
case $KCODE[0]
when s, S
self =~ RE_SJIS
when e, E
self =~ RE_EUC
when u, U
self =~ RE_UTF8
else
nil
end
end
# File jcode.rb, line 171
def squeeze(del=nil)
(str = self.dup).squeeze!(del) or str
end
# File jcode.rb, line 160
def squeeze!(del=nil)
return nil if del == ""
pattern =
if del
SqueezePatternCache[del] ||= /([#{_regex_quote(del)}])\1+/
else
/(.|\n)\1+/
end
self.gsub!(pattern, '\1')
end
# File jcode.rb, line 92
def succ
str = self.dup
str.succ! or str
end
# File jcode.rb, line 78
def succ!
reg = end_regexp
if $KCODE != 'NONE' && self =~ reg
succ_table = SUCC[$KCODE[0,1].downcase]
begin
self[-1] += succ_table[self[-1]]
self[-2] += 1 if self[-1] == 0
end while self !~ reg
self
else
original_succ!
end
end
# File jcode.rb, line 147
def tr(from, to)
(str = self.dup).tr!(from, to) or str
end
# File jcode.rb, line 133
def tr!(from, to)
return nil if from == ""
return self.delete!(from) if to == ""
pattern = TrPatternCache[from] ||= /[#{_regex_quote(from)}]/
if from[0] == ^
last = /.$/.match(to)[0]
self.gsub!(pattern, last)
else
h = HashCache[from + "1-0" + to] ||= expand_ch_hash(from, to)
self.gsub!(pattern) do |c| h[c] end
end
end
# File jcode.rb, line 188
def tr_s(from, to)
(str = self.dup).tr_s!(from,to) or str
end
# File jcode.rb, line 175
def tr_s!(from, to)
return self.delete!(from) if to.length == 0
pattern = SqueezePatternCache[from] ||= /([#{_regex_quote(from)}])\1*/
if from[0] == ^
last = /.$/.match(to)[0]
self.gsub!(pattern, last)
else
h = HashCache[from + "1-0" + to] ||= expand_ch_hash(from, to)
self.gsub!(pattern) do h[$1] end
end
end
Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.
If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.
If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.
If you want to help improve the Ruby documentation, please see Improve the docs, or visit Documenting-ruby.org.