Sha256: 2ced843feefa639e6f3186318f3149cd6f6321fde08dd9b65cfe98db7cfde510

Contents?: true

Size: 1.44 KB

Versions: 21

Compression:

Stored size: 1.44 KB

Contents

#
# jpmobile の各機能を提供するモジュール
# envメソッドが実装されている必要がある。

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)
        __send__(:remote_ip)  # for Rails
      elsif respond_to?(:ip)
        __send__(:ip)         # for Rack
      else
        if env['HTTP_X_FORWARDED_FOR']
          env['HTTP_X_FORWARDED_FOR'].split(',').pop
        else
          env['REMOTE_ADDR']
        end
      end
    end

    # 環境変数 HTTP_USER_AGENT を設定する。
    def user_agent=(str)
      self.env['HTTP_USER_AGENT'] = str
    end

    # 携帯電話からであれば +true+を、そうでなければ +false+ を返す。
    def mobile?
      mobile and !mobile.smart_phone?
    end

    # viewの切り替えをするかどうか
    def smart_phone?
      mobile and mobile.smart_phone?
    end

    # タブレットからであれば +true+を、そうでなければ +false+ を返す
    def tablet?
      mobile and mobile.tablet?
    end

    # 携帯電話の機種に応じて Mobile::xxx を返す。
    # 携帯電話でない場合はnilを返す。
    def mobile
      env['rack.jpmobile']
    end
  end

  module RequestWithMobileTesting
    def mobile
      Jpmobile::Mobile::AbstractMobile.carrier(env)
    end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
jpmobile-7.2.0 lib/jpmobile/request_with_mobile.rb
jpmobile-7.1.0 lib/jpmobile/request_with_mobile.rb
jpmobile-7.0.4 lib/jpmobile/request_with_mobile.rb
jpmobile-7.0.3 lib/jpmobile/request_with_mobile.rb
jpmobile-7.0.2 lib/jpmobile/request_with_mobile.rb
jpmobile-7.0.1 lib/jpmobile/request_with_mobile.rb
jpmobile-7.0.0 lib/jpmobile/request_with_mobile.rb
jpmobile-6.1.2 lib/jpmobile/request_with_mobile.rb
jpmobile-6.1.1 lib/jpmobile/request_with_mobile.rb
jpmobile-6.1.0 lib/jpmobile/request_with_mobile.rb
jpmobile-6.0.0 lib/jpmobile/request_with_mobile.rb
jpmobile-5.2.5 lib/jpmobile/request_with_mobile.rb
jpmobile-6.0.0.beta lib/jpmobile/request_with_mobile.rb
jpmobile-5.2.4 lib/jpmobile/request_with_mobile.rb
jpmobile-5.0.1 lib/jpmobile/request_with_mobile.rb
jpmobile-5.1.1 lib/jpmobile/request_with_mobile.rb
jpmobile-5.2.3 lib/jpmobile/request_with_mobile.rb
jpmobile-5.2.2 lib/jpmobile/request_with_mobile.rb
jpmobile-5.2.1 lib/jpmobile/request_with_mobile.rb
jpmobile-5.2.0 lib/jpmobile/request_with_mobile.rb