require ‘thor’ require ‘thor/hollaback’ module MyProgram class Error < StandardError end class CLI class_option :debug, desc: 'Sets up debug mode', aliases: ['-d'], type: :boolean class_around :safe_execute desc ‘test [arg]’, ‘The test command’ def test(arg) raise Error, ‘Oh no!’ if arg == ‘fail’ end no_commands do def safe_execute yield rescue Error => error raise error if options[:debug] STDERR.puts error.message exit 1 end end end end