arcserver.rb 0.1.4 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +10 -0
  3. data/.travis.yml +12 -0
  4. data/Gemfile +7 -0
  5. data/Gemfile.lock +274 -0
  6. data/LICENSE +20 -20
  7. data/README.md +160 -0
  8. data/Rakefile +9 -62
  9. data/arcserver.rb.gemspec +35 -0
  10. data/lib/arcserver.rb +33 -7
  11. data/lib/arcserver/Identifiable.rb +10 -0
  12. data/lib/arcserver/Queryable.rb +10 -0
  13. data/lib/arcserver/feature_server.rb +19 -0
  14. data/lib/arcserver/geometry/geometry.rb +91 -0
  15. data/lib/arcserver/geometry_service.rb +18 -0
  16. data/lib/arcserver/gp_server.rb +20 -0
  17. data/lib/arcserver/graphics/feature.rb +23 -0
  18. data/lib/arcserver/graphics/feature_set.rb +26 -0
  19. data/lib/arcserver/map_server.rb +34 -40
  20. data/lib/arcserver/rest/feature_server.rb +30 -0
  21. data/lib/arcserver/rest/geometry_service.rb +54 -0
  22. data/lib/arcserver/rest/gp_server.rb +80 -0
  23. data/lib/arcserver/rest/identify.rb +66 -0
  24. data/lib/arcserver/rest/map_server.rb +230 -230
  25. data/lib/arcserver/rest/query.rb +68 -0
  26. data/lib/arcserver/url_helper.rb +31 -25
  27. data/lib/arcserver/util/legend_image.rb +0 -0
  28. data/lib/arcserver/version.rb +6 -6
  29. data/spec/custom_spec.rb +50 -0
  30. data/spec/factories/feature.rb +21 -0
  31. data/spec/feature_server_spec.rb +52 -0
  32. data/spec/feature_spec.rb +20 -0
  33. data/spec/geometry_service_spec.rb +31 -0
  34. data/spec/geometry_spec.rb +80 -0
  35. data/spec/gp_server_spec.rb +57 -0
  36. data/spec/identify_spec.rb +21 -0
  37. data/spec/query_spec.rb +38 -0
  38. data/spec/shared_context.rb +17 -0
  39. data/spec/spec_helper.rb +15 -0
  40. metadata +217 -158
  41. data/README.rdoc +0 -57
  42. data/lib/arcserver/soap/map_server.rb +0 -263
  43. data/test/functional/soap/map_server_test.rb +0 -193
  44. data/test/test_helper.rb +0 -25
  45. data/test/unit/map_server_test.rb +0 -61
  46. data/test/unit/url_helper_test.rb +0 -54
  47. data/test/unit/util/legend_image_test.rb +0 -69
