module Main::Program::InstanceMethods
Public Class Methods
new()
click to toggle source
# File lib/main/program/instance_methods.rb, line 48 def initialize() :hook end
Public Instance Methods
abort(message = 'exit')
click to toggle source
# File lib/main/program/instance_methods.rb, line 213 def abort(message = 'exit') raise SystemExit.new(message) end
after_initialize()
click to toggle source
# File lib/main/program/instance_methods.rb, line 49 def after_initialize() :hook end
after_parse_parameters()
click to toggle source
# File lib/main/program/instance_methods.rb, line 181 def after_parse_parameters() :hook end
after_run()
click to toggle source
# File lib/main/program/instance_methods.rb, line 189 def after_run() :hook end
before_initialize()
click to toggle source
# File lib/main/program/instance_methods.rb, line 42 def before_initialize() :hook end
before_parse_parameters()
click to toggle source
# File lib/main/program/instance_methods.rb, line 169 def before_parse_parameters() :hook end
before_run()
click to toggle source
# File lib/main/program/instance_methods.rb, line 185 def before_run() :hook end
config(&block)
click to toggle source
# File lib/main/program/instance_methods.rb, line 288 def config(&block) self.class.config(&block) end
db(&block)
click to toggle source
# File lib/main/program/instance_methods.rb, line 284 def db(&block) self.class.db(&block) end
fcall(object, method, *argv, &block)
click to toggle source
# File lib/main/program/instance_methods.rb, line 250 def fcall(object, method, *argv, &block) method = object.method(method) arity = method.arity if arity >= 0 argv = argv[0, arity] else arity = arity.abs - 1 argv = argv[0, arity] + argv[arity .. -1] end method.call(*argv, &block) end
finalize()
click to toggle source
# File lib/main/program/instance_methods.rb, line 60 def finalize @finalizers ||= [] while((f = @finalizers.pop)); f.call; end end
handle_exception(e)
click to toggle source
# File lib/main/program/instance_methods.rb, line 217 def handle_exception(e) if e.respond_to?(:error_handler_before) fcall(e, :error_handler_before, self) end if e.respond_to?(:error_handler_instead) fcall(e, :error_handler_instead, self) else if e.respond_to?(:status) exit_status(( e.status )) end if Softspoken === e or SystemExit === e quiet = ((SystemExit === e and e.message.respond_to?('abort')) or # see main/stdext.rb (SystemExit === e and e.message == 'exit')) stderr.puts e.message unless quiet else fatal{ e } end end if e.respond_to?(:error_handler_after) fcall(e, :error_handler_after, self) end exit_status(( exit_failure )) if exit_status == exit_success exit_status(( Util.integer(exit_status) rescue(exit_status ? 0 : 1) )) end
handle_exit(status)
click to toggle source
# File lib/main/program/instance_methods.rb, line 246 def handle_exit(status) exit(( Integer(status) rescue 1 )) end
help!(status = 0)
click to toggle source
# File lib/main/program/instance_methods.rb, line 197 def help!(status = 0) print usage.to_s exit(status) end
help?()
click to toggle source
# File lib/main/program/instance_methods.rb, line 202 def help? (params['help'] and params['help'].given?) or argv.first == 'help' end
input()
click to toggle source
# File lib/main/program/instance_methods.rb, line 292 def input @input ||= params[:input].value if params[:input] end
instance_eval_block(*argv, &block)
click to toggle source
# File lib/main/program/instance_methods.rb, line 270 def instance_eval_block(*argv, &block) singleton_class = class << self self end singleton_class.module_eval{ define_method('__instance_eval_block', &block) } fcall(self, '__instance_eval_block', *argv, &block) end
logger=(log)
click to toggle source
# File lib/main/program/instance_methods.rb, line 76 def logger= log unless(defined?(@logger) and @logger == log) case log when ::Logger, Logger @logger = log else if log.is_a?(Array) @logger = Logger.new(*log) else @logger = Logger.new(log) @logger.level = logger_level end end end @logger end
main_initialize()
click to toggle source
# File lib/main/program/instance_methods.rb, line 43 def main_initialize() setup_finalizers setup_io_redirection setup_logging end
modes()
click to toggle source
# File lib/main/program/instance_methods.rb, line 193 def modes self.class.modes end
output()
click to toggle source
# File lib/main/program/instance_methods.rb, line 296 def output @output ||= params[:output].value if params[:output] end
parse_parameters()
click to toggle source
# File lib/main/program/instance_methods.rb, line 170 def parse_parameters pre_parse_parameters before_parse_parameters self.class.parameters.parse(self) @params = Parameter::Table.new self.class.parameters.each{|p| @params[p.name.to_s] = p} after_parse_parameters post_parse_parameters end
post_initialize()
click to toggle source
# File lib/main/program/instance_methods.rb, line 50 def post_initialize() :hook end
post_parse_parameters()
click to toggle source
# File lib/main/program/instance_methods.rb, line 182 def post_parse_parameters() :hook end
post_run()
click to toggle source
# File lib/main/program/instance_methods.rb, line 190 def post_run() :hook end
pre_initialize()
click to toggle source
# File lib/main/program/instance_methods.rb, line 41 def pre_initialize() :hook end
pre_parse_parameters()
click to toggle source
# File lib/main/program/instance_methods.rb, line 168 def pre_parse_parameters() :hook end
pre_run()
click to toggle source
# File lib/main/program/instance_methods.rb, line 184 def pre_run() :hook end
run()
click to toggle source
# File lib/main/program/instance_methods.rb, line 186 def run raise NotImplementedError, 'run not defined' end
setup_finalizers()
click to toggle source
# File lib/main/program/instance_methods.rb, line 52 def setup_finalizers @finalizers ||= [] finalizers = @finalizers ObjectSpace.define_finalizer(self) do while((f = finalizers.pop)); f.call; end end end
setup_io_redirection()
click to toggle source
# File lib/main/program/instance_methods.rb, line 65 def setup_io_redirection self.stdin = opts['stdin'] || opts[:stdin] || stdin self.stdout = opts['stdout'] || opts[:stdout] || stdout self.stderr = opts['stderr'] || opts[:stderr] || stderr end
setup_io_restoration()
click to toggle source
# File lib/main/program/instance_methods.rb, line 93 def setup_io_restoration @finalizers ||= [] [STDIN, STDOUT, STDERR].each do |io| dup = io.dup @finalizers.push( lambda do io.reopen(dup) end ) end end
setup_logging()
click to toggle source
# File lib/main/program/instance_methods.rb, line 71 def setup_logging log = self.class.logger || stderr self.logger = log end
shell!()
click to toggle source
# File lib/main/program/instance_methods.rb, line 206 def shell! Pry.hooks.clear_all prompt = "#{ name } > " Pry.config.prompt = proc{|*a| prompt } binding.pry end
state_path(&block)
click to toggle source
# File lib/main/program/instance_methods.rb, line 279 def state_path(&block) self.class.state_path(&block) end
Also aliased as: dotdir
stderr=(io)
click to toggle source
# File lib/main/program/instance_methods.rb, line 148 def stderr= io unless(defined?(@stderr) and (@stderr == io)) @stderr = if io.respond_to?('write') io else fd = open(io.to_s, 'w+') @finalizers.push(lambda{ fd.close }) fd end begin STDERR.reopen(@stderr) rescue $stderr = @stderr ::Object.send(:remove_const, 'STDERR') ::Object.send(:const_set, 'STDERR', @stderr) end end end
stdin=(io)
click to toggle source
# File lib/main/program/instance_methods.rb, line 106 def stdin= io unless(defined?(@stdin) and (@stdin == io)) @stdin = if io.respond_to?('read') io else fd = open(io.to_s, 'r+') @finalizers.push(lambda{ fd.close }) fd end begin STDIN.reopen(@stdin) rescue $stdin = @stdin ::Object.send(:remove_const, 'STDIN') ::Object.send(:const_set, 'STDIN', @stdin) end end end
stdout=(io)
click to toggle source
# File lib/main/program/instance_methods.rb, line 127 def stdout= io unless(defined?(@stdout) and (@stdout == io)) @stdout = if io.respond_to?('write') io else fd = open(io.to_s, 'w+') @finalizers.push(lambda{ fd.close }) fd end begin STDOUT.reopen(@stdout) rescue $stdout = @stdout ::Object.send(:remove_const, 'STDOUT') ::Object.send(:const_set, 'STDOUT', @stdout) end end end