Class: Xsdvi::Comparison::JavaManager
- Inherits:
-
Object
- Object
- Xsdvi::Comparison::JavaManager
- Defined in:
- lib/xsdvi/comparison/java_manager.rb
Overview
Manages downloading, caching, and executing Java XsdVi
Constant Summary collapse
- JAR_URL =
"https://github.com/metanorma/xsdvi/releases/download/v1.3/xsdvi-1.3.jar"- CACHE_DIR =
File.("~/.xsdvi")
- JAR_FILENAME =
"xsdvi-1.3.jar"- JAR_PATH =
File.join(CACHE_DIR, JAR_FILENAME)
- EXPECTED_SIZE =
~2.5MB minimum
2_500_000
Instance Method Summary collapse
-
#ensure_jar_available ⇒ Boolean
Ensure JAR is available, download if needed.
-
#generate(xsd_file, output_dir, options = {}) ⇒ Boolean
Generate SVG using Java XsdVi.
-
#initialize ⇒ JavaManager
constructor
A new instance of JavaManager.
Constructor Details
#initialize ⇒ JavaManager
Returns a new instance of JavaManager.
16 17 18 |
# File 'lib/xsdvi/comparison/java_manager.rb', line 16 def initialize @jar_path = JAR_PATH end |
Instance Method Details
#ensure_jar_available ⇒ Boolean
Ensure JAR is available, download if needed
22 23 24 25 26 27 28 29 |
# File 'lib/xsdvi/comparison/java_manager.rb', line 22 def ensure_jar_available return true if jar_valid? puts "Downloading Java XsdVi v1.3..." download_jar verify_jar true end |
#generate(xsd_file, output_dir, options = {}) ⇒ Boolean
Generate SVG using Java XsdVi
38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/xsdvi/comparison/java_manager.rb', line 38 def generate(xsd_file, output_dir, = {}) ensure_java_available ensure_jar_available cmd = build_java_command(xsd_file, output_dir, ) puts "Executing Java XsdVi..." success = system(cmd) raise "Java XsdVi execution failed" unless success true end |