module MnConvert
Constants
- MNCONVERT_JAR_PATH
- MNCONVERT_JAR_VERSION
- VERSION
Public Class Methods
convert(input_file, output_file, input_format, opts = {})
click to toggle source
# File lib/mnconvert.rb, line 34 def self.convert(input_file, output_file, input_format, opts = {}) validate(opts, input_format) cmd = ["java", *jvm_options, "-jar", MNCONVERT_JAR_PATH, input_file, "--input-format", input_format, "--output", output_file, *optional_opts(opts)].join(" ") puts cmd if opts[:debug] output_str, error_str, status = Open3.capture3(cmd) p output_str if opts[:debug] unless status.success? raise error_str end end
help()
click to toggle source
# File lib/mnconvert.rb, line 22 def self.help cmd = ["java", *jvm_options, "-jar", MNCONVERT_JAR_PATH].join(" ") message, = Open3.capture3(cmd) message end
jvm_options()
click to toggle source
# File lib/mnconvert.rb, line 12 def self.jvm_options options = ["-Xss5m", "-Xmx1024m"] if RbConfig::CONFIG["host_os"].match?(/darwin|mac os/) options << "-Dapple.awt.UIElement=true" end options end
version()
click to toggle source
# File lib/mnconvert.rb, line 28 def self.version cmd = ["java", *jvm_options, "-jar", MNCONVERT_JAR_PATH, "-v"].join(" ") message, = Open3.capture3(cmd) message.strip end
Private Class Methods
optional_opts(opts)
click to toggle source
# File lib/mnconvert.rb, line 86 def optional_opts(opts) result = { sts_type: "--type", imagesdir: "--imagesdir", check_type: "--check-type", output_format: "--output-format", xsl_file: "--xsl-file", }.reject { |k, _| opts[k].nil? }.map { |k, v| "#{v} #{opts[k]}" } result << "--debug" if opts[:debug] result << "--split-bibdata" if opts[:split_bibdata] result end
validate(opts, input_format)
click to toggle source
# File lib/mnconvert.rb, line 53 def validate(opts, input_format) output_format = opts[:output_format] case input_format when InputFormat::MN validate_mn(opts, output_format) when InputFormat::STS validate_sts(opts, output_format) else raise StandardError.new("Invalid input format: #{input_format}") end end
validate_mn(opts, output_format)
click to toggle source
# File lib/mnconvert.rb, line 66 def validate_mn(opts, output_format) unless output_format.nil? || %w(iso niso).include?(output_format.to_s) raise StandardError.new("Invalid output format: #{output_format}") end if opts[:split_bibdata] raise StandardError.new("split_bibdata valid only for sts input") end if opts[:sts_type] raise StandardError.new("sts_type valid only for sts input") end end
validate_sts(_opts, output_format)
click to toggle source
# File lib/mnconvert.rb, line 80 def validate_sts(_opts, output_format) unless output_format.nil? || %w(xml adoc).include?(output_format.to_s) raise StandardError.new("Invalid output format: #{output_format}") end end