Class: Metanorma::Release::Platform::Local::Publisher

Inherits:
Object
  • Object
show all
Includes:
Metanorma::Release::Publisher
Defined in:
lib/metanorma/release/platform/local/publisher.rb

Instance Method Summary collapse

Constructor Details

#initialize(output_dir:) ⇒ Publisher

Returns a new instance of Publisher.



13
14
15
# File 'lib/metanorma/release/platform/local/publisher.rb', line 13

def initialize(output_dir:)
  @output_dir = output_dir
end

Instance Method Details

#publish(tag, artifact, metadata, channels:, force_replace: false) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/metanorma/release/platform/local/publisher.rb', line 17

def publish(tag, artifact, , channels:, force_replace: false)
  FileUtils.mkdir_p(@output_dir)

  zip_dest = File.join(@output_dir, artifact.asset_name)
  meta_dest = File.join(@output_dir, meta_file_name(artifact.asset_name))

  if force_replace
    File.delete(zip_dest) if File.exist?(zip_dest)
    File.delete(meta_dest) if File.exist?(meta_dest)
  end

  FileUtils.cp(artifact.zip_path, zip_dest)
  File.write(meta_dest, .to_json)

  PublishResult.new(tag: tag.to_s, url: "file://#{File.expand_path(zip_dest)}", created?: true)
end