module Baidumap::Request
Constants
- HOST
Public Class Methods
new(ak,pagesize=10,page_num=0,scope=2)
click to toggle source
# File lib/baidumap/request.rb, line 7 def initialize(ak,pagesize=10,page_num=0,scope=2) service_name = self.class.name.split('::').last.downcase @service_path = "/#{service_name}/v2" @ak = ak @segments = {:ak=>@ak,:output=>'json',:pagesize=>pagesize,:page_num => page_num,:scope=>scope} end
Public Instance Methods
act(action,params)
click to toggle source
actions: search, detail, eventsearch, eventdetail
# File lib/baidumap/request.rb, line 15 def act(action,params) @action_path = File.join(@service_path,action.to_s) @params = params request end
next()
click to toggle source
next page
# File lib/baidumap/request.rb, line 22 def next @segments[:page_num] += 1 request end
prev()
click to toggle source
previous page
# File lib/baidumap/request.rb, line 28 def prev @segments[:page_num] -= 1 request end
Private Instance Methods
make_query(segments)
click to toggle source
make http query from a hash
# File lib/baidumap/request.rb, line 35 def make_query(segments) URI.encode(segments.map{|k,v|"#{k}=#{v}"}.join('&')) end
request()
click to toggle source
send http request
# File lib/baidumap/request.rb, line 40 def request http_segments = @segments.clone @params.each do |key,value| http_segments[key] = value end uri = URI::HTTP.build( :host => HOST, :path => @action_path, :query => make_query(http_segments) ).to_s result = JSON.parse(HTTParty.get(uri).parsed_response) Baidumap::Response.new(result,self) end