Sha256: 1133e8351dff8a6967b75b126a1a7dbe8ee7d428dfd84962d3cb086c1d9684a2

Contents?: true

Size: 873 Bytes

Versions: 32

Compression:

Stored size: 873 Bytes

Contents

require "open3"
require_relative "./utils.rb"
require "pathname"
require "shellwords"

module Metanorma
  module Output
    class Pdf < Base

      def convert(url_path, output_path)
        file_url = Utils::file_path(url_path)
        pdfjs = File.join(File.dirname(__FILE__), "../../../bin/metanorma-pdf.js")

        node_path = ENV["NODE_PATH"] || `npm root --quiet -g`.strip
        node_cmd = ["node", pdfjs, file_url, output_path].map { |arg| shellescape(arg) }.join(" ")

        _, error_str, status = Open3.capture3({ "NODE_PATH" => node_path }, node_cmd)
        raise error_str unless status.success?
      end

      def shellescape(str)
        if Gem.win_platform?()
          # https://bugs.ruby-lang.org/issues/16741
          str.match(" ") ? "\"#{str}\"" : str
        else
          Shellwords.shellescape(str)
        end
      end
    end
  end
end

Version data entries

32 entries across 32 versions & 2 rubygems

Version Path
metanorma-1.3.7 lib/metanorma/output/pdf.rb
metanorma-1.3.6 lib/metanorma/output/pdf.rb
metanorma-1.3.5 lib/metanorma/output/pdf.rb
metanorma-1.3.4 lib/metanorma/output/pdf.rb
metanorma-1.3.3 lib/metanorma/output/pdf.rb
metanorma-1.3.2 lib/metanorma/output/pdf.rb
metanorma-1.3.1 lib/metanorma/output/pdf.rb
metanorma-1.3.0 lib/metanorma/output/pdf.rb
metanorma-1.2.8 lib/metanorma/output/pdf.rb
metanorma-1.2.7 lib/metanorma/output/pdf.rb
metanorma-1.2.6 lib/metanorma/output/pdf.rb
metanorma-1.2.6pre lib/metanorma/output/pdf.rb
metanorma-1.2.5 lib/metanorma/output/pdf.rb
metanorma-1.2.4 lib/metanorma/output/pdf.rb
metanorma-1.2.3 lib/metanorma/output/pdf.rb
metanorma-1.2.2 lib/metanorma/output/pdf.rb
metanorma-1.2.1 lib/metanorma/output/pdf.rb
metanorma-1.2.0 lib/metanorma/output/pdf.rb
metanorma-1.1.7 lib/metanorma/output/pdf.rb
metanorma-1.1.6 lib/metanorma/output/pdf.rb