Added locale_from_utf8, dropped the glib dependency. master
authorTilman Sauerbeck <tilman@code-monkey.de>
Wed, 3 Mar 2010 20:39:44 +0000 (21:39 +0100)
committerTilman Sauerbeck <tilman@code-monkey.de>
Wed, 3 Mar 2010 20:39:44 +0000 (21:39 +0100)
rb-rip

diff --git a/rb-rip b/rb-rip
index 33c96bf7e92d241a42b402be6935ab7457c1120c..58e3bc3fb2b3cb1cf6a223e9e836d776bc0d4cc5 100755 (executable)
--- a/rb-rip
+++ b/rb-rip
@@ -4,7 +4,7 @@ require 'fileutils'
 require "musicbrainz"
 require "yaml"
 require "ostruct"
-#require "glib2"
+require 'iconv'
 require "tempfile"
 
 class Track
@@ -176,6 +176,18 @@ class String
        end
 end
 
+def locale_from_utf8(s)
+       # FIXME: Encoding is only available in Ruby 1.9
+       to_charset = Encoding.locale_charmap
+       utf8 = 'UTF-8'.freeze
+
+       if to_charset == utf8
+               s.dup
+       else
+               Iconv.iconv to_charset, utf8, s
+       end
+end
+
 cfg_file = ARGV.first || File.expand_path("~/.rbrip.yaml")
 
 begin
@@ -230,8 +242,7 @@ puts "Disc info:\n
  Tracks:\n"
 
 album.tracks.each_with_index do |t, i|
-       #tmp = GLib.locale_from_utf8(t.name)
-       tmp = t.name
+       tmp = locale_from_utf8 t.name
        puts "%3s." % (i + 1) + " #{tmp}"
 end