Module LocaleFilter::PrintWrapper
In: localefilter.rb

Summary

主な出力メソッドを NKF でフィルタリングする.

Description

  include すると print などの出力メソッドが入れ替わり,
  日本語が端末の文字コードに合わせて自動変換される.

  Object 版と違い, 出力先は STDOUT に固定される.
  IO#write を入れ替えている訳ではないので
  STDOUT.print などには影響はしない点に注意.

Example

  require 'localefilter'

  class Foo
    include LocaleFilter::PrintWrapper
    def bar
      print "ほげほげ", "\n"
    end

    def baz
      STDOUT.print "ほげほげ", "\n"
    end
  end

  foo = Foo.new
  foo.bar
  # => "ほげほげ" が端末の locale に変換されて出力される

  foo.baz
  # => 文字コードの変換処理は行われない

Methods

Public Methods

出力:print, stderr, puts, putserr, warn

Private Methods

変換:filter

Methods

filter   print   puts   putserr   stderr   warn  

Constants

LOCALE_CODE = LocaleFilter.env2num   CodeConverter#env2num で取得した文字コード
LOCALE_NAME = LocaleFilter.num2txt(LOCALE_CODE)   LOCALE_CODE の文字コード名
LOCALE_OPT = LocaleFilter.make_opt(LOCALE_CODE)   NKF#nkf に渡すオプション

Public Instance methods

strfilter で変換し, STDOUT.print に渡す.

[Source]

# File localefilter.rb, line 676
    def print(*str)
      STDOUT.print filter(str)
    end

strfilter で変換し, STDOUT.puts に渡す.

[Source]

# File localefilter.rb, line 686
    def puts(*str)
      STDOUT.puts filter(str)
    end

strfilter で変換し, STDERR.puts に渡す.

[Source]

# File localefilter.rb, line 691
    def putserr(*str)
      STDERR.puts filter(str)
    end

strfilter で変換し, STDERR.print に渡す.

[Source]

# File localefilter.rb, line 681
    def stderr(*str)
      STDERR.print filter(str)
    end

strfilter で変換し, 最後に改行をつけて STDERR.print に渡す.

[Source]

# File localefilter.rb, line 697
    def warn(*str)
      STDERR.print filter(str), "\n"
    end

Private Instance methods

配列 list の各要素を NKF#nkf で変換する.

[Source]

# File localefilter.rb, line 704
    def filter(list)
      return list  unless LOCALE_OPT
      list.flatten.map { |i| NKF.nkf(LOCALE_OPT, i.to_s) }
    end

[Validate]