Class: Rack::Ketai::Carrier::Abstract
- Inherits:
-
Object
- Object
- Rack::Ketai::Carrier::Abstract
- Defined in:
- lib/rack/ketai/carrier/abstract.rb
Constant Summary collapse
- USER_AGENT_REGEXP =
nil
Class Method Summary collapse
Instance Method Summary collapse
-
#cache_size ⇒ Object
キャッシュサイズ.
-
#deviceid ⇒ Object
デバイスID 端末毎にユニーク.
-
#display ⇒ Object
ディスプレイ情報.
-
#featurephone? ⇒ Boolean
フィーチャーフォンか.
- #filtering(env, options = { }, &block) ⇒ Object
- #filters(options = { }) ⇒ Object
-
#ident ⇒ Object
識別情報.
-
#initialize(env) ⇒ Abstract
constructor
A new instance of Abstract.
-
#mobile? ⇒ Boolean
携帯端末か.
-
#name ⇒ Object
機種名(略名).
-
#position ⇒ Object
位置情報.
- #request ⇒ Object
-
#smartphone? ⇒ Boolean
スマートフォンか.
-
#subscriberid ⇒ Object
サブスクライバID 契約者毎にユニーク.
-
#supports_cookie? ⇒ Boolean
Cookieのサポート.
-
#tablet? ⇒ Boolean
タブレットか.
-
#valid_addr? ⇒ Boolean
(also: #valid_ip?)
キャリアのIPアドレス帯を利用しているか.
Constructor Details
#initialize(env) ⇒ Abstract
Returns a new instance of Abstract.
78 79 80 |
# File 'lib/rack/ketai/carrier/abstract.rb', line 78 def initialize(env) @env = env end |
Class Method Details
.filters ⇒ Object
61 62 63 |
# File 'lib/rack/ketai/carrier/abstract.rb', line 61 def filters [] end |
.valid_addr?(remote_addr) ⇒ Boolean
65 66 67 68 69 70 71 72 73 74 |
# File 'lib/rack/ketai/carrier/abstract.rb', line 65 def valid_addr?(remote_addr) cidrs = nil begin cidrs = self::CIDRS rescue NameError return nil end remote = IPAddr.new(remote_addr) cidrs.any?{ |cidr| cidr.include?(remote) } end |
.valid_ip? ⇒ Boolean
75 76 77 78 79 80 81 82 83 84 |
# File 'lib/rack/ketai/carrier/abstract.rb', line 75 def valid_addr?(remote_addr) cidrs = nil begin cidrs = self::CIDRS rescue NameError return nil end remote = IPAddr.new(remote_addr) cidrs.any?{ |cidr| cidr.include?(remote) } end |
Instance Method Details
#cache_size ⇒ Object
キャッシュサイズ
160 161 162 |
# File 'lib/rack/ketai/carrier/abstract.rb', line 160 def cache_size nil end |
#deviceid ⇒ Object
デバイスID 端末毎にユニーク
129 130 131 |
# File 'lib/rack/ketai/carrier/abstract.rb', line 129 def deviceid nil end |
#display ⇒ Object
ディスプレイ情報
149 150 151 |
# File 'lib/rack/ketai/carrier/abstract.rb', line 149 def display Rack::Ketai::Display.new end |
#featurephone? ⇒ Boolean
フィーチャーフォンか
107 108 109 |
# File 'lib/rack/ketai/carrier/abstract.rb', line 107 def featurephone? false end |
#filtering(env, options = { }, &block) ⇒ Object
88 89 90 91 92 93 |
# File 'lib/rack/ketai/carrier/abstract.rb', line 88 def filtering(env, = { }, &block) env = [:disable_filter] ? env : filters().inject(env) { |env, filter| filter.inbound(env) } ret = block.call(env) ret = [:disable_filter] ? ret : filters().reverse.inject(ret) { |r, filter| filter.outbound(*r) } ret end |
#filters(options = { }) ⇒ Object
95 96 97 98 99 |
# File 'lib/rack/ketai/carrier/abstract.rb', line 95 def filters( = { }) self.class.filters.collect do |klass| klass.new() end end |
#ident ⇒ Object
識別情報
134 135 136 |
# File 'lib/rack/ketai/carrier/abstract.rb', line 134 def ident subscriberid || deviceid end |
#mobile? ⇒ Boolean
携帯端末か
102 103 104 |
# File 'lib/rack/ketai/carrier/abstract.rb', line 102 def mobile? false end |
#name ⇒ Object
機種名(略名)
139 140 141 |
# File 'lib/rack/ketai/carrier/abstract.rb', line 139 def name nil end |
#position ⇒ Object
位置情報
144 145 146 |
# File 'lib/rack/ketai/carrier/abstract.rb', line 144 def position nil end |
#request ⇒ Object
82 83 84 |
# File 'lib/rack/ketai/carrier/abstract.rb', line 82 def request @request ||= Rack::Request.new(@env) end |
#smartphone? ⇒ Boolean
スマートフォンか
112 113 114 |
# File 'lib/rack/ketai/carrier/abstract.rb', line 112 def smartphone? false end |
#subscriberid ⇒ Object
サブスクライバID 契約者毎にユニーク
123 124 125 |
# File 'lib/rack/ketai/carrier/abstract.rb', line 123 def subscriberid nil end |
#supports_cookie? ⇒ Boolean
Cookieのサポート
165 166 167 |
# File 'lib/rack/ketai/carrier/abstract.rb', line 165 def false end |
#tablet? ⇒ Boolean
タブレットか
117 118 119 |
# File 'lib/rack/ketai/carrier/abstract.rb', line 117 def tablet? false end |
#valid_addr? ⇒ Boolean Also known as: valid_ip?
キャリアのIPアドレス帯を利用しているか
154 155 156 |
# File 'lib/rack/ketai/carrier/abstract.rb', line 154 def valid_addr? self.class.valid_ip? @env['HTTP_X_FORWARDED_FOR'] ? @env['HTTP_X_FORWARDED_FOR'].sub(/,.+$/, '') : @env['REMOTE_ADDR'] end |