app/services/geo_concerns/delivery/geoserver.rb in geo_concerns-0.0.9 vs app/services/geo_concerns/delivery/geoserver.rb in geo_concerns-0.0.10
- old
+ new
@@ -18,18 +18,16 @@
def catalog
@catalog ||= RGeoServer.catalog(config)
end
- def publish(type = :vector)
+ def publish
case type
when :vector
publish_vector
when :raster
publish_raster
- else
- raise ArgumentError, "Unknown file type #{type}"
end
end
private
@@ -49,10 +47,16 @@
%w(url user password).map(&:to_sym).each do |k|
raise ArgumentError, "Missing #{k} in configuration" unless config[k].present?
end
end
+ def type
+ return :vector if file_path =~ /\.zip$/
+ return :raster if file_path =~ /\.tif$/
+ raise ArgumentError, "Not a ZIPed Shapefile or GeoTIFF: #{file_path}"
+ end
+
def workspace
workspace = RGeoServer::Workspace.new catalog, name: workspace_name
workspace.save if workspace.new?
workspace
end
@@ -60,16 +64,18 @@
def datastore
RGeoServer::DataStore.new catalog, workspace: workspace, name: file_set.id
end
def publish_vector
- raise ArgumentError, "Not ZIPed Shapefile: #{file_path}" unless file_path =~ /\.zip$/
datastore.upload_file file_path, publish: true
end
+ def coveragestore
+ RGeoServer::CoverageStore.new catalog, workspace: workspace, name: file_set.id
+ end
+
def publish_raster
- raise ArgumentError, "Not GeoTIFF: #{file_path}" unless file_path =~ /\.tif$/
- raise NotImplementedError
+ coveragestore.upload file_path
end
end
end
end