# encoding: utf-8

require_relative 'sh'

module TTY
  class Cmd

    def execute(*)
      raise(
        NotImplementedError,
        "#{self.class}##{__method__} must be implemented"
      )
    end
  end # Cmd
end # TTY

# encoding: utf-8

require 'forwardable'
require 'tty-command'

module TTY
  class Cmd
    extend Forwardable

    def_delegators :command, :run

    def execute(*)
      raise(
        NotImplementedError,
        "#{self.class}##{__method__} must be implemented"
      )
    end

    def command
      @command ||= TTY::Command.new(printer: :null)
    end
  end # Cmd
end # TTY

Change to add ability to run external commands.
Change to add ability to run external commands.
