rgeoserver 0.5.7 → 0.5.8
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/.travis.yml +6 -0
- data/README.rdoc +4 -5
- data/VERSION +1 -1
- data/lib/rgeoserver/coveragestore.rb +1 -1
- data/lib/rgeoserver/datastore.rb +3 -4
- data/lib/rgeoserver/featuretype.rb +3 -2
- data/lib/rgeoserver/resource.rb +11 -8
- data/spec/fixtures/resources/datastore/old.xml +22 -0
- data/spec/fixtures/resources/datastore/old_featuretypes.xml +6 -0
- data/spec/functional/datastore_spec.rb +96 -0
- data/spec/integration/geoserver_spec.rb +22 -9
- metadata +35 -28
data/.travis.yml
ADDED
data/README.rdoc
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
{<img src="https://gemnasium.com/rnz0/rgeoserver.png" alt="Dependency Status" />}[https://gemnasium.com/rnz0/rgeoserver]
|
2
|
+
{<img src="https://secure.travis-ci.org/rnz0/rgeoserver.png" />}[http://travis-ci.org/rnz0/rgeoserver]
|
2
3
|
|
3
4
|
== RGeoServer
|
4
5
|
|
@@ -136,16 +137,14 @@ or set an environment variable, for example:
|
|
136
137
|
- Complete updating data in objects. On failure, objects should roll back.
|
137
138
|
- Complete documentation.
|
138
139
|
- Complete test coverage:
|
139
|
-
- Add functional tests and hook to CI service (most likely travis-ci).
|
140
140
|
- Break down testing into separate specs per class.
|
141
141
|
- Add more flexibility for integration tests with embedded Jetty and other containers.
|
142
142
|
- Add ability to perform integration tests in a CI server.
|
143
|
-
- Add GeoWebCache REST API operations for seeding and truncating layers.
|
144
143
|
- Provide more examples:
|
145
144
|
- Customize configuration.
|
146
145
|
- Connect under SSL.
|
147
146
|
- Batch processing.
|
148
|
-
- Migrate base HTTP client to {
|
147
|
+
- Migrate base HTTP client to {Faraday}[https://github.com/technoweenie/faraday]?
|
149
148
|
- Curlify operations: To provide optional log/output of the curl command that would produce the same
|
150
149
|
result as the ResourceInfo#save method.
|
151
150
|
|
@@ -160,13 +159,13 @@ result as the ResourceInfo#save method.
|
|
160
159
|
|
161
160
|
|
162
161
|
== Acknowledgements
|
163
|
-
Inspired on the {Rubydora}[https://github.com/cbeer/rubydora]
|
162
|
+
Inspired on the {Rubydora}[https://github.com/cbeer/rubydora] gem. Followed somewhat closely to {gsconfig.py}[https://github.com/dwins/gsconfig.py]
|
164
163
|
|
165
164
|
== Contributors
|
166
165
|
|
167
166
|
|
168
167
|
== License
|
169
168
|
|
170
|
-
Copyright (c)
|
169
|
+
Copyright (c) 2012 Renzo Sanchez-Silva <renzo@stanford.edu>.
|
171
170
|
|
172
171
|
Licensed under the {MIT License}[http://www.opensource.org/licenses/MIT].
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.5.
|
1
|
+
0.5.8
|
@@ -73,7 +73,7 @@ module RGeoServer
|
|
73
73
|
end
|
74
74
|
|
75
75
|
def coverages &block
|
76
|
-
self.class.list Coverage, @catalog, profile['coverages'], {:workspace => @workspace}, check_remote = true, &block
|
76
|
+
self.class.list Coverage, @catalog, profile['coverages'], {:workspace => @workspace, :coverage_store => self}, check_remote = true, &block
|
77
77
|
end
|
78
78
|
|
79
79
|
def profile_xml_to_hash profile_xml
|
data/lib/rgeoserver/datastore.rb
CHANGED
@@ -48,7 +48,7 @@ module RGeoServer
|
|
48
48
|
xml.entry(:key => k) {
|
49
49
|
xml.text v
|
50
50
|
}
|
51
|
-
} unless @connection_parameters.empty?
|
51
|
+
} unless @connection_parameters.nil? || @connection_parameters.empty?
|
52
52
|
}
|
53
53
|
}
|
54
54
|
end
|
@@ -70,14 +70,14 @@ module RGeoServer
|
|
70
70
|
else
|
71
71
|
raise "Not a valid workspace"
|
72
72
|
end
|
73
|
+
|
73
74
|
@name = options[:name].strip
|
74
|
-
@connection_parameters = options[:connection_parameters] || {}
|
75
75
|
@route = route
|
76
76
|
end
|
77
77
|
end
|
78
78
|
|
79
79
|
def featuretypes &block
|
80
|
-
self.class.list FeatureType, @catalog, profile['featureTypes'], {:workspace => @workspace}, check_remote = true, &block
|
80
|
+
self.class.list FeatureType, @catalog, profile['featureTypes'], {:workspace => @workspace, :data_store => self}, check_remote = true, &block
|
81
81
|
end
|
82
82
|
|
83
83
|
def profile_xml_to_hash profile_xml
|
@@ -94,7 +94,6 @@ module RGeoServer
|
|
94
94
|
rescue RestClient::ResourceNotFound
|
95
95
|
[]
|
96
96
|
end.freeze
|
97
|
-
|
98
97
|
}
|
99
98
|
h
|
100
99
|
end
|
@@ -2,8 +2,8 @@
|
|
2
2
|
module RGeoServer
|
3
3
|
# A feature type is a vector based spatial resource or data set that originates from a data store. In some cases, like Shapefile, a feature type has a one-to-one relationship with its data store. In other cases, like PostGIS, the relationship of feature type to data store is many-to-one, with each feature type corresponding to a table in the database.
|
4
4
|
class FeatureType < ResourceInfo
|
5
|
-
OBJ_ATTRIBUTES = {:catalog => "catalog", :name => "name", :workspace => "workspace", :enabled => "enabled", :metadata_links => "metadataLinks", :title => "title", :abstract => "abstract" }
|
6
|
-
OBJ_DEFAULT_ATTRIBUTES = {:catalog => nil, :workspace => nil, :
|
5
|
+
OBJ_ATTRIBUTES = {:catalog => "catalog", :name => "name", :workspace => "workspace", :data_store => "data_store", :enabled => "enabled", :metadata_links => "metadataLinks", :title => "title", :abstract => "abstract" }
|
6
|
+
OBJ_DEFAULT_ATTRIBUTES = {:catalog => nil, :workspace => nil, :data_store => nil, :name => nil, :enabled => "false", :metadata_links => [], :title => nil, :abtract => nil }
|
7
7
|
|
8
8
|
define_attribute_methods OBJ_ATTRIBUTES.keys
|
9
9
|
update_attribute_accessors OBJ_ATTRIBUTES
|
@@ -95,6 +95,7 @@ module RGeoServer
|
|
95
95
|
"title" => doc.at_xpath('//title/text()').to_s,
|
96
96
|
"abstract" => doc.at_xpath('//abstract/text()').to_s,
|
97
97
|
"workspace" => @workspace.name,
|
98
|
+
"data_store" => @data_store.name,
|
98
99
|
"nativeName" => doc.at_xpath('//nativeName/text()').to_s,
|
99
100
|
"srs" => doc.at_xpath('//srs/text()').to_s,
|
100
101
|
"nativeBoundingBox" => {
|
data/lib/rgeoserver/resource.rb
CHANGED
@@ -38,14 +38,17 @@ module RGeoServer
|
|
38
38
|
# @param [bool] check_remote if already exists in catalog and cache it
|
39
39
|
# @yield [RGeoServer::ResourceInfo]
|
40
40
|
def self.list klass, catalog, names, options, check_remote = false, &block
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
41
|
+
if names.nil?
|
42
|
+
return []
|
43
|
+
elsif !block_given?
|
44
|
+
to_enum(:list, klass, catalog, names, options).to_a unless block_given?
|
45
|
+
else
|
46
|
+
(names.is_a?(Array)? names : [names]).each { |name|
|
47
|
+
obj = klass.new catalog, options.merge(:name => name)
|
48
|
+
obj.new? if check_remote
|
49
|
+
block.call(obj)
|
50
|
+
}
|
51
|
+
end
|
49
52
|
end
|
50
53
|
|
51
54
|
def initialize options
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<dataStore>
|
2
|
+
<name>sites_shape</name>
|
3
|
+
<type>Shapefile</type>
|
4
|
+
<enabled>true</enabled>
|
5
|
+
<workspace>
|
6
|
+
<name>test_ws</name>
|
7
|
+
<atom:link xmlns:atom="http://www.w3.org/2005/Atom" rel="alternate" href="https://geodata.example.com/geoserver/rest/workspaces/test_ws.xml" type="application/xml"/>
|
8
|
+
</workspace>
|
9
|
+
<connectionParameters>
|
10
|
+
<entry key="memory mapped buffer">false</entry>
|
11
|
+
<entry key="create spatial index">true</entry>
|
12
|
+
<entry key="charset">ISO-8859-1</entry>
|
13
|
+
<entry key="filetype">shapefile</entry>
|
14
|
+
<entry key="cache and reuse memory maps">true</entry>
|
15
|
+
<entry key="url">file:data/shapefiles/o_sites.shp</entry>
|
16
|
+
<entry key="namespace">http://www.openplans.org/spearfish</entry>
|
17
|
+
</connectionParameters>
|
18
|
+
<__default>false</__default>
|
19
|
+
<featureTypes>
|
20
|
+
<atom:link xmlns:atom="http://www.w3.org/2005/Atom" rel="alternate" href="https://geodata.example.com/geoserver/rest/workspaces/test_ws/datastores/sites_shape/featuretypes.xml" type="application/xml"/>
|
21
|
+
</featureTypes>
|
22
|
+
</dataStore>
|
@@ -0,0 +1,6 @@
|
|
1
|
+
<featureTypes>
|
2
|
+
<featureType>
|
3
|
+
<name>o_sitesnew</name>
|
4
|
+
<atom:link xmlns:atom="http://www.w3.org/2005/Atom" rel="alternate" href="https://geodata.example.com/geoserver/rest/workspaces/test_ws/datastores/sites_shape/featuretypes/o_sitesnew.xml" type="application/xml"/>
|
5
|
+
</featureType>
|
6
|
+
</featureTypes>
|
@@ -0,0 +1,96 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe RGeoServer::DataStore do
|
4
|
+
let(:old_test_ds_xml){
|
5
|
+
File.read(File.expand_path('../fixtures/resources/datastore/old.xml', File.dirname(__FILE__)))
|
6
|
+
}
|
7
|
+
let(:old_test_ds_featuretypes_xml){
|
8
|
+
File.read(File.expand_path('../fixtures/resources/datastore/old_featuretypes.xml', File.dirname(__FILE__)))
|
9
|
+
}
|
10
|
+
let(:catalog) {
|
11
|
+
c = double('Catalog')
|
12
|
+
# Stub profile responses
|
13
|
+
# For a new datastore
|
14
|
+
c.stub(:search).with({"workspaces/test_ws/datastores"=>"new_test_ds"}).and_raise(RestClient::ResourceNotFound)
|
15
|
+
# For a supposed existing datastore
|
16
|
+
c.stub(:search).with({"workspaces/test_ws/datastores"=>"old_test_ds"}).and_return(old_test_ds_xml)
|
17
|
+
# Fake featuretypes response for a new datastore
|
18
|
+
c.stub(:do_url).with("https://geodata.example.com/geoserver/rest/workspaces/test_ws/datastores/sites_shape/featuretypes.xml").and_raise(
|
19
|
+
RestClient::ResourceNotFound
|
20
|
+
)
|
21
|
+
# Fake featuretypes response for an existing (old) datastore
|
22
|
+
c.stub(:do_url).with("https://geodata.example.com/geoserver/rest/workspaces/test_ws/datastores/sites_shape/featuretypes.xml").and_return(
|
23
|
+
old_test_ds_featuretypes_xml
|
24
|
+
)
|
25
|
+
c
|
26
|
+
}
|
27
|
+
let(:workspace) {
|
28
|
+
w = double('Workspace')
|
29
|
+
w.stub(:instance_of?).with(String).and_return(false)
|
30
|
+
w.stub(:instance_of?).with(RGeoServer::Workspace).and_return(true)
|
31
|
+
w.stub(:name).and_return('test_ws')
|
32
|
+
w
|
33
|
+
}
|
34
|
+
|
35
|
+
describe "#new" do
|
36
|
+
it 'should not allow empty parameters' do
|
37
|
+
expect{ RGeoServer::DataStore.new }.to raise_error ArgumentError
|
38
|
+
end
|
39
|
+
it 'should not allow null name' do
|
40
|
+
expect { RGeoServer::DataStore.new catalog, :workspace => workspace }.to raise_error
|
41
|
+
end
|
42
|
+
|
43
|
+
it 'should not allow empty workspace' do
|
44
|
+
expect { RGeoServer::DataStore.new catalog, :name => 'test_ds' }.to raise_error
|
45
|
+
end
|
46
|
+
|
47
|
+
it 'should allow non null catalog, workspace and name' do
|
48
|
+
ds = RGeoServer::DataStore.new catalog, :workspace => workspace, :name => 'test_ds'
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
52
|
+
|
53
|
+
describe "#connection_parameters" do
|
54
|
+
it 'should not override connection_parameters if on a existing datastore with non empty connection parameters' do
|
55
|
+
ds = RGeoServer::DataStore.new catalog, :workspace => workspace, :name => 'old_test_ds'
|
56
|
+
ds.connection_parameters.should == {
|
57
|
+
"memory mapped buffer"=>"false",
|
58
|
+
"create spatial index"=>"true",
|
59
|
+
"charset"=>"ISO-8859-1",
|
60
|
+
"filetype"=>"shapefile",
|
61
|
+
"cache and reuse memory maps"=>"true",
|
62
|
+
"url"=>"file:data/shapefiles/o_sites.shp",
|
63
|
+
"namespace"=>"http://www.openplans.org/spearfish"
|
64
|
+
}
|
65
|
+
end
|
66
|
+
|
67
|
+
it 'should have empty connection_parameters on new datastores' do
|
68
|
+
ds = RGeoServer::DataStore.new catalog, :workspace => workspace, :name => 'new_test_ds'
|
69
|
+
ds.connection_parameters.should be_empty
|
70
|
+
end
|
71
|
+
|
72
|
+
end
|
73
|
+
|
74
|
+
describe "#featuretypes" do
|
75
|
+
it 'should list feature types in datastore' do
|
76
|
+
ds = RGeoServer::DataStore.new catalog, :workspace => workspace, :name => 'old_test_ds'
|
77
|
+
# there is only one feature type in fixture response old_featuretypes.xml
|
78
|
+
ds.featuretypes.size.should == 1
|
79
|
+
ft = ds.featuretypes.first
|
80
|
+
ft.should be_an_instance_of(RGeoServer::FeatureType)
|
81
|
+
ft.name.should == 'o_sitesnew'
|
82
|
+
end
|
83
|
+
|
84
|
+
it 'should return an empty array of datastore is new or has no feature type resources' do
|
85
|
+
ds = RGeoServer::DataStore.new catalog, :workspace => workspace, :name => 'new_test_ds'
|
86
|
+
ds.featuretypes.should be_empty
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
describe "#profile_xml_to_hash" do
|
91
|
+
it 'should parse correctly profile_xml response for existing datastores' do
|
92
|
+
# this is called implicitely in previous tests
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
@@ -114,10 +114,6 @@ describe "Integration test against a GeoServer instance", :integration => true d
|
|
114
114
|
before :all do
|
115
115
|
@ws = RGeoServer::Workspace.new @catalog, :name => 'test_workspace_with_stores'
|
116
116
|
@ws.save
|
117
|
-
["s1", "s2","s3"].each{ |s|
|
118
|
-
ds = RGeoServer::DataStore.new @catalog, :workspace => @ws, :name => s
|
119
|
-
ds.save
|
120
|
-
}
|
121
117
|
end
|
122
118
|
|
123
119
|
after :all do
|
@@ -125,9 +121,13 @@ describe "Integration test against a GeoServer instance", :integration => true d
|
|
125
121
|
end
|
126
122
|
|
127
123
|
it "should list datastore objects that belong to it" do
|
128
|
-
|
124
|
+
['s1', 's2', 's3'].each{ |s|
|
125
|
+
ds = RGeoServer::DataStore.new @catalog, :workspace => @ws, :name => s
|
126
|
+
ds.save
|
127
|
+
}
|
128
|
+
@ws.data_stores do |ds|
|
129
129
|
ds.should be_kind_of(RGeoServer::DataStore)
|
130
|
-
[
|
130
|
+
['s1', 's2', 's3'].should include ds.name
|
131
131
|
end
|
132
132
|
end
|
133
133
|
|
@@ -173,7 +173,8 @@ describe "Integration test against a GeoServer instance", :integration => true d
|
|
173
173
|
|
174
174
|
it "should be created from a store" do
|
175
175
|
# Create a Datastore and a feature type under the default workspace (set it up as nil)
|
176
|
-
ds = RGeoServer::DataStore.new @catalog, :workspace => nil, :name => 'test_shapefile2'
|
176
|
+
ds = RGeoServer::DataStore.new @catalog, :workspace => nil, :name => 'test_shapefile2'
|
177
|
+
ds.connection_parameters = {"url" => "file://#{@shapefile}"}
|
177
178
|
ds.enabled = true
|
178
179
|
ds.new?.should == true
|
179
180
|
ds.save
|
@@ -326,7 +327,8 @@ describe "Integration test against a GeoServer instance", :integration => true d
|
|
326
327
|
end
|
327
328
|
|
328
329
|
it "should create a datastore under existing workspace, update and delete it right after" do
|
329
|
-
ds = RGeoServer::DataStore.new @catalog, :workspace => @ws, :name => 'test_shapefile'
|
330
|
+
ds = RGeoServer::DataStore.new @catalog, :workspace => @ws, :name => 'test_shapefile'
|
331
|
+
ds.connection_parameters = {"namespace"=> "http://test_workspace_for_stores", "url" => "file://#{@shapefile}"}
|
330
332
|
ds.new?.should == true
|
331
333
|
ds.save
|
332
334
|
ds.new?.should == false
|
@@ -342,11 +344,17 @@ describe "Integration test against a GeoServer instance", :integration => true d
|
|
342
344
|
end
|
343
345
|
|
344
346
|
it "should create a datastore under existing workspace and add a feature type that will also create a layer" do
|
345
|
-
ds = RGeoServer::DataStore.new @catalog, :workspace => @ws, :name => 'test_shapefile2'
|
347
|
+
ds = RGeoServer::DataStore.new @catalog, :workspace => @ws, :name => 'test_shapefile2'
|
348
|
+
ds.connection_parameters = {"url" => "file://#{@shapefile}", "namespace" => "http://test_workspace_for_stores"}
|
346
349
|
ds.new?.should == true
|
347
350
|
ds.save
|
348
351
|
ft = RGeoServer::FeatureType.new @catalog, :workspace => @ws, :data_store => ds, :name => 'granules'
|
349
352
|
ft.save
|
353
|
+
ds.featuretypes.each do |dft|
|
354
|
+
dft.name.should == ft.name
|
355
|
+
dft.workspace.should == ft.workspace
|
356
|
+
dft.data_store.should == ft.data_store
|
357
|
+
end
|
350
358
|
#ft.metadata_links = [{"type"=>"text/plain", "metadataType"=>"FGDC", "content"=>"http://example.com/geonetwork/srv/en/fgdc.xml?id=2"}]
|
351
359
|
#ft.save
|
352
360
|
#ft.metadata_links.first["metadataType"].should == "FGDC"
|
@@ -386,6 +394,11 @@ describe "Integration test against a GeoServer instance", :integration => true d
|
|
386
394
|
c.title = 'Test Raster Layer'
|
387
395
|
c.abstract = 'This is the abstract of the layer'
|
388
396
|
c.save
|
397
|
+
cs.coverages.each do |ct|
|
398
|
+
ct.name.should == c.name
|
399
|
+
ct.workspace.should == c.workspace
|
400
|
+
ct.coverage_store.should == ct.coverage_store
|
401
|
+
end
|
389
402
|
#c.metadata_links = [{"type"=>"text/plain", "metadataType"=>"FGDC", "content"=>"http://example.com/geonetwork/srv/en/fgdc.xml?id=1090"}]
|
390
403
|
#c.save
|
391
404
|
#c.metadata_links.first["metadataType"].should == "FGDC"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rgeoserver
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.8
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-06-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rest-client
|
16
|
-
requirement: &
|
16
|
+
requirement: &2151853540 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2151853540
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: nokogiri
|
27
|
-
requirement: &
|
27
|
+
requirement: &2151852340 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *2151852340
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: mime-types
|
38
|
-
requirement: &
|
38
|
+
requirement: &2151850840 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *2151850840
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: activesupport
|
49
|
-
requirement: &
|
49
|
+
requirement: &2151849240 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *2151849240
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: activemodel
|
60
|
-
requirement: &
|
60
|
+
requirement: &2151848360 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :runtime
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *2151848360
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: confstruct
|
71
|
-
requirement: &
|
71
|
+
requirement: &2151847220 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :runtime
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *2151847220
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: rake
|
82
|
-
requirement: &
|
82
|
+
requirement: &2151846340 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ! '>='
|
@@ -87,10 +87,10 @@ dependencies:
|
|
87
87
|
version: '0'
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *2151846340
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: shoulda
|
93
|
-
requirement: &
|
93
|
+
requirement: &2151856020 !ruby/object:Gem::Requirement
|
94
94
|
none: false
|
95
95
|
requirements:
|
96
96
|
- - ! '>='
|
@@ -98,10 +98,10 @@ dependencies:
|
|
98
98
|
version: '0'
|
99
99
|
type: :development
|
100
100
|
prerelease: false
|
101
|
-
version_requirements: *
|
101
|
+
version_requirements: *2151856020
|
102
102
|
- !ruby/object:Gem::Dependency
|
103
103
|
name: bundler
|
104
|
-
requirement: &
|
104
|
+
requirement: &2151854640 !ruby/object:Gem::Requirement
|
105
105
|
none: false
|
106
106
|
requirements:
|
107
107
|
- - ! '>='
|
@@ -109,10 +109,10 @@ dependencies:
|
|
109
109
|
version: 1.0.14
|
110
110
|
type: :development
|
111
111
|
prerelease: false
|
112
|
-
version_requirements: *
|
112
|
+
version_requirements: *2151854640
|
113
113
|
- !ruby/object:Gem::Dependency
|
114
114
|
name: rspec
|
115
|
-
requirement: &
|
115
|
+
requirement: &2151868580 !ruby/object:Gem::Requirement
|
116
116
|
none: false
|
117
117
|
requirements:
|
118
118
|
- - ! '>='
|
@@ -120,10 +120,10 @@ dependencies:
|
|
120
120
|
version: '0'
|
121
121
|
type: :development
|
122
122
|
prerelease: false
|
123
|
-
version_requirements: *
|
123
|
+
version_requirements: *2151868580
|
124
124
|
- !ruby/object:Gem::Dependency
|
125
125
|
name: yard
|
126
|
-
requirement: &
|
126
|
+
requirement: &2151867020 !ruby/object:Gem::Requirement
|
127
127
|
none: false
|
128
128
|
requirements:
|
129
129
|
- - ! '>='
|
@@ -131,10 +131,10 @@ dependencies:
|
|
131
131
|
version: '0'
|
132
132
|
type: :development
|
133
133
|
prerelease: false
|
134
|
-
version_requirements: *
|
134
|
+
version_requirements: *2151867020
|
135
135
|
- !ruby/object:Gem::Dependency
|
136
136
|
name: equivalent-xml
|
137
|
-
requirement: &
|
137
|
+
requirement: &2151865340 !ruby/object:Gem::Requirement
|
138
138
|
none: false
|
139
139
|
requirements:
|
140
140
|
- - ! '>='
|
@@ -142,10 +142,10 @@ dependencies:
|
|
142
142
|
version: '0'
|
143
143
|
type: :development
|
144
144
|
prerelease: false
|
145
|
-
version_requirements: *
|
145
|
+
version_requirements: *2151865340
|
146
146
|
- !ruby/object:Gem::Dependency
|
147
147
|
name: jettywrapper
|
148
|
-
requirement: &
|
148
|
+
requirement: &2151863900 !ruby/object:Gem::Requirement
|
149
149
|
none: false
|
150
150
|
requirements:
|
151
151
|
- - ! '>='
|
@@ -153,7 +153,7 @@ dependencies:
|
|
153
153
|
version: '0'
|
154
154
|
type: :development
|
155
155
|
prerelease: false
|
156
|
-
version_requirements: *
|
156
|
+
version_requirements: *2151863900
|
157
157
|
description: ! 'GeoServer REST API Ruby library : Requires GeoServer 2.1.3+'
|
158
158
|
email:
|
159
159
|
- renzo.sanchez.silva@gmail.com
|
@@ -162,6 +162,7 @@ extensions: []
|
|
162
162
|
extra_rdoc_files: []
|
163
163
|
files:
|
164
164
|
- .gitignore
|
165
|
+
- .travis.yml
|
165
166
|
- Gemfile
|
166
167
|
- README.rdoc
|
167
168
|
- Rakefile
|
@@ -193,8 +194,11 @@ files:
|
|
193
194
|
- spec/fixtures/datasets/vector/granules.qix
|
194
195
|
- spec/fixtures/datasets/vector/granules.shp
|
195
196
|
- spec/fixtures/datasets/vector/granules.shx
|
197
|
+
- spec/fixtures/resources/datastore/old.xml
|
198
|
+
- spec/fixtures/resources/datastore/old_featuretypes.xml
|
196
199
|
- spec/fixtures/styles/poptest.sld
|
197
200
|
- spec/fixtures/styles/test_style.sld
|
201
|
+
- spec/functional/datastore_spec.rb
|
198
202
|
- spec/functional/resource_spec.rb
|
199
203
|
- spec/integration/geoserver_spec.rb
|
200
204
|
- spec/spec_helper.rb
|
@@ -231,8 +235,11 @@ test_files:
|
|
231
235
|
- spec/fixtures/datasets/vector/granules.qix
|
232
236
|
- spec/fixtures/datasets/vector/granules.shp
|
233
237
|
- spec/fixtures/datasets/vector/granules.shx
|
238
|
+
- spec/fixtures/resources/datastore/old.xml
|
239
|
+
- spec/fixtures/resources/datastore/old_featuretypes.xml
|
234
240
|
- spec/fixtures/styles/poptest.sld
|
235
241
|
- spec/fixtures/styles/test_style.sld
|
242
|
+
- spec/functional/datastore_spec.rb
|
236
243
|
- spec/functional/resource_spec.rb
|
237
244
|
- spec/integration/geoserver_spec.rb
|
238
245
|
- spec/spec_helper.rb
|