Module: Methadone::ExitNow
- Included in:
- Main
- Defined in:
- lib/methadone/exit_now.rb
Overview
Provides #exit_now! and #help_now!. You might mix this into your business logic classes if they will need to exit the program with a human-readable error message.
Class Method Summary collapse
Instance Method Summary collapse
-
#exit_now!(exit_code, message = nil) ⇒ Object
Call this to exit the program immediately with the given error code and message.
-
#help_now!(message) ⇒ Object
Exit the program as if the user made an error invoking your app, providing them the message as well as printing the help.
Class Method Details
.included(k) ⇒ Object
5 6 7 |
# File 'lib/methadone/exit_now.rb', line 5 def self.included(k) k.extend(self) end |
Instance Method Details
#exit_now!(exit_code, message = nil) ⇒ Object
Call this to exit the program immediately with the given error code and message.
exit_code
-
exit status you’d like to exit with
message
-
message to display to the user explaining the problem
If exit_code
is a String and message
is omitted, exit_code
will be used as the message and the actual exit code will be 1.
Examples
exit_now!(4,"Oh noes!")
# => exit app with status 4 and show the user "Oh noes!" on stderr
exit_now!("Oh noes!")
# => exit app with status 1 and show the user "Oh noes!" on stderr
exit_now!(4)
# => exit app with status 4 and dont' give the user a message (how rude of you)
25 26 27 28 29 30 31 |
# File 'lib/methadone/exit_now.rb', line 25 def exit_now!(exit_code,=nil) if exit_code.kind_of?(String) && .nil? raise Methadone::Error.new(1,exit_code) else raise Methadone::Error.new(exit_code,) end end |
#help_now!(message) ⇒ Object
Exit the program as if the user made an error invoking your app, providing them the message as well as printing the help. This is useful if you have complex UI validation that can’t be done by OptionParser.
36 37 38 |
# File 'lib/methadone/exit_now.rb', line 36 def help_now!() raise OptionParser::ParseError.new() end |