Module: Geoserver::Publish

Defined in:
lib/geoserver/publish.rb,
lib/geoserver/publish/layer.rb,
lib/geoserver/publish/style.rb,
lib/geoserver/publish/config.rb,
lib/geoserver/publish/create.rb,
lib/geoserver/publish/version.rb,
lib/geoserver/publish/coverage.rb,
lib/geoserver/publish/workspace.rb,
lib/geoserver/publish/connection.rb,
lib/geoserver/publish/data_store.rb,
lib/geoserver/publish/geowebcache.rb,
lib/geoserver/publish/feature_type.rb,
lib/geoserver/publish/coverage_store.rb

Defined Under Namespace

Classes: Connection, Coverage, CoverageStore, DataStore, Error, FeatureType, Geowebcache, Layer, Style, Workspace

Constant Summary collapse

VERSION =
"1.0.0"

Class Method Summary collapse

Class Method Details

.configObject



4
5
6
# File 'lib/geoserver/publish/config.rb', line 4

def config
  @config ||= config_yaml
end

.config_yamlObject

:nocov:



11
12
13
14
15
16
17
18
19
# File 'lib/geoserver/publish/config.rb', line 11

def config_yaml
  file_path = File.join(Geoserver::Publish.root, "config", "config.yml")
  yaml_text = ERB.new(File.read(file_path)).result
  if Gem::Version.new(Psych::VERSION) >= Gem::Version.new("3.1.0.pre1")
    YAML.safe_load(yaml_text, aliases: true)
  else
    YAML.safe_load(yaml_text, [], [], true)
  end
end

.create_coverage(workspace_name:, coverage_store_name:, coverage_name:, title:, connection: nil) ⇒ Object



10
11
12
13
# File 'lib/geoserver/publish/create.rb', line 10

def create_coverage(workspace_name:, coverage_store_name:, coverage_name:, title:, connection: nil)
  return if Coverage.new(connection).find(workspace_name: workspace_name, coverage_store_name: coverage_store_name, coverage_name: coverage_name)
  Coverage.new(connection).create(workspace_name: workspace_name, coverage_store_name: coverage_store_name, coverage_name: coverage_name, title: title)
end

.create_coverage_store(workspace_name:, coverage_store_name:, url:, connection: nil) ⇒ Object



5
6
7
8
# File 'lib/geoserver/publish/create.rb', line 5

def create_coverage_store(workspace_name:, coverage_store_name:, url:, connection: nil)
  return if CoverageStore.new(connection).find(workspace_name: workspace_name, coverage_store_name: coverage_store_name)
  CoverageStore.new(connection).create(workspace_name: workspace_name, coverage_store_name: coverage_store_name, url: url)
end

.create_data_store(workspace_name:, data_store_name:, url:, connection: nil) ⇒ Object



15
16
17
18
# File 'lib/geoserver/publish/create.rb', line 15

def create_data_store(workspace_name:, data_store_name:, url:, connection: nil)
  return if DataStore.new(connection).find(workspace_name: workspace_name, data_store_name: data_store_name)
  DataStore.new(connection).create(workspace_name: workspace_name, data_store_name: data_store_name, url: url)
end

.create_feature_type(workspace_name:, data_store_name:, feature_type_name:, title:, connection: nil) ⇒ Object



20
21
22
23
# File 'lib/geoserver/publish/create.rb', line 20

def create_feature_type(workspace_name:, data_store_name:, feature_type_name:, title:, connection: nil)
  return if FeatureType.new(connection).find(workspace_name: workspace_name, data_store_name: data_store_name, feature_type_name: feature_type_name)
  FeatureType.new(connection).create(workspace_name: workspace_name, data_store_name: data_store_name, feature_type_name: feature_type_name, title: title)
end

.create_workspace(workspace_name:, connection: nil) ⇒ Object



25
26
27
28
# File 'lib/geoserver/publish/create.rb', line 25

def create_workspace(workspace_name:, connection: nil)
  return if Workspace.new(connection).find(workspace_name: workspace_name)
  Workspace.new(connection).create(workspace_name: workspace_name)
end

.delete_geotiff(workspace_name:, id:, connection: nil) ⇒ Object



22
23
24
# File 'lib/geoserver/publish.rb', line 22

def self.delete_geotiff(workspace_name:, id:, connection: nil)
  CoverageStore.new(connection).delete(workspace_name: workspace_name, coverage_store_name: id)
end

.delete_shapefile(workspace_name:, id:, connection: nil) ⇒ Object



26
27
28
# File 'lib/geoserver/publish.rb', line 26

def self.delete_shapefile(workspace_name:, id:, connection: nil)
  DataStore.new(connection).delete(workspace_name: workspace_name, data_store_name: id)
end

.geotiff(workspace_name:, file_path:, id:, title: nil, connection: nil) ⇒ Object



30
31
32
33
34
# File 'lib/geoserver/publish.rb', line 30

def self.geotiff(workspace_name:, file_path:, id:, title: nil, connection: nil)
  create_workspace(workspace_name: workspace_name, connection: connection)
  create_coverage_store(workspace_name: workspace_name, coverage_store_name: id, url: file_path, connection: connection)
  create_coverage(workspace_name: workspace_name, coverage_store_name: id, coverage_name: id, title: title, connection: connection)
end

.rootObject



42
43
44
# File 'lib/geoserver/publish.rb', line 42

def self.root
  Pathname.new(File.expand_path("../../../", __FILE__))
end

.shapefile(workspace_name:, file_path:, id:, title: nil, connection: nil) ⇒ Object



36
37
38
39
40
# File 'lib/geoserver/publish.rb', line 36

def self.shapefile(workspace_name:, file_path:, id:, title: nil, connection: nil)
  create_workspace(workspace_name: workspace_name, connection: connection)
  create_data_store(workspace_name: workspace_name, data_store_name: id, url: file_path, connection: connection)
  create_feature_type(workspace_name: workspace_name, data_store_name: id, feature_type_name: id, title: title, connection: connection)
end