class Lutaml::Cli::InteractiveShell::ExportHandler
def cmd_export(args)
def cmd_export(args) return warn_no_results if last_results.nil? || last_results.empty? return warn_export_usage unless valid_export_args?(args) dispatch_export(args[1].downcase, args[2]) end
def dispatch_export(format, file_path)
def dispatch_export(format, file_path) exporter = EXPORT_FORMATS[format] if exporter public_send(exporter, file_path) else puts OutputFormatter.error("Unsupported format: #{format}") end end
def export_csv(file_path)
def export_csv(file_path) require "csv" CSV.open(file_path, "w") do |csv| csv << ["Qualified Name"] last_results.each do |qname| csv << [qname] end end puts OutputFormatter.success("Exported #{last_results.size} " \ "results to #{file_path}") end
def export_json(file_path)
def export_json(file_path) require "json" File.write(file_path, JSON.pretty_generate(last_results)) puts OutputFormatter.success("Exported #{last_results.size} " \ "results to #{file_path}") end
def export_yaml(file_path)
def export_yaml(file_path) require "yaml" File.write(file_path, last_results.to_yaml) puts OutputFormatter.success("Exported #{last_results.size} " \ "results to #{file_path}") end
def valid_export_args?(args)
def valid_export_args?(args) args.size >= 3 && args[0] == "last" end
def warn_export_usage
def warn_export_usage puts OutputFormatter.warning("Usage: export last FORMAT FILE") end
def warn_no_results
def warn_no_results puts OutputFormatter.warning("No results to export") end