arcserver.rb 0.1.4 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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