Class | Jpmobile::Mobile::Docomo |
In: |
lib/jpmobile/mobile/docomo.rb
|
Parent: | AbstractMobile |
USER_AGENT_REGEXP | = | /^DoCoMo/ | 対応するUser-Agentの正規表現 | |
MAIL_ADDRESS_REGEXP | = | /^.+@docomo\.ne\.jp$/ | 対応するメールアドレスの正規表現 |
オープンiエリアがあればエリアコードを String で返す。無ければ nil を返す。
# File lib/jpmobile/mobile/docomo.rb, line 15 15: def areacode 16: if params["ACTN"] == "OK" 17: return params["AREACODE"] 18: else 19: return nil 20: end 21: end
iモードIDを返す。
# File lib/jpmobile/mobile/docomo.rb, line 59 59: def guid 60: @request.env['HTTP_X_DCMGUID'] 61: end
FOMAカード製造番号があれば返す。無ければ nil を返す。
# File lib/jpmobile/mobile/docomo.rb, line 53 53: def icc 54: @request.env['HTTP_USER_AGENT'] =~ /icc([0-9a-zA-Z]{20})\)/ 55: return $1 56: end
iモードID, FOMAカード製造番号の順で調べ、あるものを返す。なければ nil を返す。
# File lib/jpmobile/mobile/docomo.rb, line 64 64: def ident_subscriber 65: guid || icc 66: end
位置情報があれば Position のインスタンスを返す。無ければ nil を返す。
# File lib/jpmobile/mobile/docomo.rb, line 24 24: def position 25: return @__position if defined? @__position 26: lat = params["lat"] || params["LAT"] 27: lon = params["lon"] || params["LON"] 28: geo = params["geo"] || params["GEO"] 29: return @__position = nil if ( lat.nil? || lat == '' || lon.nil? || lon == '' ) 30: raise "Unsuppoted datum" if geo.downcase != "wgs84" 31: pos = Jpmobile::Position.new 32: raise "Unsuppoted" unless lat =~ /^([+-]\d+)\.(\d+)\.(\d+\.\d+)/ 33: pos.lat = Jpmobile::Position.dms2deg($1,$2,$3) 34: raise "Unsuppoted" unless lon =~ /^([+-]\d+)\.(\d+)\.(\d+\.\d+)/ 35: pos.lon = Jpmobile::Position.dms2deg($1,$2,$3) 36: return @__position = pos 37: end
端末製造番号があれば返す。無ければ nil を返す。
# File lib/jpmobile/mobile/docomo.rb, line 40 40: def serial_number 41: case @request.env["HTTP_USER_AGENT"] 42: when /ser([0-9a-zA-Z]{11})$/ # mova 43: return $1 44: when /ser([0-9a-zA-Z]{15});/ # FOMA 45: return $1 46: else 47: return nil 48: end 49: end