class Geoloader::Services::Geoserver
Attributes
resource[R]
Public Class Methods
new()
click to toggle source
Initialize the API wrapper.
# File lib/geoloader/services/geoserver.rb, line 16 def initialize @resource = RestClient::Resource.new("#{Geoloader.config.geoserver.url}/rest", { :user => Geoloader.config.geoserver.username, :password => Geoloader.config.geoserver.password }) end
Public Instance Methods
create_coveragestore(geotiff)
click to toggle source
Create a new coveragestore and layer for a GeoTIFF.
@param [Geoloader::Geotiff] geotiff
# File lib/geoloader/services/geoserver.rb, line 66 def create_coveragestore(geotiff) url = "workspaces/#{geotiff.workspace}/coveragestores/#{geotiff.file_base}/file.geotiff" @resource[url].put(File.read(geotiff.file_name)) end
create_datastore(shapefile)
click to toggle source
Create a new datastore and layer for a Shapefile.
@param [Geoloader::Shapefile] shapefile
# File lib/geoloader/services/geoserver.rb, line 86 def create_datastore(shapefile) url = "workspaces/#{shapefile.workspace}/datastores/#{shapefile.file_base}/file.shp" @resource[url].put(shapefile.get_zipfile, :content_type => :zip) end
create_workspace(workspace)
click to toggle source
Create a new workspace.
@param [String] workspace
# File lib/geoloader/services/geoserver.rb, line 38 def create_workspace(workspace) payload = Builder::XmlMarkup.new.workspace { |w| w.name workspace } @resource["workspaces"].post(payload, :content_type => :xml) end
delete_coveragestore(geotiff)
click to toggle source
Delete the coveragestore that corresponds to a GeoTIFF.
@param [Geoloader::Geotiff] geotiff
# File lib/geoloader/services/geoserver.rb, line 76 def delete_coveragestore(geotiff) url = "workspaces/#{geotiff.workspace}/coveragestores/#{geotiff.file_base}" @resource[url].delete({:params => {:recurse => true}}) end
delete_datastore(shapefile)
click to toggle source
Delete the datastore that corresponds to a shapefile.
@param [Geoloader::Shapefile] shapefile
# File lib/geoloader/services/geoserver.rb, line 96 def delete_datastore(shapefile) url = "workspaces/#{shapefile.workspace}/datastores/#{shapefile.file_base}" @resource[url].delete({:params => {:recurse => true}}) end
delete_workspace(workspace)
click to toggle source
Delete a workspace.
@param [String] workspace
# File lib/geoloader/services/geoserver.rb, line 57 def delete_workspace(workspace) @resource["workspaces/#{workspace}"].delete({:params => {:recurse => true}}) end
ensure_workspace(workspace)
click to toggle source
Check to see if a workspace exists, and if not, create it.
@param [String] workspace
# File lib/geoloader/services/geoserver.rb, line 48 def ensure_workspace(workspace) create_workspace(workspace) unless workspace_exists?(workspace) end
workspace_exists?(workspace)
click to toggle source
Does a workspace with a given name exist?
@param [String] workspace
# File lib/geoloader/services/geoserver.rb, line 28 def workspace_exists?(workspace) workspaces = @resource["workspaces"].get !!Nokogiri::XML(workspaces).at_xpath("//workspace[name[text()='#{workspace}']]") end