Class: Messagex::Messagex
- Inherits:
-
Object
- Object
- Messagex::Messagex
- Extended by:
- Forwardable
- Defined in:
- lib/messagex.rb
Overview
終了ステータス管理、ログ機能管理のクラス
Instance Attribute Summary collapse
-
#logger ⇒ Loggerx
readonly
Loggerxクラスのインスタンス.
Instance Method Summary collapse
-
#add_exitcode(str) ⇒ Integer
終了ステータスの値の自動割り当て.
-
#ec(name) ⇒ Integer
識別名で指定された終了ステータスを得る.
- #exc ⇒ Object
- #exc_change_directory ⇒ Object
- #exc_file_close ⇒ Object
- #exc_file_copy ⇒ Object
- #exc_file_gets ⇒ Object
- #exc_file_open ⇒ Object
- #exc_file_read ⇒ Object
- #exc_file_write ⇒ Object
- #exc_make_directory ⇒ Object
-
#initialize(initial_exitcode, initial_num, debug = :warn, logger = nil, logfname = nil) ⇒ Messagex
constructor
初期化.
-
#output_debug(msg) ⇒ void
ログレベルが DEBUG のメッセージを出力.
-
#output_error(msg) ⇒ void
ログレベルが ERROR のメッセージを出力.
-
#output_exception(exception) ⇒ void
例外処理.
-
#output_fatal(msg) ⇒ void
ログレベルが FATAL のメッセージを出力.
-
#output_info(msg) ⇒ void
ログレベルが INFO のメッセージを出力.
-
#output_warn(msg) ⇒ void
ログレベルが WARN のメッセージを出力.
-
#register_exc ⇒ void
I/O関連例外処理管理クラスのインスタンスの登録.
-
#register_exitcodes ⇒ void
Messagexクラスで利用する終了ステータスの登録.
-
#set_initial_exitcode(name, num) ⇒ void
終了ステータスの最初の登録.
Constructor Details
#initialize(initial_exitcode, initial_num, debug = :warn, logger = nil, logfname = nil) ⇒ Messagex
引数debugの値はLoggerクラスのログレベル設定とは指定方法が異なる
初期化
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/messagex.rb', line 47 def initialize(initial_exitcode, initial_num, debug=:warn, logger=nil, logfname=nil) @exit_code = {} set_initial_exitcode(initial_exitcode, initial_num) if logger @logger = logger else log_fname = (!logfname.nil? && !logfname.empty?) ? logfname : "log.txt" @logger = Loggerx.new(log_fname) # Logger::WARN , Logger::INFO case debug when :debug @logger.level = Logger::DEBUG # UNKNOWN > FATAL > ERROR > WARN > INFO > DEBUG when :verbose @logger.level = Logger::INFO else @logger.level = Logger::WARN end # @logger.datetime_format = '%Y-%m-%d %H:%M:%S' @logger.datetime_format = "" # logger.formatter = proc do |severity, datetime, progname, msg| # ">>>>>> #{msg}\n" # end @logger.formatter = proc do |_severity, _datetime, _progname, msg| "#{msg}\n" end end register_exitcodes end |
Instance Attribute Details
#logger ⇒ Loggerx (readonly)
Returns Loggerxクラスのインスタンス.
32 33 34 |
# File 'lib/messagex.rb', line 32 def logger @logger end |
Instance Method Details
#add_exitcode(str) ⇒ Integer
終了ステータスの値の自動割り当て
129 130 131 132 133 134 135 |
# File 'lib/messagex.rb', line 129 def add_exitcode(str) return if @exit_code[str] num = (@cur_exit_code + 1) @exit_code[str] = num @cur_exit_code = num end |
#ec(name) ⇒ Integer
識別名で指定された終了ステータスを得る
108 109 110 |
# File 'lib/messagex.rb', line 108 def ec(name) @exit_code[name] end |
#exc ⇒ Object
29 |
# File 'lib/messagex.rb', line 29 def_delegators :@exc_inst, :exc, :exc_change_directory, :exc_file_open, :exc_file_read, :exc_file_gets, :exc_file_close, :exc_file_write, :exc_file_copy, :exc_make_directory |
#exc_change_directory ⇒ Object
29 |
# File 'lib/messagex.rb', line 29 def_delegators :@exc_inst, :exc, :exc_change_directory, :exc_file_open, :exc_file_read, :exc_file_gets, :exc_file_close, :exc_file_write, :exc_file_copy, :exc_make_directory |
#exc_file_close ⇒ Object
29 |
# File 'lib/messagex.rb', line 29 def_delegators :@exc_inst, :exc, :exc_change_directory, :exc_file_open, :exc_file_read, :exc_file_gets, :exc_file_close, :exc_file_write, :exc_file_copy, :exc_make_directory |
#exc_file_copy ⇒ Object
29 |
# File 'lib/messagex.rb', line 29 def_delegators :@exc_inst, :exc, :exc_change_directory, :exc_file_open, :exc_file_read, :exc_file_gets, :exc_file_close, :exc_file_write, :exc_file_copy, :exc_make_directory |
#exc_file_gets ⇒ Object
29 |
# File 'lib/messagex.rb', line 29 def_delegators :@exc_inst, :exc, :exc_change_directory, :exc_file_open, :exc_file_read, :exc_file_gets, :exc_file_close, :exc_file_write, :exc_file_copy, :exc_make_directory |
#exc_file_open ⇒ Object
29 |
# File 'lib/messagex.rb', line 29 def_delegators :@exc_inst, :exc, :exc_change_directory, :exc_file_open, :exc_file_read, :exc_file_gets, :exc_file_close, :exc_file_write, :exc_file_copy, :exc_make_directory |
#exc_file_read ⇒ Object
29 |
# File 'lib/messagex.rb', line 29 def_delegators :@exc_inst, :exc, :exc_change_directory, :exc_file_open, :exc_file_read, :exc_file_gets, :exc_file_close, :exc_file_write, :exc_file_copy, :exc_make_directory |
#exc_file_write ⇒ Object
29 |
# File 'lib/messagex.rb', line 29 def_delegators :@exc_inst, :exc, :exc_change_directory, :exc_file_open, :exc_file_read, :exc_file_gets, :exc_file_close, :exc_file_write, :exc_file_copy, :exc_make_directory |
#exc_make_directory ⇒ Object
29 |
# File 'lib/messagex.rb', line 29 def_delegators :@exc_inst, :exc, :exc_change_directory, :exc_file_open, :exc_file_read, :exc_file_gets, :exc_file_close, :exc_file_write, :exc_file_copy, :exc_make_directory |
#output_debug(msg) ⇒ void
This method returns an undefined value.
ログレベルが DEBUG のメッセージを出力
168 169 170 171 172 173 174 |
# File 'lib/messagex.rb', line 168 def output_debug(msg) if @logger @logger.debug(msg) else STDOUT.puts(msg) end end |
#output_error(msg) ⇒ void
This method returns an undefined value.
ログレベルが ERROR のメッセージを出力
142 143 144 145 146 147 148 |
# File 'lib/messagex.rb', line 142 def output_error(msg) if @logger @logger.error(msg) else error(msg) end end |
#output_exception(exception) ⇒ void
This method returns an undefined value.
例外処理
207 208 209 210 211 |
# File 'lib/messagex.rb', line 207 def output_exception(exception) output_fatal(exception.class) output_fatal(exception.) output_fatal(exception.backtrace.join("\n")) end |
#output_fatal(msg) ⇒ void
This method returns an undefined value.
ログレベルが FATAL のメッセージを出力
155 156 157 158 159 160 161 |
# File 'lib/messagex.rb', line 155 def output_fatal(msg) if @logger @logger.fatal(msg) else STDOUT.puts(msg) end end |
#output_info(msg) ⇒ void
This method returns an undefined value.
ログレベルが INFO のメッセージを出力
181 182 183 184 185 186 187 |
# File 'lib/messagex.rb', line 181 def output_info(msg) if @logger @logger.info(msg) else STDOUT.puts(msg) end end |
#output_warn(msg) ⇒ void
This method returns an undefined value.
ログレベルが WARN のメッセージを出力
194 195 196 197 198 199 200 |
# File 'lib/messagex.rb', line 194 def output_warn(msg) if @logger @logger.warn(msg) else STDOUT.puts(msg) end end |
#register_exc ⇒ void
This method returns an undefined value.
I/O関連例外処理管理クラスのインスタンスの登録
99 100 101 |
# File 'lib/messagex.rb', line 99 def register_exc @exc_inst = Exc.new(self) end |
#register_exitcodes ⇒ void
This method returns an undefined value.
Messagexクラスで利用する終了ステータスの登録
85 86 87 88 89 90 91 92 93 |
# File 'lib/messagex.rb', line 85 def register_exitcodes add_exitcode("EXIT_CODE_CANNOT_READ_FILE") add_exitcode("EXIT_CODE_CANNOT_WRITE_FILE") add_exitcode("EXIT_CODE_CANNOT_FIND_DIRECTORY") add_exitcode("EXIT_CODE_CANNOT_CHANGE_DIRECTORY") add_exitcode("EXIT_CODE_CANNOT_MAKE_DIRECTORY") add_exitcode("EXIT_CODE_CANNOT_OPEN_FILE") add_exitcode("EXIT_CODE_CANNOT_COPY_FILE") end |
#set_initial_exitcode(name, num) ⇒ void
This method returns an undefined value.
終了ステータスの最初の登録
118 119 120 121 122 |
# File 'lib/messagex.rb', line 118 def set_initial_exitcode(name, num) @exit_code ||= {} @exit_code[name] = num @cur_exit_code = num end |