@@ -0,0 +1,21 @@
1
+ # encoding: utf-8
2
+
3
+ require 'spec_helper'
4
+
5
+ describe 'Identify' do
6
+
7
+ it 'identify feature in MapServer' do
8
+ map_server = ArcServer::MapServer.new("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StateCityHighway_USA/MapServer")
9
+ results = map_server.identify({ geometry: ArcServer::Geometry::Point.new({x: -120, y: 40}), tolerance: "10", mapExtent: [-119, 38, -121, 41], imageDisplay: "400,300,96" })
10
+
11
+ results.each do |result|
12
+ ["Nevada", "California", "Washoe", "Lassen", "Plumas"].should include result.value
13
+ result.feature.attributes.should_not be_empty
14
+ result.feature.geometry.should be_kind_of(ArcServer::Geometry::Polygon)
15
+ result.feature.attributes.should have_key(:OBJECTID)
16
+
17
+ end
18
+
19
+ end
20
+
21
+ end
@@ -0,0 +1,38 @@
1
+ # encoding: utf-8
2
+
3
+ require 'spec_helper'
4
+
5
+ describe 'Query' do
6
+
7
+ before(:all) do
8
+ fs = ArcServer::FeatureServer.new("http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/SanFrancisco/311Incidents/FeatureServer")
9
+ f = ArcServer::Graphics::Feature.new({ geometry: ArcServer::Geometry::Point.new({ x: 998038.69, y: 5783734.04, spatialReference: { wkid: 102100 }}), attributes: { status:1, req_id:"12345", req_type:"Graffiti Complaint – Private Property", req_date:"30.09.2013", req_time:"14:00", address:"via dei matti 0", district:"Lugano" } })
10
+ results = fs.applyEdits('0', [ f ], [ ], [ ])
11
+ end
12
+
13
+ it 'query for feature' do
14
+ query = ArcServer::REST::Query.new({ where: "district='Lugano'", outFields: "*" })
15
+ feature_set = query.execute("http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/SanFrancisco/311Incidents/FeatureServer/0")
16
+ feature_set.fieldAliases.should_not be_empty
17
+ feature_set.features.should_not be_empty
18
+ feature_set.features[0].attributes.should have_key(:objectid)
19
+ end
20
+
21
+ it 'query for feature thought a MapServer' do
22
+ feature_server = ArcServer::FeatureServer.new("http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/SanFrancisco/311Incidents/FeatureServer")
23
+ feature_set = feature_server.query('0', { where: "district='Lugano'", outFields: "*" })
24
+ feature_set.fieldAliases.should_not be_empty
25
+ feature_set.features.should_not be_empty
26
+ feature_set.features[0].attributes.should have_key(:objectid)
27
+ end
28
+
29
+ it 'query by geometry' do
30
+
31
+ feature_server = ArcServer::FeatureServer.new("http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/SanFrancisco/311Incidents/FeatureServer")
32
+ feature_set = feature_server.query('0', { geometry: ArcServer::Geometry::Envelope.new({ xmin: -180, ymin: -90, xmax: 180, ymax: 90, spatialReference: { wkid: 4326 }}), outFields: "*" })
33
+ feature_set.should_not be_nil
34
+ feature_set.features.size.should be > 0
35
+
36
+ end
37
+
38
+ end
@@ -0,0 +1,17 @@
1
+ # encoding: utf-8
2
+
3
+ shared_context "shared stuff" do
4
+
5
+ def query_for_random_feature
6
+ feature_server = ArcServer::FeatureServer.new("http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/SanFrancisco/311Incidents/FeatureServer")
7
+ feature_set = feature_server.query('0', { where: "status=1", outFields: "*" })
8
+ feature_set.features.sample
9
+ end
10
+
11
+ def query_for_id(id)
12
+ feature_server = ArcServer::FeatureServer.new("http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/SanFrancisco/311Incidents/FeatureServer")
13
+ feature_set = feature_server.query('0', { objectIds: id, outFields: "*" })
14
+ feature_set.features[0]
15
+ end
16
+
17
+ end
@@ -0,0 +1,15 @@
1
+ require 'rubygems'
2
+ require 'bundler/setup'
3
+ require 'pp'
4
+ require 'factory_girl'
5
+
6
+ # require_relative '../lib/arcserver'
7
+ require 'arcserver'
8
+ require_relative 'shared_context'
9
+
10
+ RSpec.configure do |config|
11
+ # config.include FactoryGirl::Syntax::Methods
12
+ config.filter_run_excluding broken: true
13
+ end
14
+
15
+ # FactoryGirl.find_definitions
metadata CHANGED
@@ -1,188 +1,247 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: arcserver.rb
3
- version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 1
8
- - 4
9
- version: 0.1.4
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.5
10
5
  platform: ruby
11
- authors:
12
- - Colin Casey
13
- autorequire:
6
+ authors:
7
+ - Luca Simone
8
+ autorequire:
14
9
  bindir: bin
15
10
  cert_chain: []
16
-
17
- date: 2010-08-18 00:00:00 -03:00
18
- default_executable:
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
21
- name: httparty
11
+ date: 2013-08-28 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: activesupport
15
+ version_requirements: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ requirement: !ruby/object:Gem::Requirement
21
+ requirements:
22
+ - - '>='
23
+ - !ruby/object:Gem::Version
24
+ version: '0'
22
25
  prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
24
- none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- segments:
29
- - 0
30
- - 4
31
- - 5
32
- version: 0.4.5
33
26
  type: :runtime
34
- version_requirements: *id001
35
- - !ruby/object:Gem::Dependency
36
- name: handsoap
27
+ - !ruby/object:Gem::Dependency
28
+ name: httparty
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ requirement: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - '>='
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
37
39
  prerelease: false
38
- requirement: &id002 !ruby/object:Gem::Requirement
39
- none: false
40
- requirements:
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- segments:
44
- - 1
45
- - 1
46
- - 0
47
- version: 1.1.0
48
40
  type: :runtime
49
- version_requirements: *id002
50
- - !ruby/object:Gem::Dependency
41
+ - !ruby/object:Gem::Dependency
51
42
  name: nokogiri
43
+ version_requirements: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ requirement: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - '>='
51
+ - !ruby/object:Gem::Version
52
+ version: '0'
52
53
  prerelease: false
53
- requirement: &id003 !ruby/object:Gem::Requirement
54
- none: false
55
- requirements:
56
- - - ">="
57
- - !ruby/object:Gem::Version
58
- segments:
59
- - 1
60
- - 3
61
- - 3
62
- version: 1.3.3
63
54
  type: :runtime
