auto_kconv.rb

#StringクラスにString#akconvを追加
#漢字コードをプラットフォームから判断して自動変換
#[対応]
#Windows
#Cygwin
#Linux

class String
  
  require 'kconv'
  
  PF_OTHER = 0
  PF_WINDOWS = 1
  PF_CYGWIN = 2
  PF_LINUX = 3
  
  
  def akconv
    case platform?
    when (PF_WINDOWS || PF_CYGWIN) then
      $KCODE = 's'
      return self.tosjis
    when PF_LINUX then
      $KCODE = 'e'
      return self.toeuc
    else
      $KCODE = 'j'
      return self.tojis
    end
    nil
  end
  
  private
  def platform?
    return PF_WINDOWS if /mswin/i =~ RUBY_PLATFORM
    return PF_CYGWIN if /cygwin/i =~ RUBY_PLATFORM
    return PF_LINUX if /linux/i =~ RUBY_PLATFORM
    PF_OTHER
  end
  
end