summaryrefslogtreecommitdiff
path: root/lib/rss/converter.rb
diff options
context:
space:
mode:
authorkou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-03-02 16:21:11 +0000
committerkou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-03-02 16:21:11 +0000
commit40daca4a87d4e7177a1fce943f09b793582bb50d (patch)
treedfa58e8bb6a8de56630722c4924bcbb761d71788 /lib/rss/converter.rb
parenta5e13ce5ffbf6febf65b74de3358e9b2f73a4e6b (diff)
* lib/rss/converter.rb: handled Uconv::Error.
* lib/rss/dublincore.rb: DublincoreModel -> DublinCoreModel git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5876 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/rss/converter.rb')
-rw-r--r--lib/rss/converter.rb48
1 files changed, 18 insertions, 30 deletions
diff --git a/lib/rss/converter.rb b/lib/rss/converter.rb
index 4f00c86973..5037606f37 100644
--- a/lib/rss/converter.rb
+++ b/lib/rss/converter.rb
@@ -47,9 +47,8 @@ module RSS
@iconv.iconv(#{value})
rescue Iconv::Failure
raise ConversionError.new(#{value}, "#{to_enc}", "#{from_enc}")
- #{value}
end
-EOC
+ EOC
end
rescue LoadError, ArgumentError, SystemCallError
raise UnknownConversionMethodError.new(to_enc, from_enc)
@@ -66,48 +65,37 @@ EOC
end
end
- def def_to_euc_jp_from_utf_8
+ def def_uconv_convert_if_can(meth, to_enc, from_enc)
begin
require "uconv"
def_convert do |value|
- "Uconv.u8toeuc(#{value})"
+ <<-EOC
+ begin
+ Uconv.#{meth}(#{value})
+ rescue Uconv::Error
+ raise ConversionError.new(#{value}, "#{to_enc}", "#{from_enc}")
+ end
+ EOC
end
rescue LoadError
- def_iconv_convert('EUC-JP', 'UTF-8')
+ def_iconv_convert(to_enc, from_enc)
end
end
+
+ def def_to_euc_jp_from_utf_8
+ def_uconv_convert_if_can('u8toeuc', 'EUC-JP', 'UTF-8')
+ end
def def_to_utf_8_from_euc_jp
- begin
- require "uconv"
- def_convert do |value|
- "Uconv.euctou8(#{value})"
- end
- rescue LoadError
- def_iconv_convert('UTF-8', 'EUC-JP')
- end
+ def_uconv_convert_if_can('euctou8', 'UTF-8', 'EUC-JP')
end
def def_to_shift_jis_from_utf_8
- begin
- require "uconv"
- def_convert do |value|
- "Uconv.u8tosjis(#{value})"
- end
- rescue LoadError
- def_iconv_convert('Shift_JIS', 'UTF-8')
- end
+ def_uconv_convert_if_can('u8tosjis', 'Shift_JIS', 'UTF-8')
end
def def_to_utf_8_from_shift_jis
- begin
- require "uconv"
- def_convert do |value|
- "Uconv.sjistou8(#{value})"
- end
- rescue LoadError
- def_iconv_convert('UTF-8', 'Shift_JIS')
- end
+ def_uconv_convert_if_can('sjistou8', 'UTF-8', 'Shift_JIS')
end
def def_to_euc_jp_from_shift_jis
@@ -157,7 +145,7 @@ EOC
end
end
array_enc.pack('C*')
-EOC
+ EOC
end
end