Class | Jpmobile::Mobile::Docomo |
In: |
lib/jpmobile/mobile/docomo.rb
|
Parent: | AbstractMobile |
USER_AGENT_REGEXP | = | /^DoCoMo/ | 対応するUser-Agentの正規表現 |
オープンiエリアがあればエリアコードを String で返す。無ければ nil を返す。
# File lib/jpmobile/mobile/docomo.rb, line 10 10: def areacode 11: if params["ACTN"] == "OK" 12: return params["AREACODE"] 13: else 14: return nil 15: end 16: end
FOMAカード製造番号があれば返す。無ければ nil を返す。
# File lib/jpmobile/mobile/docomo.rb, line 43 43: def icc 44: @request.user_agent =~ /icc([0-9a-zA-Z]{20})\)/ 45: return $1 46: end
Docomo#icc、Docomo#serial_number の順で有効なものが有れば返す。無ければ nil を返す。
# File lib/jpmobile/mobile/docomo.rb, line 49 49: def ident 50: icc || serial_number 51: end
位置情報があれば Position のインスタンスを返す。無ければ nil を返す。
# File lib/jpmobile/mobile/docomo.rb, line 19 19: def position 20: return nil if params["lat"].blank? || params["lon"].blank? 21: raise "Unsuppoted datum" if params["geo"].downcase != "wgs84" 22: pos = Jpmobile::Position.new 23: raise "Unsuppoted" unless params["lat"] =~ /^([+-]\d+)\.(\d+)\.(\d+\.\d+)/ 24: pos.lat = Jpmobile::Position.dms2deg($1,$2,$3) 25: raise "Unsuppoted" unless params["lon"] =~ /^([+-]\d+)\.(\d+)\.(\d+\.\d+)/ 26: pos.lon = Jpmobile::Position.dms2deg($1,$2,$3) 27: return pos 28: end
端末製造番号があれば返す。無ければ nil を返す。
# File lib/jpmobile/mobile/docomo.rb, line 31 31: def serial_number 32: case @request.user_agent 33: when /ser([0-9a-zA-Z]{11})$/ # mova 34: return $1 35: when /ser([0-9a-zA-Z]{15});/ # FOMA 36: return $1 37: else 38: return nil 39: end 40: end