64
- version_requirements: *id003
65
- - !ruby/object:Gem::Dependency
55
+ - !ruby/object:Gem::Dependency
66
56
  name: httpclient
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ requirement: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - '>='
65
+ - !ruby/object:Gem::Version
66
+ version: '0'
67
+ prerelease: false
68
+ type: :runtime
69
+ - !ruby/object:Gem::Dependency
70
+ name: json
71
+ version_requirements: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ requirement: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - '>='
79
+ - !ruby/object:Gem::Version
80
+ version: '0'
81
+ prerelease: false
82
+ type: :runtime
83
+ - !ruby/object:Gem::Dependency
84
+ name: rufus-scheduler
85
+ version_requirements: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ requirement: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - '>='
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
67
95
  prerelease: false
68
- requirement: &id004 !ruby/object:Gem::Requirement
69
- none: false
70
- requirements:
71
- - - ">="
72
- - !ruby/object:Gem::Version
73
- segments:
74
- - 2
75
- - 1
76
- - 5
77
- version: 2.1.5
78
96
  type: :runtime
79
- version_requirements: *id004
80
- - !ruby/object:Gem::Dependency
81
- name: shoulda
97
+ - !ruby/object:Gem::Dependency
98
+ name: bundler
99
+ version_requirements: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ requirement: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - '>='
107
+ - !ruby/object:Gem::Version
108
+ version: '0'
109
+ prerelease: false
110
+ type: :development
111
+ - !ruby/object:Gem::Dependency
112
+ name: rake
113
+ version_requirements: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ requirement: !ruby/object:Gem::Requirement
119
+ requirements:
120
+ - - '>='
121
+ - !ruby/object:Gem::Version
122
+ version: '0'
123
+ prerelease: false
124
+ type: :development
125
+ - !ruby/object:Gem::Dependency
126
+ name: sdoc
127
+ version_requirements: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ requirement: !ruby/object:Gem::Requirement
133
+ requirements:
134
+ - - '>='
135
+ - !ruby/object:Gem::Version
136
+ version: '0'
82
137
  prerelease: false
83
- requirement: &id005 !ruby/object:Gem::Requirement
84
- none: false
85
- requirements:
86
- - - ">="
87
- - !ruby/object:Gem::Version
88
- segments:
89
- - 2
90
- - 10
91
- - 2
92
- version: 2.10.2
93
138
  type: :development
94
- version_requirements: *id005
95
- - !ruby/object:Gem::Dependency
96
- name: mocha
139
+ - !ruby/object:Gem::Dependency
140
+ name: rspec
141
+ version_requirements: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - '>='
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ requirement: !ruby/object:Gem::Requirement
147
+ requirements:
148
+ - - '>='
149
+ - !ruby/object:Gem::Version
150
+ version: '0'
97
151
  prerelease: false
98
- requirement: &id006 !ruby/object:Gem::Requirement
99
- none: false
100
- requirements:
101
- - - ">="
102
- - !ruby/object:Gem::Version
103
- segments:
104
- - 0
105
- - 9
106
- - 8
107
- version: 0.9.8
108
152
  type: :development
109
- version_requirements: *id006
110
- - !ruby/object:Gem::Dependency
111
- name: rmagick
153
+ - !ruby/object:Gem::Dependency
154
+ name: factory_girl
155
+ version_requirements: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - '>='
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ requirement: !ruby/object:Gem::Requirement
161
+ requirements:
162
+ - - '>='
163
+ - !ruby/object:Gem::Version
164
+ version: '0'
112
165
  prerelease: false
113
- requirement: &id007 !ruby/object:Gem::Requirement
114
- none: false
115
- requirements:
116
- - - ">="
117
- - !ruby/object:Gem::Version
118
- segments:
119
- - 2
120
- - 12
121
- - 0
122
- version: 2.12.0
123
166
  type: :development
124
- version_requirements: *id007
125
- description: A library for accessing ESRI ArcServer REST and SOAP APIs from a unified interface
126
- email:
127
- - casey.colin@gmail.com
167
+ description: A library for accessing ESRI ArcServer REST APIs from a unified interface
168
+ email:
169
+ - info@lucasimone.info
128
170
  executables: []
129
-
130
171
  extensions: []
131
-
132
- extra_rdoc_files:
172
+ extra_rdoc_files: []
173
+ files:
174
+ - .gitignore
175
+ - .travis.yml
176
+ - Gemfile
177
+ - Gemfile.lock
133
178
  - LICENSE
