Changeset 2277 for lang/ruby/ssb
- Timestamp:
- 12/02/07 10:49:23 (13 months ago)
- Location:
- lang/ruby/ssb/trunk
- Files:
-
- 2 modified
-
libs/ssb/emoji.rb (modified) (3 diffs)
-
test/emoji_test.rb (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
lang/ruby/ssb/trunk/libs/ssb/emoji.rb
r1996 r2277 6 6 # $Id$ 7 7 # 8 require 'jcode'9 8 10 9 module SSB 11 10 module Emoji 12 PATTERN_EMOJI = '[\xF8-\xF9][\x00-\xFF]' 13 RE_EMOJI = Regexp.new(PATTERN_EMOJI, 0, 'n') 11 SJIS_ONE_BYTE = '[\x00-\x7F\xA1-\xDF]' 12 SJIS_TWO_BYTES = '[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC]' 13 SJIS_IMODE_PICTOGRAM = '\xF8[\x9F-\xFC]|\xF9[\x40-\x7E\x80-\xB0]|\xF9[\xB1-\xFC]' 14 RE_IMODE_SJIS = Regexp.new("((#{SJIS_IMODE_PICTOGRAM})|(#{SJIS_ONE_BYTE}|#{SJIS_TWO_BYTES}))") 14 15 15 16 def self.emoji_conv(term, str) 16 ret = '' 17 # 16進数直接 18 str.each_char do |moji| 19 moji.gsub!(RE_EMOJI) do |s| 20 ch = 0 21 s.each_byte do |c| 22 if ch == 0 23 ch += c << 8 24 else 25 ch += c 26 end 27 end 28 '<img class="emoji" src="emoji/docomo/' + ch.to_s(16).upcase + '.gif" />' 17 ret = str 18 # SJIS HEX Binary 19 ret.gsub!(RE_IMODE_SJIS) do |s| 20 orig_match = $1 21 if not $2.nil? 22 sprintf '<img class="emoji" src="emoji/docomo/%X.gif" />', orig_match.unpack('n')[0] 23 else 24 orig_match 29 25 end 30 ret.concat moji31 26 end 32 27 … … 55 50 end 56 51 52 # KDDI localsrc 57 53 if term.get_carrier == KtaiSpec::CARRIER_KDDI 58 54 ret.gsub!(/ (localsrc)=\"?([^>\" ]+)\"?/im) { |s| … … 61 57 end 62 58 59 # Thirdforce 63 60 re_sb_emoji = Regexp.new('\x1B\$(..)\x0F', 0, 'n') 64 61 if term.get_carrier == KtaiSpec::CARRIER_SOFTBANK -
lang/ruby/ssb/trunk/test/emoji_test.rb
r2254 r2277 23 23 24 24 test 'docomo direct binary' do 25 $KCODE='sjis'26 25 assert_equal(conv(SSB::KtaiSpec::CARRIER_DOCOMO, "\xF9\x7B"), "<img class=\"emoji\" src=\"emoji/docomo/F97B.gif\" />") 27 $KCODE='utf-8'28 26 end 29 27
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)