lib/metanorma/standoc/latexml_requirement.rb in metanorma-standoc-1.3.2 vs lib/metanorma/standoc/latexml_requirement.rb in metanorma-standoc-1.3.3

- old
+ new

@@ -1,51 +1,60 @@ require_relative "./requirement" module Metanorma module Standoc class LatexmlRequirement < Requirement + @recommended_version = '0.8.4' + @minimal_version = '0.8.0' + def initialize - @recommended_version = '0.8.4' - @minimal_version = '0.8.0' version_output, = Open3.capture2e("latexml --VERSION") - @actual_version = version_output&.match(%r{\d+(.\d+)*}) - rescue - warn "LaTeXML not found in PATH, please ensure that LaTeXML is installed." - end + version = version_output&.match(%r{\d+(.\d+)*}) - def satisfied - version = @actual_version - if version.to_s.empty? - abort "LaTeXML not found in PATH, please ensure that LaTeXML is installed." - end + @error_message = "LaTeXML not installed (or don't works properly)."\ + " You must upgrade/install LaTeXML to #{@recommended_version} version" - if Gem::Version.new(version) < Gem::Version.new(@minimal_version) - abort "Minimal supported LaTeXML version is #{@minimal_version} "\ - "found #{version}, recommended version is #{@recommended_version}" - end - - if Gem::Version.new(version) < Gem::Version.new(@recommended_version) + elsif Gem::Version.new(version) < Gem::Version.new(@minimal_version) + @error_message = "Minimal supported LaTeXML version is #{@minimal_version} "\ + "found #{version}, recommended version is #{@recommended_version}" + + elsif Gem::Version.new(version) < Gem::Version.new(@recommended_version) version = "unknown" if version.to_s.empty? - header_msg = "WARNING latexmlmath version #{version} below #{@recommended_version}!" + header_msg = "latexmlmath version #{version} below #{@recommended_version}!" suggestion = if Gem.win_platform? "cmd encoding is set to UTF-8 with `chcp 65001`" else "terminal encoding is set to UTF-8 with `export LANG=en_US.UTF-8`" end - warn "#{header_msg} Please sure that #{suggestion} command" + @error_message = "WARNING #{header_msg} Please sure that #{suggestion} command" @cmd = "latexmlmath --preload=amsmath -- -" else @cmd = "latexmlmath --preload=amsmath --inputencoding=UTF-8 -- -" end + rescue + @error_message = "LaTeXML not installed (or don't works properly)."\ + " You must upgrade/install LaTeXML to #{@recommended_version} version" end - def cmd - if @cmd.nil? - satisfied + def satisfied(abort = false) + unless @error_message.nil? + if abort + abort @error_message + else + warn @error_message + end end + + @error_message.nil? + end + + def cmd + abort @error_message unless @error_message.nil? + + @cmd end end end end \ No newline at end of file