Class: Metanorma::Release::Site

Inherits:
Object
  • Object
show all
Defined in:
lib/metanorma/release/site.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(index:, output_dir:, data_dir: nil) ⇒ Site

Returns a new instance of Site.



12
13
14
15
16
# File 'lib/metanorma/release/site.rb', line 12

def initialize(index:, output_dir:, data_dir: nil)
  @index = index
  @output_dir = output_dir
  @data_dir = data_dir
end

Instance Attribute Details

#indexObject (readonly)

Returns the value of attribute index.



10
11
12
# File 'lib/metanorma/release/site.rb', line 10

def index
  @index
end

#output_dirObject (readonly)

Returns the value of attribute output_dir.



10
11
12
# File 'lib/metanorma/release/site.rb', line 10

def output_dir
  @output_dir
end

Instance Method Details

#enrich!Object



23
24
25
26
27
28
29
# File 'lib/metanorma/release/site.rb', line 23

def enrich!
  return if index.empty?

  documents = enrich_documents
  write_relaton_index(documents)
  write_data_file(documents) if @data_dir
end

#package!(zip_path: nil) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/metanorma/release/site.rb', line 31

def package!(zip_path: nil)
  require "zip"

  path = zip_path || "#{output_dir}.zip"
  Zip::File.open(path, Zip::File::CREATE) do |zipfile|
    Dir.glob("#{output_dir}/**/*").each do |file|
      next if File.directory?(file)

      entry_name = file.sub("#{File.dirname(output_dir)}/", "")
      zipfile.add(entry_name, file)
    end
  end
  path
end

#write!Object



18
19
20
21
# File 'lib/metanorma/release/site.rb', line 18

def write!
  FileUtils.mkdir_p(output_dir)
  index.write(File.join(output_dir, "index.json"))
end