summaryrefslogtreecommitdiff
path: root/ext/nkf/lib/kconv.rb
diff options
context:
space:
mode:
Diffstat (limited to 'ext/nkf/lib/kconv.rb')
-rw-r--r--ext/nkf/lib/kconv.rb58
1 files changed, 58 insertions, 0 deletions
diff --git a/ext/nkf/lib/kconv.rb b/ext/nkf/lib/kconv.rb
new file mode 100644
index 0000000000..bfd276330d
--- /dev/null
+++ b/ext/nkf/lib/kconv.rb
@@ -0,0 +1,58 @@
+require 'nkf'
+
+module Kconv
+ AUTO = NKF::AUTO
+ JIS = NKF::JIS
+ EUC = NKF::EUC
+ SJIS = NKF::SJIS
+ BINARY = NKF::BINARY
+ NOCONV = NKF::NOCONV
+ UNKNOWN = NKF::UNKNOWN
+ def kconv(str, out_code, in_code = AUTO)
+ opt = '-'
+ case in_code
+ when NKF::JIS
+ opt << 'J'
+ when NKF::EUC
+ opt << 'E'
+ when NKF::SJIS
+ opt << 'S'
+ end
+
+ case out_code
+ when NKF::JIS
+ opt << 'j'
+ when NKF::EUC
+ opt << 'e'
+ when NKF::SJIS
+ opt << 's'
+ when NKF::NOCONV
+ return str
+ end
+
+ opt = '' if opt == '-'
+
+ NKF::nkf(opt, str)
+ end
+ module_function :kconv
+
+ def tojis(str)
+ NKF::nkf('-j', str)
+ end
+ module_function :tojis
+
+ def toeuc(str)
+ NKF::nkf('-e', str)
+ end
+ module_function :toeuc
+
+ def tosjis(str)
+ NKF::nkf('-s', str)
+ end
+ module_function :tosjis
+
+ def guess(str)
+ NKF::guess(str)
+ end
+ module_function :guess
+end