rgeoserver 0.5.1

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.
@@ -0,0 +1,31 @@
1
+ require File.join(File.dirname(__FILE__), "lib/rgeoserver/version")
2
+ Gem::Specification.new do |s|
3
+ s.name = "rgeoserver"
4
+ s.version = RGeoServer::VERSION
5
+ s.platform = Gem::Platform::RUBY
6
+ s.authors = ["Renzo Sanchez-Silva"]
7
+ s.email = ["renzo.sanchez.silva@gmail.com"]
8
+ s.summary = %q{GeoServer REST API ruby library }
9
+ s.description = %q{GeoServer REST API Ruby library : Requires GeoServer 2.1.3+}
10
+ s.homepage = "http://github.com/rnz0/rgeoserver"
11
+
12
+ s.files = `git ls-files`.split("\n")
13
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
14
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
15
+ s.require_paths = ["lib"]
16
+
17
+ s.add_dependency "rest-client"
18
+ s.add_dependency "nokogiri"
19
+ s.add_dependency "mime-types"
20
+ s.add_dependency "activesupport"
21
+ s.add_dependency "activemodel"
22
+ s.add_dependency "confstruct"
23
+
24
+ s.add_development_dependency("rake")
25
+ s.add_development_dependency("shoulda")
26
+ s.add_development_dependency("bundler", ">= 1.0.14")
27
+ s.add_development_dependency("rspec")
28
+ s.add_development_dependency("yard")
29
+ s.add_development_dependency("jettywrapper")
30
+ end
31
+
@@ -0,0 +1,122 @@
1
+ require 'spec_helper'
2
+
3
+ describe "Integration test against a GeoServer instance", :integration => true do
4
+ CONFIG = RGeoServer::Config
5
+
6
+ before(:all) do
7
+ @catalog = RGeoServer.catalog
8
+ end
9
+
10
+ context "Workspaces" do
11
+ it "should list workspaces" do
12
+ @catalog.get_workspaces.each{ |obj|
13
+ obj.profile.should_not be_nil
14
+ }
15
+ end
16
+
17
+ it "should return workspace from catalog" do
18
+ obj = @catalog.get_workspace 'topp'
19
+ obj.profile.should_not be_empty
20
+ end
21
+
22
+ it "should instantiate an existing worskpace object" do
23
+ obj = RGeoServer::Workspace.new @catalog, :name => 'topp'
24
+ obj.new?.should == false
25
+ obj.profile.should_not == {}
26
+ end
27
+
28
+ it "should save new items" do
29
+ obj = RGeoServer::Workspace.new @catalog, :name => 'test_ws'
30
+ obj.delete(:purge=>true) if !obj.new?
31
+ obj.new?.should == true
32
+ obj.profile.should == {}
33
+ obj.save
34
+ obj.new?.should == false
35
+ obj.enabled.should == true
36
+ obj.delete :purge => true
37
+ end
38
+
39
+ it "should fail trying to delete unsaved (new) workspace" do
40
+ obj = RGeoServer::Workspace.new @catalog, :name => 'test'
41
+ obj.delete(:purge=>true) if !obj.new?
42
+ obj.delete.should raise_error
43
+ end
44
+
45
+ it "should fail trying to delete unexisting workspace names from catalog" do
46
+ lambda{ ["asdfdg", "test3", "test5", "test6"].each{ |w|
47
+ @catalog.purge({:workspaces => w}, {:purge => true})
48
+ }
49
+ }.should raise_error
50
+ end
51
+
52
+ context "Datastores of a Workspace" do
53
+ before :all do
54
+ @ws = RGeoServer::Workspace.new @catalog, :name => 'test_workspace_with_stores'
55
+ @ws.save
56
+ ["s1", "s2","s3"].each{ |s|
57
+ ds = RGeoServer::DataStore.new @catalog, :workspace => @ws, :name => s
58
+ ds.save
59
+ }
60
+ end
61
+
62
+ after :all do
63
+ @ws.delete :recurse => true
64
+ end
65
+
66
+ it "should list datastore objects that belong to it" do
67
+
68
+ @ws.data_stores.each{ |ds|
69
+ ds.should be_kind_of(RGeoServer::DataStore)
70
+ ["s1", "s2", "s3"].should include ds.name
71
+ }
72
+ end
73
+
74
+ end
75
+ end
76
+
77
+ context "Stores" do
78
+ before :all do
79
+ @ws = RGeoServer::Workspace.new @catalog, :name => 'test_workspace_for_stores'
80
+ @ws.save
81
+ end
82
+
83
+ after :all do
84
+ @ws.delete :purge => true
85
+ end
86
+
87
+ context "DataStores" do
88
+ it "should instantiate a datastore" do
89
+ obj = RGeoServer::DataStore.new @catalog, :workspace => @ws, :name => 'test_shapefile'
90
+ obj.new?.should == true
91
+ obj.name.should == 'test_shapefile'
92
+ obj.workspace.name.should == @ws.name
93
+ end
94
+
95
+ it "should not create a datastore if workspace does not exit" do
96
+ new_ws = RGeoServer::Workspace.new @catalog, :name => SecureRandom.hex(5)
97
+ obj = RGeoServer::DataStore.new @catalog, :workspace => new_ws, :name => 'test_random_store'
98
+ obj.new?.should raise_error
99
+ end
100
+
101
+ it "should create a datastore under existing workspace and update it right after" do
102
+ ds = RGeoServer::DataStore.new @catalog, :workspace => @ws, :name => 'test', :connection_parameters => {"namespace"=>"http://test_workspace_for_stores", "url" => "file://tmp/geo.tif"}
103
+ ds.new?.should == true
104
+ ds.save
105
+ ds.new?.should == false
106
+ ds.delete
107
+ ds.new?.should == true
108
+
109
+ # Add new information
110
+ new_connection_parameters = {"namespace"=>"http://localhost/test_with_stores", "url" => 'file:data/taz_shapes'}
111
+ ds.connection_parameters = new_connection_parameters
112
+ ds.changed?.should == true
113
+ ds.save
114
+ ds.profile['connectionParameters'].should == new_connection_parameters
115
+ ds.delete
116
+ end
117
+ end
118
+ context "CoverageStores" do
119
+ pending "Finish CoverageStore spec"
120
+ end
121
+ end
122
+ end
@@ -0,0 +1,6 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
3
+ require 'rgeoserver'
4
+ require 'rspec'
5
+ require 'active_support/secure_random'
6
+
metadata ADDED
@@ -0,0 +1,210 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rgeoserver
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.5.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Renzo Sanchez-Silva
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-04-28 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rest-client
16
+ requirement: &2156162640 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *2156162640
25
+ - !ruby/object:Gem::Dependency
26
+ name: nokogiri
27
+ requirement: &2156162000 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *2156162000
36
+ - !ruby/object:Gem::Dependency
37
+ name: mime-types
38
+ requirement: &2156161400 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :runtime
45
+ prerelease: false
46
+ version_requirements: *2156161400
47
+ - !ruby/object:Gem::Dependency
48
+ name: activesupport
49
+ requirement: &2156160860 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :runtime
56
+ prerelease: false
57
+ version_requirements: *2156160860
58
+ - !ruby/object:Gem::Dependency
59
+ name: activemodel
60
+ requirement: &2156160220 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ type: :runtime
67
+ prerelease: false
68
+ version_requirements: *2156160220
69
+ - !ruby/object:Gem::Dependency
70
+ name: confstruct
71
+ requirement: &2156159100 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :runtime
78
+ prerelease: false
79
+ version_requirements: *2156159100
80
+ - !ruby/object:Gem::Dependency
81
+ name: rake
82
+ requirement: &2156157720 !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ! '>='
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
88
+ type: :development
89
+ prerelease: false
90
+ version_requirements: *2156157720
91
+ - !ruby/object:Gem::Dependency
92
+ name: shoulda
93
+ requirement: &2156157080 !ruby/object:Gem::Requirement
94
+ none: false
95
+ requirements:
96
+ - - ! '>='
97
+ - !ruby/object:Gem::Version
98
+ version: '0'
99
+ type: :development
100
+ prerelease: false
101
+ version_requirements: *2156157080
102
+ - !ruby/object:Gem::Dependency
103
+ name: bundler
104
+ requirement: &2156155880 !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: 1.0.14
110
+ type: :development
111
+ prerelease: false
112
+ version_requirements: *2156155880
113
+ - !ruby/object:Gem::Dependency
114
+ name: rspec
115
+ requirement: &2156155360 !ruby/object:Gem::Requirement
116
+ none: false
117
+ requirements:
118
+ - - ! '>='
119
+ - !ruby/object:Gem::Version
120
+ version: '0'
121
+ type: :development
122
+ prerelease: false
123
+ version_requirements: *2156155360
124
+ - !ruby/object:Gem::Dependency
125
+ name: yard
126
+ requirement: &2156154800 !ruby/object:Gem::Requirement
127
+ none: false
128
+ requirements:
129
+ - - ! '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: *2156154800
135
+ - !ruby/object:Gem::Dependency
136
+ name: jettywrapper
137
+ requirement: &2164549300 !ruby/object:Gem::Requirement
138
+ none: false
139
+ requirements:
140
+ - - ! '>='
141
+ - !ruby/object:Gem::Version
142
+ version: '0'
143
+ type: :development
144
+ prerelease: false
145
+ version_requirements: *2164549300
146
+ description: ! 'GeoServer REST API Ruby library : Requires GeoServer 2.1.3+'
147
+ email:
148
+ - renzo.sanchez.silva@gmail.com
149
+ executables: []
150
+ extensions: []
151
+ extra_rdoc_files: []
152
+ files:
153
+ - .gitignore
154
+ - Gemfile
155
+ - README.rdoc
156
+ - Rakefile
157
+ - VERSION
158
+ - config/config_defaults.yml
159
+ - lib/rgeoserver.rb
160
+ - lib/rgeoserver/catalog.rb
161
+ - lib/rgeoserver/config.rb
162
+ - lib/rgeoserver/coverage.rb
163
+ - lib/rgeoserver/coverages.rb
164
+ - lib/rgeoserver/coveragestore.rb
165
+ - lib/rgeoserver/datastore.rb
166
+ - lib/rgeoserver/datastores.rb
167
+ - lib/rgeoserver/featuretype.rb
168
+ - lib/rgeoserver/geoserver_url_helpers.rb
169
+ - lib/rgeoserver/resource.rb
170
+ - lib/rgeoserver/rest_api_client.rb
171
+ - lib/rgeoserver/version.rb
172
+ - lib/rgeoserver/wmsstore.rb
173
+ - lib/rgeoserver/workspace.rb
174
+ - rgeoserver.gemspec
175
+ - spec/lib/integration_test_spec.rb
176
+ - spec/spec_helper.rb
177
+ homepage: http://github.com/rnz0/rgeoserver
178
+ licenses: []
179
+ post_install_message:
180
+ rdoc_options: []
181
+ require_paths:
182
+ - lib
183
+ required_ruby_version: !ruby/object:Gem::Requirement
184
+ none: false
185
+ requirements:
186
+ - - ! '>='
187
+ - !ruby/object:Gem::Version
188
+ version: '0'
189
+ segments:
190
+ - 0
191
+ hash: -225529645352907802
192
+ required_rubygems_version: !ruby/object:Gem::Requirement
193
+ none: false
194
+ requirements:
195
+ - - ! '>='
196
+ - !ruby/object:Gem::Version
197
+ version: '0'
198
+ segments:
199
+ - 0
200
+ hash: -225529645352907802
201
+ requirements: []
202
+ rubyforge_project:
203
+ rubygems_version: 1.8.10
204
+ signing_key:
205
+ specification_version: 3
206
+ summary: GeoServer REST API ruby library
207
+ test_files:
208
+ - spec/lib/integration_test_spec.rb
209
+ - spec/spec_helper.rb
210
+ has_rdoc: