Sha256: 1e1a736f4aaee1b0271aac84cffd1c66d2f9eb3e2111ac91174ff1474e551157
Contents?: true
Size: 1.25 KB
Versions: 1
Compression:
Stored size: 1.25 KB
Contents
# -*- coding: utf-8 -*- # 出力変換 module Jpmobile module Rack class Filter def initialize(app) @app = app end def call(env) # 入力を保存 mobile = env['rack.jpmobile'] status, env, response = @app.call(env) if mobile if content_type = env['Content-Type'] type, charset = content_type.split(/;\s*charset=/) else type = nil charset = nil end body = response_to_body(response) body = body.sub('<input name="utf8" type="hidden" value="✓" />', ' ') response, charset = mobile.to_external(body, type, charset) if type and charset env['Content-Type'] = "#{type}; charset=#{charset}" end end new_response = ::Rack::Response.new(response, status, env) new_response.finish end private def response_to_body(response) if response.respond_to?(:to_str) response.to_str elsif response.respond_to?(:each) body = [] response.each do |part| body << response_to_body(part) end body.join("\n") else body end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
jpmobile-0.1.2 | lib/jpmobile/rack/filter.rb |