Sha256: d1323577fd5be02ff1ea263a55e41c27893a76e47b6a4eafd1bb6faa0c9b9047

Contents?: true

Size: 818 Bytes

Versions: 8

Compression:

Stored size: 818 Bytes

Contents

require "nkf"

module SmallCage

  # In _dir.smc or other *.smc, set charset like this:
  #
  #   charset: Shift_JIS
  #
  class NkfFilter

    def initialize(opts)
    end

    def after_rendering_filter(obj, str)
      charset = ""
      if obj["charset"]
        charset = obj["charset"]
      else
        obj["dirs"].reverse.each do |dir|
          if dir["charset"]
            charset = dir["charset"]
            break
          end
        end
      end

      opt = ""
      if charset =~ /^euc-jp$/i
        opt = "-Wem0"
      elsif charset =~ /^iso-2022-jp$/i
        opt = "-Wjm0"
      elsif charset =~ /^shift_jis$/i
        opt = "-Wsm0"
      else
        STDERR.puts "Unknown charset: #{charset}" unless charset.empty?
        return str
      end

      return NKF.nkf(opt, str)
    end

  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
smallcage-0.3.2 project/nkf/_smc/filters/nkf_filter.rb
smallcage-0.3.1 project/nkf/_smc/filters/nkf_filter.rb
smallcage-0.3.0 project/nkf/_smc/filters/nkf_filter.rb
smallcage-0.2.9 project/nkf/_smc/filters/nkf_filter.rb
smallcage-0.2.8 project/nkf/_smc/filters/nkf_filter.rb
smallcage-0.2.7 project/nkf/_smc/filters/nkf_filter.rb
smallcage-0.2.6 project/nkf/_smc/filters/nkf_filter.rb
smallcage-0.2.5 project/nkf/_smc/filters/nkf_filter.rb