rgeoserver 0.5.1 → 0.5.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/README.rdoc +1 -0
- data/VERSION +1 -1
- data/lib/rgeoserver/coverage.rb +5 -1
- data/lib/rgeoserver/coveragestore.rb +19 -29
- data/lib/rgeoserver/datastore.rb +6 -2
- data/lib/rgeoserver/datastores.rb +6 -20
- data/lib/rgeoserver/featuretype.rb +9 -41
- data/lib/rgeoserver/resource.rb +10 -10
- data/lib/rgeoserver/rest_api_client.rb +4 -3
- data/lib/rgeoserver/wmsstore.rb +5 -1
- data/lib/rgeoserver/workspace.rb +9 -5
- data/spec/lib/integration_test_spec.rb +22 -9
- metadata +170 -120
data/README.rdoc
CHANGED
@@ -55,6 +55,7 @@ To enter into an irb console with all classess loaded:
|
|
55
55
|
== TODO
|
56
56
|
- Complete stores and coverages functionality, handle Layers, styles and data upload.
|
57
57
|
- Complete documentaion and test coverage. Add more flexibility for integration tests with embedded Jetty and other containers.
|
58
|
+
- Add ability to connect under SSL.
|
58
59
|
- Migrate base HTTP client to {Weary}[https://github.com/mwunsch/weary]?
|
59
60
|
|
60
61
|
== Contributing with Patches and Pull requests checklist
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.5.
|
1
|
+
0.5.2
|
data/lib/rgeoserver/coverage.rb
CHANGED
@@ -4,7 +4,7 @@ module RGeoServer
|
|
4
4
|
class CoverageStore < ResourceInfo
|
5
5
|
|
6
6
|
OBJ_ATTRIBUTES = {:catalog => 'catalog', :workspace => 'workspace', :url => 'url', :data_type => 'type', :name => 'name', :enabled => 'enabled', :description => 'description'}
|
7
|
-
OBJ_DEFAULT_ATTRIBUTES = {:catalog => nil, :workspace => nil, :url => '', :data_type => 'GeoTIFF', :name => nil, :enabled => true, :description=>nil}
|
7
|
+
OBJ_DEFAULT_ATTRIBUTES = {:catalog => nil, :workspace => nil, :url => '', :data_type => 'GeoTIFF', :name => nil, :enabled => 'true', :description=>nil}
|
8
8
|
define_attribute_methods OBJ_ATTRIBUTES.keys
|
9
9
|
update_attribute_accessors OBJ_ATTRIBUTES
|
10
10
|
|
@@ -18,7 +18,11 @@ module RGeoServer
|
|
18
18
|
@@r.root
|
19
19
|
end
|
20
20
|
|
21
|
-
def self.
|
21
|
+
def self.create_method
|
22
|
+
:post
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.update_method
|
22
26
|
:put
|
23
27
|
end
|
24
28
|
|
@@ -41,11 +45,14 @@ module RGeoServer
|
|
41
45
|
def message
|
42
46
|
builder = Nokogiri::XML::Builder.new do |xml|
|
43
47
|
xml.coverageStore {
|
44
|
-
xml.name @name
|
45
|
-
xml.
|
46
|
-
|
47
|
-
|
48
|
-
xml.
|
48
|
+
xml.name @name if new?
|
49
|
+
xml.workspace {
|
50
|
+
xml.name @workspace.name
|
51
|
+
}
|
52
|
+
xml.enabled @enabled if (enabled_changed? || new?)
|
53
|
+
xml.type_ @data_type if (data_type_changed? || new?)
|
54
|
+
xml.description @description if (description_changed? || new?)
|
55
|
+
xml.url @url if (url_changed? || new?)
|
49
56
|
}
|
50
57
|
end
|
51
58
|
@message = builder.doc.to_xml
|
@@ -73,39 +80,22 @@ module RGeoServer
|
|
73
80
|
|
74
81
|
def coverages
|
75
82
|
profile["coverages"].collect{ |name|
|
76
|
-
Coverage.new @catalog, :workspace => @workspace, :coverage_store => self, :name => name
|
83
|
+
Coverage.new @catalog, :workspace => @workspace, :coverage_store => self, :name => name
|
77
84
|
}
|
78
85
|
end
|
79
86
|
|
80
|
-
def
|
81
|
-
Nokogiri::XML(profile_xml).xpath(self.member_xpath)
|
82
|
-
end
|
83
|
-
|
84
|
-
def profile_xml_to_hash2 profile_xml
|
87
|
+
def profile_xml_to_hash profile_xml
|
85
88
|
doc = profile_xml_to_ng profile_xml
|
86
|
-
{
|
89
|
+
h = {
|
87
90
|
'name' => doc.at_xpath('//name').text.strip,
|
88
91
|
'workspace' => @workspace.name,
|
89
92
|
'type' => doc.at_xpath('//type/text()').to_s,
|
90
93
|
'enabled' => doc.at_xpath('//enabled/text()').to_s,
|
91
94
|
'description' => doc.at_xpath('//description/text()').to_s,
|
92
95
|
'url' => doc.at_xpath('//url/text()').to_s
|
93
|
-
}
|
96
|
+
}.freeze
|
97
|
+
h
|
94
98
|
end
|
95
99
|
|
96
|
-
def profile_xml_to_hash1 profile_xml
|
97
|
-
doc = profile_xml_to_ng profile_xml
|
98
|
-
h = {:name => doc.at_xpath('//name').text.strip, :workspace => @workspace.name, :coverages => [] }
|
99
|
-
doc.xpath('//coverages/atom:link/@href', "xmlns:atom"=>"http://www.w3.org/2005/Atom" ).each{ |l|
|
100
|
-
h[:coverages] << {
|
101
|
-
:name => l.parent.parent.at_xpath('//name/text()').to_s,
|
102
|
-
:type => l.parent.parent.at_xpath('//type/text()').to_s,
|
103
|
-
:enabled => l.parent.parent.at_xpath('//enabled/text()').to_s,
|
104
|
-
:description => l.parent.parent.at_xpath('//description/text()').to_s,
|
105
|
-
:url => l.parent.parent.at_xpath('//url/text()').to_s
|
106
|
-
}
|
107
|
-
}
|
108
|
-
h
|
109
|
-
end
|
110
100
|
end
|
111
101
|
end
|
data/lib/rgeoserver/datastore.rb
CHANGED
@@ -20,7 +20,11 @@ module RGeoServer
|
|
20
20
|
@@r.root
|
21
21
|
end
|
22
22
|
|
23
|
-
def self.
|
23
|
+
def self.create_method
|
24
|
+
:post
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.save_method
|
24
28
|
:put
|
25
29
|
end
|
26
30
|
|
@@ -47,7 +51,7 @@ module RGeoServer
|
|
47
51
|
def message
|
48
52
|
builder = Nokogiri::XML::Builder.new do |xml|
|
49
53
|
xml.dataStore {
|
50
|
-
xml.enabled
|
54
|
+
xml.enabled true
|
51
55
|
xml.name @name
|
52
56
|
xml.connectionParameters { # this could be empty
|
53
57
|
@connection_parameters.each_pair { |k,v|
|
@@ -4,7 +4,7 @@ module RGeoServer
|
|
4
4
|
class DataStores < ResourceInfo
|
5
5
|
|
6
6
|
OBJ_ATTRIBUTES = {:enabled => "enabled", :catalog => "catalog", :workspace => "workspace", :name => "name"}
|
7
|
-
OBJ_DEFAULT_ATTRIBUTES = {:enabled => true, :catalog => nil, :workspace => nil, :name => nil, }
|
7
|
+
OBJ_DEFAULT_ATTRIBUTES = {:enabled => 'true', :catalog => nil, :workspace => nil, :name => nil, }
|
8
8
|
define_attribute_methods OBJ_ATTRIBUTES.keys
|
9
9
|
update_attribute_accessors OBJ_ATTRIBUTES
|
10
10
|
|
@@ -18,7 +18,11 @@ module RGeoServer
|
|
18
18
|
@@r.root
|
19
19
|
end
|
20
20
|
|
21
|
-
def self.
|
21
|
+
def self.create_method
|
22
|
+
:put
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.update_method
|
22
26
|
:put
|
23
27
|
end
|
24
28
|
|
@@ -75,23 +79,5 @@ module RGeoServer
|
|
75
79
|
}
|
76
80
|
end
|
77
81
|
|
78
|
-
def profile_xml_to_hash1 profile_xml
|
79
|
-
doc = profile_xml_to_ng profile_xml
|
80
|
-
h = {
|
81
|
-
"name" => doc.at_xpath('//name').text.strip,
|
82
|
-
"enabled" => doc.at_xpath('//enabled/text()').to_s,
|
83
|
-
"connectionParameters" => doc.xpath('//connectionParameters/entry').collect{ |e| {e['key'].to_sym => e.text.to_s} }
|
84
|
-
}
|
85
|
-
doc.xpath('//featureTypes/atom:link/@href', "xmlns:atom"=>"http://www.w3.org/2005/Atom" ).each{ |l|
|
86
|
-
h[:featuretypes] = begin
|
87
|
-
response = @catalog.fetch_url l.text
|
88
|
-
Nokogiri::XML(response).xpath('//name/text()').collect{ |a| a.text }
|
89
|
-
rescue RestClient::ResourceNotFound
|
90
|
-
[]
|
91
|
-
end.freeze
|
92
|
-
|
93
|
-
}
|
94
|
-
h
|
95
|
-
end
|
96
82
|
end
|
97
83
|
end
|
@@ -15,9 +15,14 @@ module RGeoServer
|
|
15
15
|
@@r.root
|
16
16
|
end
|
17
17
|
|
18
|
-
def self.
|
18
|
+
def self.create_method
|
19
19
|
:put
|
20
20
|
end
|
21
|
+
|
22
|
+
def self.update_method
|
23
|
+
:put
|
24
|
+
end
|
25
|
+
|
21
26
|
|
22
27
|
def self.resource_name
|
23
28
|
@@r.resource_name
|
@@ -35,47 +40,10 @@ module RGeoServer
|
|
35
40
|
@@r.route % [@workspace.name , @data_store.name ]
|
36
41
|
end
|
37
42
|
|
38
|
-
def
|
39
|
-
|
40
|
-
<dataStore>
|
41
|
-
<enabled>true</enabled>
|
42
|
-
<name>#{name}</name>
|
43
|
-
<workspace><name>#{workspace_name}</name></workspace>
|
44
|
-
<connectionParameters>
|
45
|
-
<entry key="url">file:data/shapefiles/states.shp</entry>
|
46
|
-
<entry key="namespace">http://www.openplans.org/topp</entry>
|
47
|
-
</connectionParameters>
|
48
|
-
<__default>false</__default>
|
49
|
-
<featureTypes>
|
50
|
-
<atom:link xmlns:atom="http://www.w3.org/2005/Atom" rel="alternate" href="http://localhost:8080/geoserver/rest/workspaces/topp/datastores/states_shapefile/featuretypes.xml" type="application/xml"/>
|
51
|
-
</featureTypes>
|
52
|
-
</dataStore>
|
53
|
-
ds
|
54
|
-
end
|
55
|
-
|
56
|
-
def name
|
57
|
-
@name
|
58
|
-
end
|
59
|
-
|
60
|
-
def workspace
|
61
|
-
@workspace
|
62
|
-
end
|
63
|
-
|
64
|
-
def data_store
|
65
|
-
@data_store
|
66
|
-
end
|
67
|
-
|
68
|
-
def catalog
|
69
|
-
@catalog
|
70
|
-
end
|
71
|
-
|
72
|
-
def workspace_name
|
73
|
-
@workspace.name
|
43
|
+
def message
|
44
|
+
"<featureType/>"
|
74
45
|
end
|
75
46
|
|
76
|
-
def data_store_name
|
77
|
-
@data_store.name
|
78
|
-
end
|
79
47
|
|
80
48
|
# @param [RGeoServer::Catalog] catalog
|
81
49
|
# @param [Hash] options
|
@@ -125,7 +93,7 @@ module RGeoServer
|
|
125
93
|
doc = profile_xml_to_ng profile_xml
|
126
94
|
h = {
|
127
95
|
:name => doc.at_xpath('//name').text.strip,
|
128
|
-
:workspace =>
|
96
|
+
:workspace => @workspace.name,
|
129
97
|
:nativeName => doc.at_xpath('//nativeName').text.to_s
|
130
98
|
}.freeze
|
131
99
|
h
|
data/lib/rgeoserver/resource.rb
CHANGED
@@ -11,7 +11,7 @@ module RGeoServer
|
|
11
11
|
|
12
12
|
# mapping object parameters to profile elements
|
13
13
|
OBJ_ATTRIBUTES = {:enabled => 'enabled'}
|
14
|
-
OBJ_DEFAULT_ATTRIBUTES = {:enabled => true}
|
14
|
+
OBJ_DEFAULT_ATTRIBUTES = {:enabled => 'true'}
|
15
15
|
|
16
16
|
define_attribute_methods OBJ_ATTRIBUTES.keys
|
17
17
|
|
@@ -38,14 +38,14 @@ module RGeoServer
|
|
38
38
|
"#{self.class.name}: #{name}"
|
39
39
|
end
|
40
40
|
|
41
|
-
|
42
|
-
|
43
|
-
raise GeoServerInvalidRequest, "Can't create a #{self.class.resource_name} resource with empty name" if options[:name].nil?
|
44
|
-
catalog ||= RGeoServer.catalog
|
45
|
-
catalog.add @route, xml(options)
|
46
|
-
self.class.new catalog, options
|
41
|
+
def create_method
|
42
|
+
self.class.create_method
|
47
43
|
end
|
48
|
-
|
44
|
+
|
45
|
+
def update_method
|
46
|
+
self.class.update_method
|
47
|
+
end
|
48
|
+
|
49
49
|
# Modify or save the resource
|
50
50
|
# @param options [Hash]
|
51
51
|
# @return [RGeoServer::ResourceInfo]
|
@@ -54,10 +54,10 @@ module RGeoServer
|
|
54
54
|
@changed_attributes.clear
|
55
55
|
run_callbacks :save do
|
56
56
|
if new?
|
57
|
-
@catalog.add(@route, message)
|
57
|
+
@catalog.add(@route, message, create_method)
|
58
58
|
clear
|
59
59
|
else
|
60
|
-
@catalog.modify({@route => @name}, message) #unless changes.empty?
|
60
|
+
@catalog.modify({@route => @name}, message, update_method) #unless changes.empty?
|
61
61
|
end
|
62
62
|
|
63
63
|
self
|
@@ -55,7 +55,7 @@ module RGeoServer
|
|
55
55
|
# @param [String] what
|
56
56
|
# @param [String] message
|
57
57
|
# @param [Symbol] method
|
58
|
-
def add what, message, method
|
58
|
+
def add what, message, method
|
59
59
|
request = client[url_for(what)]
|
60
60
|
request.options[:headers] ||= headers(:xml)
|
61
61
|
begin
|
@@ -71,12 +71,13 @@ module RGeoServer
|
|
71
71
|
# Modify resource in the catalog
|
72
72
|
# @param [String] what
|
73
73
|
# @param [String] message
|
74
|
-
|
74
|
+
# @param [Symbol] method
|
75
|
+
def modify what, message, method
|
75
76
|
request = client[url_for(what, {})]
|
76
77
|
request.options[:headers] ||= headers(:xml)
|
77
78
|
$logger.debug "Modifying: \n #{message}"
|
78
79
|
begin
|
79
|
-
return request.
|
80
|
+
return request.send method, message
|
80
81
|
rescue RestClient::InternalServerError => e
|
81
82
|
$logger.error e.response
|
82
83
|
$logger.flush if $logger.respond_to? :flush
|
data/lib/rgeoserver/wmsstore.rb
CHANGED
data/lib/rgeoserver/workspace.rb
CHANGED
@@ -4,7 +4,7 @@ module RGeoServer
|
|
4
4
|
class Workspace < ResourceInfo
|
5
5
|
|
6
6
|
OBJ_ATTRIBUTES = {:enabled => 'enabled', :catalog => 'catalog', :name => 'name' }
|
7
|
-
OBJ_DEFAULT_ATTRIBUTES = {:enabled => true, :catalog => nil, :name => nil }
|
7
|
+
OBJ_DEFAULT_ATTRIBUTES = {:enabled => 'true', :catalog => nil, :name => nil }
|
8
8
|
|
9
9
|
define_attribute_methods OBJ_ATTRIBUTES.keys
|
10
10
|
update_attribute_accessors OBJ_ATTRIBUTES
|
@@ -15,9 +15,13 @@ module RGeoServer
|
|
15
15
|
@@r.resource_name
|
16
16
|
end
|
17
17
|
|
18
|
-
def self.
|
18
|
+
def self.create_method
|
19
19
|
:post
|
20
20
|
end
|
21
|
+
|
22
|
+
def self.update_method
|
23
|
+
:put
|
24
|
+
end
|
21
25
|
|
22
26
|
def self.root_xpath
|
23
27
|
"//#{@@r.route}/#{@@r.resource_name}"
|
@@ -54,19 +58,19 @@ module RGeoServer
|
|
54
58
|
|
55
59
|
def data_stores
|
56
60
|
profile['dataStores'].collect{ |name|
|
57
|
-
DataStore.new @catalog, :workspace => self, :name => name
|
61
|
+
DataStore.new @catalog, :workspace => self, :name => name
|
58
62
|
}
|
59
63
|
end
|
60
64
|
|
61
65
|
def coverage_stores
|
62
66
|
profile['coverageStores'].collect{ |name|
|
63
|
-
CoverageStore.new @catalog, :workspace => self, :name => name
|
67
|
+
CoverageStore.new @catalog, :workspace => self, :name => name
|
64
68
|
}
|
65
69
|
end
|
66
70
|
|
67
71
|
def wms_stores
|
68
72
|
profile['wmsStores'].collect{ |name|
|
69
|
-
WmsStore.new @catalog, :workspace => self, :name => name
|
73
|
+
WmsStore.new @catalog, :workspace => self, :name => name
|
70
74
|
}
|
71
75
|
end
|
72
76
|
|
@@ -27,24 +27,24 @@ describe "Integration test against a GeoServer instance", :integration => true d
|
|
27
27
|
|
28
28
|
it "should save new items" do
|
29
29
|
obj = RGeoServer::Workspace.new @catalog, :name => 'test_ws'
|
30
|
-
obj.delete(:
|
30
|
+
obj.delete(:recurse=>true) if !obj.new?
|
31
31
|
obj.new?.should == true
|
32
32
|
obj.profile.should == {}
|
33
33
|
obj.save
|
34
34
|
obj.new?.should == false
|
35
|
-
obj.enabled.should == true
|
36
|
-
obj.delete :
|
35
|
+
obj.enabled.should == 'true'
|
36
|
+
obj.delete :recurse => true
|
37
37
|
end
|
38
38
|
|
39
39
|
it "should fail trying to delete unsaved (new) workspace" do
|
40
40
|
obj = RGeoServer::Workspace.new @catalog, :name => 'test'
|
41
|
-
obj.delete(:
|
41
|
+
obj.delete(:recurse=>true) if !obj.new?
|
42
42
|
obj.delete.should raise_error
|
43
43
|
end
|
44
44
|
|
45
45
|
it "should fail trying to delete unexisting workspace names from catalog" do
|
46
46
|
lambda{ ["asdfdg", "test3", "test5", "test6"].each{ |w|
|
47
|
-
@catalog.purge({:workspaces => w}, {:
|
47
|
+
@catalog.purge({:workspaces => w}, {:recurse => true})
|
48
48
|
}
|
49
49
|
}.should raise_error
|
50
50
|
end
|
@@ -64,7 +64,6 @@ describe "Integration test against a GeoServer instance", :integration => true d
|
|
64
64
|
end
|
65
65
|
|
66
66
|
it "should list datastore objects that belong to it" do
|
67
|
-
|
68
67
|
@ws.data_stores.each{ |ds|
|
69
68
|
ds.should be_kind_of(RGeoServer::DataStore)
|
70
69
|
["s1", "s2", "s3"].should include ds.name
|
@@ -81,7 +80,7 @@ describe "Integration test against a GeoServer instance", :integration => true d
|
|
81
80
|
end
|
82
81
|
|
83
82
|
after :all do
|
84
|
-
@ws.delete :
|
83
|
+
@ws.delete :recurse => true
|
85
84
|
end
|
86
85
|
|
87
86
|
context "DataStores" do
|
@@ -98,7 +97,7 @@ describe "Integration test against a GeoServer instance", :integration => true d
|
|
98
97
|
obj.new?.should raise_error
|
99
98
|
end
|
100
99
|
|
101
|
-
it "should create a datastore under existing workspace and
|
100
|
+
it "should create a datastore under existing workspace, update and delete it right after" do
|
102
101
|
ds = RGeoServer::DataStore.new @catalog, :workspace => @ws, :name => 'test', :connection_parameters => {"namespace"=>"http://test_workspace_for_stores", "url" => "file://tmp/geo.tif"}
|
103
102
|
ds.new?.should == true
|
104
103
|
ds.save
|
@@ -116,7 +115,21 @@ describe "Integration test against a GeoServer instance", :integration => true d
|
|
116
115
|
end
|
117
116
|
end
|
118
117
|
context "CoverageStores" do
|
119
|
-
|
118
|
+
it "should create a coverage store under existing workspace, update and delete it right after" do
|
119
|
+
cs = RGeoServer::CoverageStore.new @catalog, :workspace => @ws, :name => 'test_coverage_store'
|
120
|
+
cs.url = "file:data_dir/sf/raster.tif"
|
121
|
+
cs.description = 'description'
|
122
|
+
cs.enabled = 'true'
|
123
|
+
cs.data_type = 'GeoTIFF'
|
124
|
+
cs.new?.should == true
|
125
|
+
cs.save
|
126
|
+
cs.new?.should == false
|
127
|
+
cs.description = 'new description'
|
128
|
+
cs.description_changed?.should == true
|
129
|
+
cs.save
|
130
|
+
cs.description.should == 'new description'
|
131
|
+
cs.new?.should == false
|
132
|
+
end
|
120
133
|
end
|
121
134
|
end
|
122
135
|
end
|
metadata
CHANGED
@@ -1,155 +1,202 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: rgeoserver
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 15
|
5
5
|
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 5
|
9
|
+
- 2
|
10
|
+
version: 0.5.2
|
6
11
|
platform: ruby
|
7
|
-
authors:
|
12
|
+
authors:
|
8
13
|
- Renzo Sanchez-Silva
|
9
14
|
autorequire:
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
17
|
+
|
18
|
+
date: 2012-04-29 00:00:00 Z
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
15
21
|
name: rest-client
|
16
|
-
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
17
24
|
none: false
|
18
|
-
requirements:
|
19
|
-
- -
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
hash: 3
|
29
|
+
segments:
|
30
|
+
- 0
|
31
|
+
version: "0"
|
22
32
|
type: :runtime
|
23
|
-
|
24
|
-
|
25
|
-
- !ruby/object:Gem::Dependency
|
33
|
+
version_requirements: *id001
|
34
|
+
- !ruby/object:Gem::Dependency
|
26
35
|
name: nokogiri
|
27
|
-
|
36
|
+
prerelease: false
|
37
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
28
38
|
none: false
|
29
|
-
requirements:
|
30
|
-
- -
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
|
39
|
+
requirements:
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
hash: 3
|
43
|
+
segments:
|
44
|
+
- 0
|
45
|
+
version: "0"
|
33
46
|
type: :runtime
|
34
|
-
|
35
|
-
|
36
|
-
- !ruby/object:Gem::Dependency
|
47
|
+
version_requirements: *id002
|
48
|
+
- !ruby/object:Gem::Dependency
|
37
49
|
name: mime-types
|
38
|
-
|
50
|
+
prerelease: false
|
51
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
39
52
|
none: false
|
40
|
-
requirements:
|
41
|
-
- -
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
|
53
|
+
requirements:
|
54
|
+
- - ">="
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
hash: 3
|
57
|
+
segments:
|
58
|
+
- 0
|
59
|
+
version: "0"
|
44
60
|
type: :runtime
|
45
|
-
|
46
|
-
|
47
|
-
- !ruby/object:Gem::Dependency
|
61
|
+
version_requirements: *id003
|
62
|
+
- !ruby/object:Gem::Dependency
|
48
63
|
name: activesupport
|
49
|
-
|
64
|
+
prerelease: false
|
65
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
50
66
|
none: false
|
51
|
-
requirements:
|
52
|
-
- -
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
|
67
|
+
requirements:
|
68
|
+
- - ">="
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
hash: 3
|
71
|
+
segments:
|
72
|
+
- 0
|
73
|
+
version: "0"
|
55
74
|
type: :runtime
|
56
|
-
|
57
|
-
|
58
|
-
- !ruby/object:Gem::Dependency
|
75
|
+
version_requirements: *id004
|
76
|
+
- !ruby/object:Gem::Dependency
|
59
77
|
name: activemodel
|
60
|
-
|
78
|
+
prerelease: false
|
79
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
61
80
|
none: false
|
62
|
-
requirements:
|
63
|
-
- -
|
64
|
-
- !ruby/object:Gem::Version
|
65
|
-
|
81
|
+
requirements:
|
82
|
+
- - ">="
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
hash: 3
|
85
|
+
segments:
|
86
|
+
- 0
|
87
|
+
version: "0"
|
66
88
|
type: :runtime
|
67
|
-
|
68
|
-
|
69
|
-
- !ruby/object:Gem::Dependency
|
89
|
+
version_requirements: *id005
|
90
|
+
- !ruby/object:Gem::Dependency
|
70
91
|
name: confstruct
|
71
|
-
|
92
|
+
prerelease: false
|
93
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
72
94
|
none: false
|
73
|
-
requirements:
|
74
|
-
- -
|
75
|
-
- !ruby/object:Gem::Version
|
76
|
-
|
95
|
+
requirements:
|
96
|
+
- - ">="
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
hash: 3
|
99
|
+
segments:
|
100
|
+
- 0
|
101
|
+
version: "0"
|
77
102
|
type: :runtime
|
78
|
-
|
79
|
-
|
80
|
-
- !ruby/object:Gem::Dependency
|
103
|
+
version_requirements: *id006
|
104
|
+
- !ruby/object:Gem::Dependency
|
81
105
|
name: rake
|
82
|
-
|
106
|
+
prerelease: false
|
107
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
83
108
|
none: false
|
84
|
-
requirements:
|
85
|
-
- -
|
86
|
-
- !ruby/object:Gem::Version
|
87
|
-
|
109
|
+
requirements:
|
110
|
+
- - ">="
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
hash: 3
|
113
|
+
segments:
|
114
|
+
- 0
|
115
|
+
version: "0"
|
88
116
|
type: :development
|
89
|
-
|
90
|
-
|
91
|
-
- !ruby/object:Gem::Dependency
|
117
|
+
version_requirements: *id007
|
118
|
+
- !ruby/object:Gem::Dependency
|
92
119
|
name: shoulda
|
93
|
-
|
120
|
+
prerelease: false
|
121
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
94
122
|
none: false
|
95
|
-
requirements:
|
96
|
-
- -
|
97
|
-
- !ruby/object:Gem::Version
|
98
|
-
|
123
|
+
requirements:
|
124
|
+
- - ">="
|
125
|
+
- !ruby/object:Gem::Version
|
126
|
+
hash: 3
|
127
|
+
segments:
|
128
|
+
- 0
|
129
|
+
version: "0"
|
99
130
|
type: :development
|
100
|
-
|
101
|
-
|
102
|
-
- !ruby/object:Gem::Dependency
|
131
|
+
version_requirements: *id008
|
132
|
+
- !ruby/object:Gem::Dependency
|
103
133
|
name: bundler
|
104
|
-
|
134
|
+
prerelease: false
|
135
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
105
136
|
none: false
|
106
|
-
requirements:
|
107
|
-
- -
|
108
|
-
- !ruby/object:Gem::Version
|
137
|
+
requirements:
|
138
|
+
- - ">="
|
139
|
+
- !ruby/object:Gem::Version
|
140
|
+
hash: 11
|
141
|
+
segments:
|
142
|
+
- 1
|
143
|
+
- 0
|
144
|
+
- 14
|
109
145
|
version: 1.0.14
|
110
146
|
type: :development
|
111
|
-
|
112
|
-
|
113
|
-
- !ruby/object:Gem::Dependency
|
147
|
+
version_requirements: *id009
|
148
|
+
- !ruby/object:Gem::Dependency
|
114
149
|
name: rspec
|
115
|
-
|
150
|
+
prerelease: false
|
151
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
116
152
|
none: false
|
117
|
-
requirements:
|
118
|
-
- -
|
119
|
-
- !ruby/object:Gem::Version
|
120
|
-
|
153
|
+
requirements:
|
154
|
+
- - ">="
|
155
|
+
- !ruby/object:Gem::Version
|
156
|
+
hash: 3
|
157
|
+
segments:
|
158
|
+
- 0
|
159
|
+
version: "0"
|
121
160
|
type: :development
|
122
|
-
|
123
|
-
|
124
|
-
- !ruby/object:Gem::Dependency
|
161
|
+
version_requirements: *id010
|
162
|
+
- !ruby/object:Gem::Dependency
|
125
163
|
name: yard
|
126
|
-
|
164
|
+
prerelease: false
|
165
|
+
requirement: &id011 !ruby/object:Gem::Requirement
|
127
166
|
none: false
|
128
|
-
requirements:
|
129
|
-
- -
|
130
|
-
- !ruby/object:Gem::Version
|
131
|
-
|
167
|
+
requirements:
|
168
|
+
- - ">="
|
169
|
+
- !ruby/object:Gem::Version
|
170
|
+
hash: 3
|
171
|
+
segments:
|
172
|
+
- 0
|
173
|
+
version: "0"
|
132
174
|
type: :development
|
133
|
-
|
134
|
-
|
135
|
-
- !ruby/object:Gem::Dependency
|
175
|
+
version_requirements: *id011
|
176
|
+
- !ruby/object:Gem::Dependency
|
136
177
|
name: jettywrapper
|
137
|
-
|
178
|
+
prerelease: false
|
179
|
+
requirement: &id012 !ruby/object:Gem::Requirement
|
138
180
|
none: false
|
139
|
-
requirements:
|
140
|
-
- -
|
141
|
-
- !ruby/object:Gem::Version
|
142
|
-
|
181
|
+
requirements:
|
182
|
+
- - ">="
|
183
|
+
- !ruby/object:Gem::Version
|
184
|
+
hash: 3
|
185
|
+
segments:
|
186
|
+
- 0
|
187
|
+
version: "0"
|
143
188
|
type: :development
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
email:
|
189
|
+
version_requirements: *id012
|
190
|
+
description: "GeoServer REST API Ruby library : Requires GeoServer 2.1.3+"
|
191
|
+
email:
|
148
192
|
- renzo.sanchez.silva@gmail.com
|
149
193
|
executables: []
|
194
|
+
|
150
195
|
extensions: []
|
196
|
+
|
151
197
|
extra_rdoc_files: []
|
152
|
-
|
198
|
+
|
199
|
+
files:
|
153
200
|
- .gitignore
|
154
201
|
- Gemfile
|
155
202
|
- README.rdoc
|
@@ -176,35 +223,38 @@ files:
|
|
176
223
|
- spec/spec_helper.rb
|
177
224
|
homepage: http://github.com/rnz0/rgeoserver
|
178
225
|
licenses: []
|
226
|
+
|
179
227
|
post_install_message:
|
180
228
|
rdoc_options: []
|
181
|
-
|
229
|
+
|
230
|
+
require_paths:
|
182
231
|
- lib
|
183
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
232
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
184
233
|
none: false
|
185
|
-
requirements:
|
186
|
-
- -
|
187
|
-
- !ruby/object:Gem::Version
|
188
|
-
|
189
|
-
segments:
|
234
|
+
requirements:
|
235
|
+
- - ">="
|
236
|
+
- !ruby/object:Gem::Version
|
237
|
+
hash: 3
|
238
|
+
segments:
|
190
239
|
- 0
|
191
|
-
|
192
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
240
|
+
version: "0"
|
241
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
193
242
|
none: false
|
194
|
-
requirements:
|
195
|
-
- -
|
196
|
-
- !ruby/object:Gem::Version
|
197
|
-
|
198
|
-
segments:
|
243
|
+
requirements:
|
244
|
+
- - ">="
|
245
|
+
- !ruby/object:Gem::Version
|
246
|
+
hash: 3
|
247
|
+
segments:
|
199
248
|
- 0
|
200
|
-
|
249
|
+
version: "0"
|
201
250
|
requirements: []
|
251
|
+
|
202
252
|
rubyforge_project:
|
203
253
|
rubygems_version: 1.8.10
|
204
254
|
signing_key:
|
205
255
|
specification_version: 3
|
206
256
|
summary: GeoServer REST API ruby library
|
207
|
-
test_files:
|
257
|
+
test_files:
|
208
258
|
- spec/lib/integration_test_spec.rb
|
209
259
|
- spec/spec_helper.rb
|
210
260
|
has_rdoc:
|