localefilter.rb

Path: localefilter.rb
Last Update: Tue Oct 07 16:16:10 +0900 2008

localefilter.rb — Locale Filter

Authors:Koichi MICHIMASA <michi[at]ep.sci.hokudai.ac.jp>
Copyright:Copyright (C) Koichi MICHIMASA 2006-2008. All rights reserved.
GemPackage:www.ep.sci.hokudai.ac.jp/~michi/gemserver/
Download:www.ep.sci.hokudai.ac.jp/~michi/pc/ruby/src/localefilter/
Document:www.ep.sci.hokudai.ac.jp/~michi/pc/ruby/doc/localefilter/
History:www.ep.sci.hokudai.ac.jp/~michi/pc/ruby/history/localefilter.html

Summary

日本語を端末の Locale に対応した文字コードに変換して出力する, NKF のフロントエンド.

Example

Used as Object

  require 'localefilter'

  LocaleFilter.env2num('LANG')
  # => "環境変数 '$LANG' から取得した文字コード"

  a = 'テスト'
  b = 'てすと'

  lf = LocaleFilter.new
  lf.print a, "\n"
  lf.puts b
  # => 文字コード "@locale" で "@device" に出力される

  lf.locale = 'euc'
  lf.stdout "ほげほげ\n"
  # => 文字コードを "EUC-JP" に設定して "STDOUT" に出力

  lf.device = 'stderr'
  lf.puts a, b
  # => 出力先を "STDERR" に設定して出力

  file = File.open('/tmp/output.txt', 'w')
  lf.device = file
  lf.puts a, b
  # => 出力先を "file" に設定して出力

  lf.device = 'stdout'
  file.close
  # => 出力先を "STDOUT" に戻す

Used as Module

LocaleFilter::PrintWrapper を参照.

Character Codes

対応文字コードは以下の通り. (UTF-8, UTF-16 は Ruby Version 1.8.2 以降で対応)

  * Shift_JIS
  * EUC-JP
  * JIS (ISO-2022-JP)
  * UTF-8
    * BOM 無し(いわゆる UTF-8N) のみ対応
  * UTF-16
    * Endian や BOM の指定は未対応 (NKF#nkf のデフォルトのみ)

Methods

Public Class Methods (extended)

LocaleFilter::CodeConverter, LocaleFilter::LineConverter を参照.

Public Methods

初期化:new
変換:tolocale, tolocale!
出力:print, puts
設定:locale, locale=, device, device=, input, input=, opt=

Included from PrintWrapper

出力:print (-> stdout), stderr, puts (-> putsout), putserr, warn

Private Methods

変換:kconv, filter
設定:make_filter

Required Library

  • nkf (Standard Liblary)

Licence

このスクリプトはフリーウェアです. 使用, 改変, 再配布は自己責任の範囲でお好きにどうぞ.

Acknowledge

Required files

nkf  

[Validate]