134
- - README.rdoc
135
- files:
179
+ - README.md
180
+ - Rakefile
181
+ - arcserver.rb.gemspec
182
+ - lib/arcserver.rb
183
+ - lib/arcserver/Identifiable.rb
184
+ - lib/arcserver/Queryable.rb
185
+ - lib/arcserver/feature_server.rb
186
+ - lib/arcserver/geometry/geometry.rb
187
+ - lib/arcserver/geometry_service.rb
188
+ - lib/arcserver/gp_server.rb
189
+ - lib/arcserver/graphics/feature.rb
190
+ - lib/arcserver/graphics/feature_set.rb
136
191
  - lib/arcserver/map_server.rb
192
+ - lib/arcserver/rest/feature_server.rb
193
+ - lib/arcserver/rest/geometry_service.rb
194
+ - lib/arcserver/rest/gp_server.rb
195
+ - lib/arcserver/rest/identify.rb
137
196
  - lib/arcserver/rest/map_server.rb
138
- - lib/arcserver/soap/map_server.rb
197
+ - lib/arcserver/rest/query.rb
139
198
  - lib/arcserver/url_helper.rb
140
199
  - lib/arcserver/util/legend_image.rb
141
200
  - lib/arcserver/version.rb
142
- - lib/arcserver.rb
143
- - LICENSE
144
- - README.rdoc
145
- - Rakefile
146
- - test/functional/soap/map_server_test.rb
147
- - test/test_helper.rb
148
- - test/unit/map_server_test.rb
149
- - test/unit/url_helper_test.rb
150
- - test/unit/util/legend_image_test.rb
151
- has_rdoc: true
152
- homepage: http://github.com/colincasey/arcserver.rb
153
- licenses: []
154
-
155
- post_install_message:
156
- rdoc_options:
157
- - --charset=UTF-8
158
- require_paths:
201
+ - spec/custom_spec.rb
202
+ - spec/factories/feature.rb
203
+ - spec/feature_server_spec.rb
204
+ - spec/feature_spec.rb
205
+ - spec/geometry_service_spec.rb
206
+ - spec/geometry_spec.rb
207
+ - spec/gp_server_spec.rb
208
+ - spec/identify_spec.rb
209
+ - spec/query_spec.rb
210
+ - spec/shared_context.rb
211
+ - spec/spec_helper.rb
212
+ homepage: http://github.com/lukefx/arcserver.rb
213
+ licenses:
214
+ - MIT
215
+ metadata: {}
216
+ post_install_message:
217
+ rdoc_options: []
218
+ require_paths:
159
219
  - lib
160
- required_ruby_version: !ruby/object:Gem::Requirement
161
- none: false
162
- requirements:
163
- - - ">="
164
- - !ruby/object:Gem::Version
165
- segments:
166
- - 0
167
- version: "0"
168
- required_rubygems_version: !ruby/object:Gem::Requirement
169
- none: false
170
- requirements:
171
- - - ">="
172
- - !ruby/object:Gem::Version
173
- segments:
174
- - 0
175
- version: "0"
220
+ required_ruby_version: !ruby/object:Gem::Requirement
221
+ requirements:
222
+ - - '>='
223
+ - !ruby/object:Gem::Version
224
+ version: '0'
225
+ required_rubygems_version: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - '>='
228
+ - !ruby/object:Gem::Version
229
+ version: '0'
176
230
  requirements: []
177
-
178
- rubyforge_project:
179
- rubygems_version: 1.3.7
180
- signing_key:
181
- specification_version: 3
182
- summary: A library for accessing ESRI ArcServer REST and SOAP APIs from a unified interface
183
- test_files:
184
- - test/functional/soap/map_server_test.rb
185
- - test/test_helper.rb
186
- - test/unit/map_server_test.rb
187
- - test/unit/url_helper_test.rb
188
- - test/unit/util/legend_image_test.rb
231
+ rubyforge_project:
232
+ rubygems_version: 2.1.9
233
+ signing_key:
234
+ specification_version: 4
235
+ summary: A library for accessing ESRI ArcServer REST APIs from a unified interface
236
+ test_files:
237
+ - spec/custom_spec.rb
238
+ - spec/factories/feature.rb
239
+ - spec/feature_server_spec.rb
240
+ - spec/feature_spec.rb
241
+ - spec/geometry_service_spec.rb
242
+ - spec/geometry_spec.rb
243
+ - spec/gp_server_spec.rb
244
+ - spec/identify_spec.rb
245
+ - spec/query_spec.rb
246
+ - spec/shared_context.rb
247
+ - spec/spec_helper.rb