metanorma/metanorma-cli

View on GitHub
lib/metanorma/cli/ui.rb

Summary

Maintainability
A
0 mins
Test Coverage
require "thor"

module Metanorma
  module Cli
    class UI < Thor
      def self.ask(message, options = {})
        new.ask(message, options)
      end

      def self.say(message)
        new.say(message)
      end

      def self.info(message)
        new.say(["[info]", message].join(": "))
      end

      def self.debug(message, enabled: false)
        if enabled
          new.say(["[debug]", message].join(": "))
        end
      end

      def self.error(message)
        new.error(message)
      end

      def self.table(header, data)
        new.print_table(data.unshift(header))
      end

      def self.run(command)
        require "open3"
        Open3.capture3(command)
      end
    end
  end
end