aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Gemfile2
-rw-r--r--Gemfile.lock4
-rw-r--r--lib/mauve/sender.rb29
-rw-r--r--test/tc_mauve_database_peculiarities.rb5
-rw-r--r--test/tc_mauve_sender.rb3
5 files changed, 12 insertions, 31 deletions
diff --git a/Gemfile b/Gemfile
index 871f9cf..968d442 100644
--- a/Gemfile
+++ b/Gemfile
@@ -18,7 +18,7 @@ gem "dm-transactions", "=1.2.0"
gem "dm-types", "=1.2.0"
gem "dm-validations", "=1.2.0"
gem "sanitize", "=2.0.3"
-gem "rmail", "=0.17"
+gem "rmail", "=1.1.0"
gem "xmpp4r", "=0.5.6"
gem "eventmachine", "=0.12.10"
gem "thin", "=1.2.4"
diff --git a/Gemfile.lock b/Gemfile.lock
index 8c2695f..d5d830f 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -77,7 +77,7 @@ GEM
rack
rack-test (0.6.1)
rack (>= 1.0)
- rmail (0.17)
+ rmail (1.1.0)
ruby_protobuf (0.4.11)
safe_yaml (1.0.4)
sanitize (2.0.3)
@@ -129,7 +129,7 @@ DEPENDENCIES
rack (= 1.3.4)
rack-protection (= 1.1.4)
rack-test (= 0.6.1)
- rmail (= 0.17)
+ rmail (= 1.1.0)
ruby_protobuf (= 0.4.11)
sanitize (= 2.0.3)
simplecov
diff --git a/lib/mauve/sender.rb b/lib/mauve/sender.rb
index fe22471..e6cc4dd 100644
--- a/lib/mauve/sender.rb
+++ b/lib/mauve/sender.rb
@@ -7,12 +7,6 @@ rescue LoadError
# Do nothing -- these are bonus libraries :)
end
-begin
- require 'iconv' unless String.new.respond_to?(:encode)
-rescue LoadError
- # Do nothing -- these are bonus libraries :)
-end
-
require 'mauve/mauve_resolv'
require 'mauve/mauve_time'
require 'mauve/proto'
@@ -172,16 +166,10 @@ module Mauve
#
# Make sure all string fields are UTF8 -- to ensure the maximal amount of information is sent.
#
- if value.is_a?(String)
- if value.respond_to?(:encode)
- value = value.encode("UTF-8", :undef => :replace, :invalid => :replace)
- elsif defined? Iconv
- value = Iconv.conv("UTF-8//IGNORE", from_charset, value)
- end
-
- update.__send__("#{field.name}=", value)
+ if value.respond_to?(:encode)
+ value = value.encode("UTF-8", :undef => :replace, :invalid => :replace)
end
-
+ update.__send__("#{field.name}=", value)
end
update.alert.each do |alert|
@@ -194,15 +182,10 @@ module Mauve
#
# Make sure all string fields are UTF8 -- to ensure the maximal amount of information is sent.
#
- if value.is_a?(String)
- if value.respond_to?(:encode)
- value = value.encode("UTF-8", :undef => :replace, :invalid => :replace)
- elsif defined? Iconv
- value = Iconv.conv("UTF-8//IGNORE", from_charset, value)
- end
-
- alert.__send__("#{field.name}=", value)
+ if value.respond_to?(:encode)
+ value = value.encode("UTF-8", :undef => :replace, :invalid => :replace)
end
+ alert.__send__("#{field.name}=", value)
end
end
diff --git a/test/tc_mauve_database_peculiarities.rb b/test/tc_mauve_database_peculiarities.rb
index 27604a5..ceef9ad 100644
--- a/test/tc_mauve_database_peculiarities.rb
+++ b/test/tc_mauve_database_peculiarities.rb
@@ -7,7 +7,6 @@ require 'mauve/server'
require 'mauve/configuration'
require 'mauve/configuration_builder'
require 'mauve/configuration_builders'
-require 'iconv'
class TcMauveDatabasePeculiarities < Mauve::UnitTest
include Mauve
@@ -43,10 +42,10 @@ EOF
x["fi"] = "Ole hyvä kiirehtiä minulle kannettavan mursu kiillotukseen pakki!"
x["jp"] = "私に私のポータブルセイウチの研磨キットを急いでください!"
- %w(UTF-8 WINDOWS-1252 SHIFT-JIS).each do |enc|
+ %w(UTF-8 WINDOWS-1252 SJIS).each do |enc|
x.each do |lang, str|
assert_nothing_raised("Failed to use iconv to convert to #{enc}") {
- str = Iconv.conv(enc+"//IGNORE", "utf8", str)
+ str = str.encode(enc, :invalid => :replace, :undef => :replace, :replace => '?')
}
alert = Alert.new(
diff --git a/test/tc_mauve_sender.rb b/test/tc_mauve_sender.rb
index 3a98c25..858a7ec 100644
--- a/test/tc_mauve_sender.rb
+++ b/test/tc_mauve_sender.rb
@@ -7,7 +7,6 @@ require 'pp'
require 'timecop'
require 'mauve/sender'
require 'locale'
-require 'iconv'
class TcMauveSender < Test::Unit::TestCase
@@ -29,7 +28,7 @@ class TcMauveSender < Test::Unit::TestCase
# Set up a couple of crazy sources.
#
utf8_source = "Å ðîßtáñt plàñët"
- iso88591_source = Iconv.conv(Locale.current.charset, "UTF-8", utf8_source)
+ iso88591_source = utf8_source.encode(Locale.current.charset)
#
# Make sure our two sources are distinct