Sha256: 0d7a99ebe4c56323bb3e72a26a6fe87e2aac970ed754249a1ccb317e93429f56
Contents?: true
Size: 1.21 KB
Versions: 15
Compression:
Stored size: 1.21 KB
Contents
require 'nkf' # On au SSL pages, only Shift-JIS encoding is supported by some handsets, so pages will be reencoded. module Galakei::Filter::Recode # :stopdoc: def self.condition?(c) c.request.ssl? && c.request.au? end class Params < Galakei::Filter::Base def filter Rails.logger.debug("[galakei] AU handset over SSL detected, recoding everything to Shift_JIS") deep_apply(controller.params) do |param| NKF.nkf('-Sw', param) end end private def deep_apply(obj, &proc) case obj when Hash obj.each_pair do |key, value| obj[key] = deep_apply(value, &proc) end when Array obj.collect!{|value| deep_apply(value, &proc)} when String obj = obj.to_param if obj.respond_to?(:to_param) proc.call(obj) else # NilClass, TrueClass, FalseClass, Tempfile, StringIO, etc... return obj end end end class Response < Galakei::Filter::Base def filter doc = Nokogiri::HTML(response.body) response.body = doc.serialize(:encoding => 'Shift_JIS') response.body = Galakei::EmojiTable.au_utf8_to_sjis(response.body) response.charset = "Shift_JIS" end end end
Version data entries
15 entries across 15 versions & 1 rubygems