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