colincasey-arcserver.rb 0.0.1 → 0.0.2
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.
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/arcserver.rb.gemspec +6 -4
- data/lib/arcserver/map_server.rb +4 -2
- data/lib/arcserver/soap/map_server.rb +2 -3
- data/lib/arcserver/url_helper.rb +4 -0
- data/lib/arcserver.rb +1 -1
- data/test/functional/soap/map_server_test.rb +13 -1
- data/test/test_helper.rb +2 -2
- data/test/unit/map_server_test.rb +12 -2
- data/test/unit/url_helper_test.rb +8 -0
- metadata +5 -5
- data/test/functional/soap/portland_landbase_get_legend_info.yml +0 -134
data/Rakefile
CHANGED
@@ -5,7 +5,7 @@ begin
|
|
5
5
|
require 'jeweler'
|
6
6
|
Jeweler::Tasks.new do |gem|
|
7
7
|
gem.name = "arcserver.rb"
|
8
|
-
gem.summary = %Q{
|
8
|
+
gem.summary = %Q{Library for accessing ESRI ArcServer REST and SOAP APIs.}
|
9
9
|
gem.email = "casey.colin@gmail.com"
|
10
10
|
gem.homepage = "http://github.com/colincasey/arcserver.rb"
|
11
11
|
gem.authors = ["Colin Casey"]
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.2
|
data/arcserver.rb.gemspec
CHANGED
@@ -1,12 +1,15 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
|
1
4
|
# -*- encoding: utf-8 -*-
|
2
5
|
|
3
6
|
Gem::Specification.new do |s|
|
4
7
|
s.name = %q{arcserver.rb}
|
5
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.2"
|
6
9
|
|
7
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
11
|
s.authors = ["Colin Casey"]
|
9
|
-
s.date = %q{2009-
|
12
|
+
s.date = %q{2009-09-23}
|
10
13
|
s.email = %q{casey.colin@gmail.com}
|
11
14
|
s.extra_rdoc_files = [
|
12
15
|
"LICENSE",
|
@@ -26,7 +29,6 @@ Gem::Specification.new do |s|
|
|
26
29
|
"lib/arcserver/soap/map_server.rb",
|
27
30
|
"lib/arcserver/url_helper.rb",
|
28
31
|
"test/functional/soap/map_server_test.rb",
|
29
|
-
"test/functional/soap/portland_landbase_get_legend_info.yml",
|
30
32
|
"test/test_helper.rb",
|
31
33
|
"test/unit/map_server_test.rb",
|
32
34
|
"test/unit/url_helper_test.rb"
|
@@ -35,7 +37,7 @@ Gem::Specification.new do |s|
|
|
35
37
|
s.rdoc_options = ["--charset=UTF-8"]
|
36
38
|
s.require_paths = ["lib"]
|
37
39
|
s.rubygems_version = %q{1.3.4}
|
38
|
-
s.summary = %q{
|
40
|
+
s.summary = %q{Library for accessing ESRI ArcServer REST and SOAP APIs.}
|
39
41
|
s.test_files = [
|
40
42
|
"test/test_helper.rb",
|
41
43
|
"test/functional/soap/map_server_test.rb",
|
data/lib/arcserver/map_server.rb
CHANGED
@@ -15,8 +15,10 @@ module ArcServer
|
|
15
15
|
def_delegators :rest_service, :export
|
16
16
|
|
17
17
|
def initialize(url, opts = {})
|
18
|
-
|
19
|
-
|
18
|
+
raise Exception, "#{url} is not a valid map server url" unless map_server?(url)
|
19
|
+
|
20
|
+
@soap_service = opts[:soap_service] || SOAP::MapServer.new(to_soap(url))
|
21
|
+
@rest_service = opts[:rest_service] || REST::MapServer.new(to_rest(url))
|
20
22
|
end
|
21
23
|
end
|
22
24
|
end
|
@@ -10,12 +10,11 @@ module ArcServer
|
|
10
10
|
end
|
11
11
|
|
12
12
|
def on_before_dispatch
|
13
|
-
self.class.
|
13
|
+
self.class.endpoint(:uri => @soap_url, :version => 1)
|
14
14
|
end
|
15
15
|
|
16
16
|
def initialize(soap_url, protocol_version=2)
|
17
17
|
@soap_url = soap_url
|
18
|
-
self.class.instance_variable_set(:@protocol_version, protocol_version)
|
19
18
|
end
|
20
19
|
|
21
20
|
def get_default_map_name
|
@@ -26,7 +25,7 @@ module ArcServer
|
|
26
25
|
|
27
26
|
def get_legend_info(args = {})
|
28
27
|
response = invoke("ns:GetLegendInfo") do |message|
|
29
|
-
message.add "MapName", args[:map_name]
|
28
|
+
message.add "MapName", args[:map_name] || get_default_map_name
|
30
29
|
end
|
31
30
|
node = response.document.xpath('//tns:GetLegendInfoResponse/Result', ns).first
|
32
31
|
parse_legend_info_result(node)
|
data/lib/arcserver/url_helper.rb
CHANGED
data/lib/arcserver.rb
CHANGED
@@ -36,6 +36,18 @@ class ArcServer::SOAP::MapServerTest < Test::Unit::TestCase
|
|
36
36
|
end
|
37
37
|
end
|
38
38
|
end
|
39
|
+
|
40
|
+
should "use the default map name when getting the legend info" do
|
41
|
+
legend_info = @service.get_legend_info
|
42
|
+
legend_info.each do |item|
|
43
|
+
layer_assertion = "assert_legend_info_result_layer_#{item[:layer_id]}".to_sym
|
44
|
+
if respond_to?(layer_assertion)
|
45
|
+
send(layer_assertion, item)
|
46
|
+
else
|
47
|
+
raise "no assertions set for legend info with layer_id=#{item[:layer_id]}"
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
39
51
|
end
|
40
52
|
|
41
53
|
# legend info assertion helpers
|
@@ -152,7 +164,7 @@ class ArcServer::SOAP::MapServerTest < Test::Unit::TestCase
|
|
152
164
|
end
|
153
165
|
|
154
166
|
def assert_symbol_image(expected, actual)
|
155
|
-
|
167
|
+
assert_not_nil expected[:image_data] if actual[:image_data]
|
156
168
|
assert_equal expected[:image_url], actual[:image_url]
|
157
169
|
assert_equal expected[:image_height] || 16, actual[:image_height]
|
158
170
|
assert_equal expected[:image_width] || 20, actual[:image_width]
|
data/test/test_helper.rb
CHANGED
@@ -2,10 +2,17 @@
|
|
2
2
|
require File.dirname(__FILE__) + '/../test_helper'
|
3
3
|
|
4
4
|
class ArcServer::MapServerTest < Test::Unit::TestCase
|
5
|
+
should "raise an error if the required url is not a map server url" do
|
6
|
+
assert_raise(Exception) { ArcServer::MapServer.new('http://not.a.map/server/url') }
|
7
|
+
end
|
8
|
+
|
5
9
|
context "verifying delegation of actions to the SOAP service" do
|
6
10
|
setup do
|
7
11
|
@mock_soap_service = mock
|
8
|
-
@map_server = ArcServer::MapServer.new(
|
12
|
+
@map_server = ArcServer::MapServer.new(
|
13
|
+
'http://sampleserver1.arcgisonline.com/ArcGIS/services/Demographics/ESRI_Census_USA/MapServer',
|
14
|
+
:soap_service => @mock_soap_service
|
15
|
+
)
|
9
16
|
end
|
10
17
|
|
11
18
|
should "forward get_default_map_name" do
|
@@ -22,7 +29,10 @@ class ArcServer::MapServerTest < Test::Unit::TestCase
|
|
22
29
|
context "verifying delegation of actions to the REST service" do
|
23
30
|
setup do
|
24
31
|
@mock_rest_service = mock
|
25
|
-
@map_server = ArcServer::MapServer.new(
|
32
|
+
@map_server = ArcServer::MapServer.new(
|
33
|
+
'http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer',
|
34
|
+
:rest_service => @mock_rest_service
|
35
|
+
)
|
26
36
|
end
|
27
37
|
|
28
38
|
should "forward get_default_map_name" do
|
@@ -43,4 +43,12 @@ class ArcServer::UrlHelperTest < Test::Unit::TestCase
|
|
43
43
|
assert !soap_service?(rest_url)
|
44
44
|
end
|
45
45
|
end
|
46
|
+
|
47
|
+
should "recognize a valid map server url" do
|
48
|
+
assert map_server?('http://sampleserver1.arcgisonline.com/ArcGIS/services/Demographics/ESRI_Census_USA/MapServer')
|
49
|
+
end
|
50
|
+
|
51
|
+
should "recognize an invalid map server url" do
|
52
|
+
assert !map_server?('http://not.a.map/server/url')
|
53
|
+
end
|
46
54
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: colincasey-arcserver.rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Colin Casey
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-09-23 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
@@ -36,12 +36,12 @@ files:
|
|
36
36
|
- lib/arcserver/soap/map_server.rb
|
37
37
|
- lib/arcserver/url_helper.rb
|
38
38
|
- test/functional/soap/map_server_test.rb
|
39
|
-
- test/functional/soap/portland_landbase_get_legend_info.yml
|
40
39
|
- test/test_helper.rb
|
41
40
|
- test/unit/map_server_test.rb
|
42
41
|
- test/unit/url_helper_test.rb
|
43
42
|
has_rdoc: false
|
44
43
|
homepage: http://github.com/colincasey/arcserver.rb
|
44
|
+
licenses:
|
45
45
|
post_install_message:
|
46
46
|
rdoc_options:
|
47
47
|
- --charset=UTF-8
|
@@ -62,10 +62,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
62
62
|
requirements: []
|
63
63
|
|
64
64
|
rubyforge_project:
|
65
|
-
rubygems_version: 1.
|
65
|
+
rubygems_version: 1.3.5
|
66
66
|
signing_key:
|
67
67
|
specification_version: 3
|
68
|
-
summary:
|
68
|
+
summary: Library for accessing ESRI ArcServer REST and SOAP APIs.
|
69
69
|
test_files:
|
70
70
|
- test/test_helper.rb
|
71
71
|
- test/functional/soap/map_server_test.rb
|
@@ -1,134 +0,0 @@
|
|
1
|
-
---
|
2
|
-
symbol_image_defaults: &symbol_image_defaults
|
3
|
-
:image_data:
|
4
|
-
:image_url:
|
5
|
-
:image_height: 16
|
6
|
-
:image_width: 20
|
7
|
-
:image_dpi: 96
|
8
|
-
transparent_color_defaults: &transparent_color_defaults
|
9
|
-
:use_windows_dithering: true
|
10
|
-
:alpha_value: 255
|
11
|
-
:red: 254
|
12
|
-
:green: 255
|
13
|
-
:blue: 255
|
14
|
-
|
15
|
-
get_legend_info_result:
|
16
|
-
- :layer_id: 1
|
17
|
-
:name: Zoomed in
|
18
|
-
:legend_groups:
|
19
|
-
- :heading:
|
20
|
-
:legend_classes:
|
21
|
-
- :label:
|
22
|
-
:description:
|
23
|
-
:symbol_image:
|
24
|
-
<<: *symbol_image_defaults
|
25
|
-
:image_data: |
|
26
|
-
iVBORw0KGgoAAAANSUhEUgAAABQAAAAQCAYAAAAWGF8bAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA
|
27
|
-
R0lEQVR4nGP89/8/AzUBC4wR4O9PkckbNm5kZGBgYGCihmHIZrAgC8JsIdcwBgaoC6kJRg0cNXAw
|
28
|
-
GIiSU6iRBanuQkZqF18AsvET5O8fag8AAAAASUVORK5CYII=
|
29
|
-
|
30
|
-
:transparent_color:
|
31
|
-
<<: *transparent_color_defaults
|
32
|
-
- :layer_id: 2
|
33
|
-
:name: Zoomed out
|
34
|
-
:legend_groups:
|
35
|
-
- :heading:
|
36
|
-
:legend_classes:
|
37
|
-
- :label:
|
38
|
-
:description:
|
39
|
-
:symbol_image:
|
40
|
-
<<: *symbol_image_defaults
|
41
|
-
:image_data: |
|
42
|
-
iVBORw0KGgoAAAANSUhEUgAAABQAAAAQCAYAAAAWGF8bAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA
|
43
|
-
PklEQVR4nGP89/8/AzUBE1VNY2BgYIExAvz9KXbqho0bGVnQBcg1DOYgqnt51MBRA4elgShZjxr5
|
44
|
-
mZHaxRcATwAQChHiw9IAAAAASUVORK5CYII=
|
45
|
-
|
46
|
-
:transparent_color:
|
47
|
-
<<: *transparent_color_defaults
|
48
|
-
- :layer_id: 3
|
49
|
-
:name: Buildings
|
50
|
-
:legend_groups:
|
51
|
-
- :heading:
|
52
|
-
:legend_classes:
|
53
|
-
- :label:
|
54
|
-
:description:
|
55
|
-
:symbol_image:
|
56
|
-
<<: *symbol_image_defaults
|
57
|
-
:image_data: |
|
58
|
-
iVBORw0KGgoAAAANSUhEUgAAABQAAAAQCAYAAAAWGF8bAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA
|
59
|
-
NElEQVR4nGP89/8/AzUBE1VNY2BgYIExZtTVUeTUjKYmRgYGGrhw1MBRA0cNJAYwDvrSBgCGTgoZ
|
60
|
-
cGsDFQAAAABJRU5ErkJggg==
|
61
|
-
|
62
|
-
:transparent_color:
|
63
|
-
<<: *transparent_color_defaults
|
64
|
-
- :layer_id: 4
|
65
|
-
:name: Zoning
|
66
|
-
:legend_groups:
|
67
|
-
- :heading:
|
68
|
-
:legend_classes:
|
69
|
-
- :label: Commercial
|
70
|
-
:description:
|
71
|
-
:symbol_image:
|
72
|
-
<<: *symbol_image_defaults
|
73
|
-
:image_data: |
|
74
|
-
iVBORw0KGgoAAAANSUhEUgAAABQAAAAQCAYAAAAWGF8bAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA
|
75
|
-
NElEQVR4nGP89/8/AzUBE1VNY2BgYIExXjAyUuRUif//GRkYaODCUQNHDRw1kBjAOOhLGwBbzgoZ
|
76
|
-
pkxTgAAAAABJRU5ErkJggg==
|
77
|
-
|
78
|
-
:transparent_color:
|
79
|
-
<<: *transparent_color_defaults
|
80
|
-
- :label: Industrial
|
81
|
-
:description:
|
82
|
-
:symbol_image:
|
83
|
-
<<: *symbol_image_defaults
|
84
|
-
:image_data: |
|
85
|
-
iVBORw0KGgoAAAANSUhEUgAAABQAAAAQCAYAAAAWGF8bAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA
|
86
|
-
NElEQVR4nGP89/8/AzUBE1VNY2BgYIEx2hhXUuTUqv/hjAwMNHDhqIGjBo4aSAxgHPSlDQBtTgoZ
|
87
|
-
vbcuLAAAAABJRU5ErkJggg==
|
88
|
-
|
89
|
-
:transparent_color:
|
90
|
-
<<: *transparent_color_defaults
|
91
|
-
- :label: Residential
|
92
|
-
:description:
|
93
|
-
:symbol_image:
|
94
|
-
<<: *symbol_image_defaults
|
95
|
-
:image_data: |
|
96
|
-
iVBORw0KGgoAAAANSUhEUgAAABQAAAAQCAYAAAAWGF8bAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA
|
97
|
-
NElEQVR4nGP89/8/AzUBE1VNY2BgYIExGBlKKHLqf4YeRgYGGrhw1MBRA0cNJAYwDvrSBgAaUgkZ
|
98
|
-
JEjqtwAAAABJRU5ErkJggg==
|
99
|
-
|
100
|
-
:transparent_color:
|
101
|
-
<<: *transparent_color_defaults
|
102
|
-
- :label: Mixed use
|
103
|
-
:description:
|
104
|
-
:symbol_image:
|
105
|
-
<<: *symbol_image_defaults
|
106
|
-
:image_data: |
|
107
|
-
iVBORw0KGgoAAAANSUhEUgAAABQAAAAQCAYAAAAWGF8bAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA
|
108
|
-
NElEQVR4nGP89/8/AzUBE1VNY2BgYIExvuW5UORUrkl7GBkYaODCUQNHDRw1kBjAOOhLGwCLTgoZ
|
109
|
-
Ubp19QAAAABJRU5ErkJggg==
|
110
|
-
|
111
|
-
:transparent_color:
|
112
|
-
<<: *transparent_color_defaults
|
113
|
-
- :label: Parks and open space
|
114
|
-
:description:
|
115
|
-
:symbol_image:
|
116
|
-
<<: *symbol_image_defaults
|
117
|
-
:image_data: |
|
118
|
-
iVBORw0KGgoAAAANSUhEUgAAABQAAAAQCAYAAAAWGF8bAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA
|
119
|
-
OUlEQVR4nGP89/8/AzUBE1VNY2BgYIExGBkYKHLqfwYGRgYGGrhw1MBRA0cNJAbA8zIsL1IKqO5C
|
120
|
-
AJdcBiBRj7wXAAAAAElFTkSuQmCC
|
121
|
-
|
122
|
-
:transparent_color:
|
123
|
-
<<: *transparent_color_defaults
|
124
|
-
- :label: Rural
|
125
|
-
:description:
|
126
|
-
:symbol_image:
|
127
|
-
<<: *symbol_image_defaults
|
128
|
-
:image_data: |
|
129
|
-
iVBORw0KGgoAAAANSUhEUgAAABQAAAAQCAYAAAAWGF8bAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA
|
130
|
-
NElEQVR4nGP89/8/AzUBE1VNY2BgYIExus+lU+TUUqOZjAwMNHDhqIGjBo4aSAxgHPSlDQCRTgoZ
|
131
|
-
WZnonwAAAABJRU5ErkJggg==
|
132
|
-
|
133
|
-
:transparent_color:
|
134
|
-
<<: *transparent_color_defaults
|