Sha256: 305ac7bd81203e04358a90a0d6b6f58bb2c58d4b4bdd1a18697e8fe3079b8fbd
Contents?: true
Size: 1.3 KB
Versions: 1
Compression:
Stored size: 1.3 KB
Contents
# jpmobile の各機能を提供するモジュール # envメソッドと、parameter あるいは params メソッドが実装されている必要がある。 # 今のところはRack::RequestとActionController::AbstractRequestに対応しているはず。 module Jpmobile module RequestWithMobile # 環境変数 HTTP_USER_AGENT を返す。 def user_agent env['HTTP_USER_AGENT'] end # for reverse proxy. def remote_addr if respond_to? :remote_ip return __send__(:remote_ip) else return ( env["HTTP_X_FORWARDED_FOR"] ? env["HTTP_X_FORWARDED_FOR"].split(',').pop : env["REMOTE_ADDR"] ) end end # 環境変数 HTTP_USER_AGENT を設定する。 def user_agent=(str) self.env["HTTP_USER_AGENT"] = str end # 携帯電話からであれば +true+を、そうでなければ +false+ を返す。 def mobile? mobile != nil end # 携帯電話の機種に応じて Mobile::xxx を返す。 # 携帯電話でない場合はnilを返す。 def mobile return @__mobile if @__mobile Jpmobile::Mobile.constants.each do |const| c = Jpmobile::Mobile.const_get(const) return @__mobile = c.new(self) if c::USER_AGENT_REGEXP && user_agent =~ c::USER_AGENT_REGEXP end nil end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
jpmobile-0.0.3 | lib/jpmobile/request_with_mobile.rb |