class ArcServer::REST::GPServer
Attributes
url[R]
The REST
url of a map service
Public Class Methods
new(url)
click to toggle source
@param [String] url the REST
url of a map service @example
ArcServer::GPServer.new("http://sampleserver2.arcgisonline.com/ArcGIS/rest/services/PublicSafety/EMModels/GPServer/ERGByChemical")
# File lib/arcserver/rest/gp_server.rb, line 17 def initialize(url) @url = url end
Public Instance Methods
build_params(results, esri_job_id)
click to toggle source
# File lib/arcserver/rest/gp_server.rb, line 30 def build_params(results, esri_job_id) all_params = {} results['results'].each do |r| result_param = self.class.get("#{url}/jobs/#{esri_job_id}/#{r[1]['paramUrl']}", query: { f: 'json' }).with_indifferent_access case result_param['dataType'] when 'GPFeatureRecordSetLayer' all_params[result_param['paramName']] = Graphics::FeatureSet.new(result_param['value']) else all_params[result_param['paramName']] = result_param['value'] end end all_params.with_indifferent_access end
checkJobStatus()
click to toggle source
# File lib/arcserver/rest/gp_server.rb, line 26 def checkJobStatus @status end
execute(params)
click to toggle source
# File lib/arcserver/rest/gp_server.rb, line 21 def execute(params) defaults = { f: 'json' }.merge(params) self.class.get("#{url}/execute", query: defaults)['results'] end
submitJob(params) { |build_params(results, esri_job_id)| ... }
click to toggle source
# File lib/arcserver/rest/gp_server.rb, line 45 def submitJob(params) defaults = { f: 'json' }.merge(params) esri_job_id = self.class.get("#{url}/submitJob", query: defaults)['jobId'] s = Rufus::Scheduler.new s.every '2s' do |job| results = self.class.get("#{url}/jobs/#{esri_job_id}", query: { f: 'json' }) @status = results['jobStatus'] case @status when 'esriJobSucceeded' yield build_params(results, esri_job_id) s.shutdown when 'esriJobWaiting' nil when 'esriJobSubmitted' nil when 'esriJobExecuting' nil when 'esriJobCancelled' nil when 'esriJobFailed' nil when 'esriJobCancelling' nil end end s.join end