messagex 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1210c621ea510418004082f9d04c88aa3e3a8c4a19245c2b9d0c1b33297f3653
4
- data.tar.gz: d37903a15c0cc39a290e8d7fa9e9bcbbeea998571f08bb7be44e3106d601d3bf
3
+ metadata.gz: a386955590d1742849e32e2de7d704fef132fe0c8c6c34be514affdb56423537
4
+ data.tar.gz: 76666c405b63c7e1996c91d638eb3dca914d82bbe3a0aee0b90fd5ff8760bf56
5
5
  SHA512:
6
- metadata.gz: 5d322a5618c5f119de53a739e5fda6cb34c54843fccd0cf1b333a9bf937f7999c49eefcdd98e3cc998dd51d1edb3268fc8c69664406c965ed4c5533fd8e7b0c3
7
- data.tar.gz: e926d9134224b5e99d138528124f5df3df9016d361f74e0d112e932c85b85506d91ce5adb8a01a355bacad527853310ff14335c58cfed5073c58bccfd551086a
6
+ metadata.gz: 1d44edde11c7dc2229f0a30569ca117a6fd06e79d18630f7ee65169b3d47a40cb74b5a9e78352d9c8567ea42674b1437c767259a796e759e2acd4cfe9e96e080
7
+ data.tar.gz: 7cf625ba7aaa239dfe4d425518c144d5733ad86a2fbc76e978064bb421d43fb38422fc2cfdd25f845bef35bb47d0bd6ae97f8737abaf876d3c97342e6a0d532c
data/.gitignore CHANGED
File without changes
data/.rspec CHANGED
File without changes
data/.rubocop.yml CHANGED
File without changes
data/.rubocop_todo.yml CHANGED
File without changes
data/.travis.yml CHANGED
File without changes
data/Gemfile CHANGED
File without changes
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- messagex (0.1.3)
4
+ messagex (0.1.4)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -20,24 +20,24 @@ GEM
20
20
  rspec-mocks (~> 3.8.0)
21
21
  rspec-core (3.8.0)
22
22
  rspec-support (~> 3.8.0)
23
- rspec-expectations (3.8.2)
23
+ rspec-expectations (3.8.3)
24
24
  diff-lcs (>= 1.2.0, < 2.0)
25
25
  rspec-support (~> 3.8.0)
26
26
  rspec-mocks (3.8.0)
27
27
  diff-lcs (>= 1.2.0, < 2.0)
28
28
  rspec-support (~> 3.8.0)
29
29
  rspec-support (3.8.0)
30
- rubocop (0.68.1)
30
+ rubocop (0.71.0)
31
31
  jaro_winkler (~> 1.5.1)
32
32
  parallel (~> 1.10)
33
- parser (>= 2.5, != 2.5.1.1)
33
+ parser (>= 2.6)
34
34
  rainbow (>= 2.2.2, < 4.0)
35
35
  ruby-progressbar (~> 1.7)
36
- unicode-display_width (>= 1.4.0, < 1.6)
37
- rubocop-performance (1.2.0)
36
+ unicode-display_width (>= 1.4.0, < 1.7)
37
+ rubocop-performance (1.3.0)
38
38
  rubocop (>= 0.68.0)
39
- ruby-progressbar (1.10.0)
40
- unicode-display_width (1.5.0)
39
+ ruby-progressbar (1.10.1)
40
+ unicode-display_width (1.6.0)
41
41
 
42
42
  PLATFORMS
43
43
  ruby
data/LICENSE.txt CHANGED
File without changes
data/README.md CHANGED
File without changes
data/Rakefile CHANGED
File without changes
data/lib/messagex/exc.rb CHANGED
@@ -1,9 +1,21 @@
1
1
  module Messagex
2
+ #
3
+ # I/O関連例外処理管理クラス
2
4
  class Exc
5
+ #
6
+ # 初期化
7
+ #
8
+ # @param mes [Messagex] Messagexクラスのインスタンス
3
9
  def initialize(mes)
4
10
  @mes = mes
5
11
  end
6
12
 
13
+ #
14
+ # I/O関連例外処理
15
+ #
16
+ # @param msg [String] エラーメッセージ
17
+ # @param exit_codestr [String] 終了ステータスの識別名
18
+ # @param block [Proc] Procのインスタンス
7
19
  def exc(msg, exit_codestr, block)
8
20
  begin
9
21
  block.call
@@ -18,48 +30,89 @@ module Messagex
18
30
  end
19
31
  end
20
32
 
33
+ #
34
+ # ディレクトリ移動失敗例外処理
35
+ #
36
+ # @param arg1 [String] 移動しようとしたディレクトリ名
37
+ # @param block [Proc] ブロック引数
21
38
  def exc_change_directory(arg1, &block)
22
39
  msg = "Can't change directory to |#{arg1}|"
23
40
  exit_codestr = "EXIT_CODE_CANNOT_CHANGE_DIRECTORY"
24
41
  exc(msg, exit_codestr, block)
25
42
  end
26
43
 
44
+ #
45
+ # ファイルオープン失敗例外処理
46
+ #
47
+ # @param arg1 [String] エラーメッセージに組みこむ値
48
+ # @param block [Proc] ブロック引数
27
49
  def exc_file_open(arg1, &block)
28
50
  msg = "Cannot open file #{arg1}"
29
51
  exit_codestr = "EXIT_CODE_CANNOT_OPEN_FILE"
30
52
  exc(msg, exit_codestr, block)
31
53
  end
32
54
 
55
+ #
56
+ # ファイル読込失敗例外処理
57
+ #
58
+ # @param arg1 [String] 読み込もうとしたファイル名
59
+ # @param block [Proc] ブロック引数
33
60
  def exc_file_read(arg1, &block)
34
61
  msg = "Cannot read file #{arg1}"
35
62
  exit_codestr = "EXIT_CODE_CANNOT_READ_FILE"
36
63
  exc(msg, exit_codestr, block)
37
64
  end
38
65
 
66
+ #
67
+ # ファイル1行読込失敗例外処理
68
+ #
69
+ # @param arg1 [String] 読み込もうとしたファイル名
70
+ # @param block [Proc] ブロック引数
39
71
  def exc_file_gets(arg1, &block)
40
72
  msg = "Cannot read file #{arg1}"
41
73
  exit_codestr = "EXIT_CODE_CANNOT_READ_FILE"
42
74
  exc(msg, exit_codestr, block)
43
75
  end
44
76
 
77
+ #
78
+ # ファイルクローズ失敗例外処理
79
+ #
80
+ # @param arg1 [String] クローズしようとしたファイル名
81
+ # @param block [Proc] ブロック引数
45
82
  def exc_file_close(arg1, &block)
46
83
  msg = "Cannot close file #{arg1}"
47
84
  exit_codestr = "EXIT_CODE_CANNOT_OPEN_FILE"
48
85
  exc(msg, exit_codestr, block)
49
86
  end
50
87
 
88
+ #
89
+ # ファイル書込失敗例外処理
90
+ #
91
+ # @param arg1 [String] 書き込もうとしたファイル名
92
+ # @param block [Proc] ブロック引数
51
93
  def exc_file_write(arg1, &block)
52
94
  msg = "Cannot write file #{arg1}"
53
95
  exit_codestr = "EXIT_CODE_CANNOT_WRITE_FILE"
54
96
  exc(msg, exit_codestr, block)
55
97
  end
56
98
 
99
+ #
100
+ # ファイルコピー失敗例外処理
101
+ #
102
+ # @param arg1 [String] コピー元ファイル名
103
+ # @param arg2 [String] コピー先ファイル名
104
+ # @param block [Proc] ブロック引数
57
105
  def exc_file_copy(arg1, arg2, &block)
58
106
  msg = "Can't copy file from #{arg1} to #{arg2}"
59
107
  exit_codestr = "EXIT_CODE_CANNOT_COPY_FILE"
60
108
  exc(msg, exit_codestr, block)
61
109
  end
62
110
 
111
+ #
112
+ # ディレクトリ作成失敗例外処理
113
+ #
114
+ # @param arg1 [String] 作成しようとしたディレクトリ名
115
+ # @param block [Proc] ブロック引数
63
116
  def exc_make_directory(arg1, &block)
64
117
  msg = "Can't make directory to #{arg1}"
65
118
  exit_codestr = "EXIT_CODE_CANNOT_MAKE_DIRECTORY"
@@ -1,59 +1,105 @@
1
1
  require "logger"
2
2
 
3
3
  module Messagex
4
+ #
5
+ # 出力先が標準出力とファイルの2種類をもつログ機能管理クラス
4
6
  class Loggerx
7
+ #
8
+ # 初期化
9
+ #
10
+ # @param fname [String] ログの出力先ファイル名
5
11
  def initialize(fname)
6
- @loggerSTDOUT = Logger.new(STDOUT)
7
- @loggerSTDOUT.level = Logger::UNKNOWN
8
- @loggerSTDOUT.formatter = proc do |severity, _datetime, _progname, msg|
12
+ @logger_stdout = Logger.new(STDOUT)
13
+ @logger_stdout.level = Logger::UNKNOWN
14
+ @logger_stdout.formatter = proc do |severity, _datetime, _progname, msg|
9
15
  "#{severity[0]}: #{msg}\n"
10
16
  end
11
17
  file = File.open(fname, "w")
12
- @loggerFILE = Logger.new(file)
13
- @loggerFILE.level = Logger::INFO
14
- @loggerFILE.formatter = proc do |severity, _datetime, _progname, msg|
18
+ @logger_file = Logger.new(file)
19
+ @logger_file.level = Logger::INFO
20
+ @logger_file.formatter = proc do |severity, _datetime, _progname, msg|
15
21
  "#{severity}: #{msg}\n"
16
22
  end
17
23
  end
18
24
 
25
+ #
26
+ # ログ記録の日時フォーマットの設定
27
+ #
28
+ # @param format [String] ログ記録の日時フォーマット
29
+ # @return [void]
19
30
  def datetime_format=(format)
20
- @loggerSTDOUT.datetime_format = format
21
- @loggerFILE.datetime_format = format
31
+ @logger_stdout.datetime_format = format
32
+ @logger_file.datetime_format = format
22
33
  end
23
34
 
35
+ #
36
+ # ログ記録のフォーマットの設定
37
+ #
38
+ # @param format [String] ログ記録のフォーマット
39
+ # @return [void]
24
40
  def formatter=(format)
25
- @loggerSTDOUT.formatter = format
26
- @loggerFILE.formatter = format
41
+ @logger_stdout.formatter = format
42
+ @logger_file.formatter = format
27
43
  end
28
44
 
45
+ #
46
+ # ログレベルの設定
47
+ #
48
+ # @param value [String,Symbol] ログレベル
49
+ # @return [void]
29
50
  def level=(value)
30
- @loggerSTDOUT.level = value
31
- @loggerFILE.level = value
51
+ @logger_stdout.level = value
52
+ @logger_file.level = value
32
53
  end
33
54
 
34
- def debug(mes)
35
- @loggerSTDOUT.debug(mes)
36
- @loggerFILE.debug(mes)
55
+ #
56
+ # ログレベルが DEBUG のメッセージを出力
57
+ #
58
+ # @param msg [String] メッセージ
59
+ # @return [void]
60
+ def debug(msg)
61
+ @logger_stdout.debug(msg)
62
+ @logger_file.debug(msg)
37
63
  end
38
64
 
39
- def error(mes)
40
- @loggerSTDOUT.error(mes)
41
- @loggerFILE.error(mes)
65
+ #
66
+ # ログレベルが ERROR のメッセージを出力
67
+ #
68
+ # @param msg [String] メッセージ
69
+ # @return [void]
70
+ def error(msg)
71
+ @logger_stdout.error(msg)
72
+ @logger_file.error(msg)
42
73
  end
43
74
 
44
- def fatal(mes)
45
- @loggerSTDOUT.fatal(mes)
46
- @loggerFILE.fatal(mes)
75
+ #
76
+ # ログレベルが FATAL のメッセージを出力
77
+ #
78
+ # @param msg [String] メッセージ
79
+ # @return [void]
80
+ def fatal(msg)
81
+ @logger_stdout.fatal(msg)
82
+ @logger_file.fatal(msg)
47
83
  end
48
84
 
49
- def warn(mes)
50
- @loggerSTDOUT.warn(mes)
51
- @loggerFILE.warn(mes)
85
+ #
86
+ # ログレベルが WARN のメッセージを出力
87
+ #
88
+ # @param msg [String] メッセージ
89
+ # @return [void]
90
+ def warn(msg)
91
+ @logger_stdout.warn(msg)
92
+ @logger_file.warn(msg)
52
93
  end
53
94
 
54
- def info(mes)
55
- @loggerSTDOUT.info(mes)
56
- @loggerFILE.info(mes)
95
+ #
96
+ # ログレベルが INFO のメッセージを出力
97
+ #
98
+ # @param msg [String] メッセージ
99
+ # @return [void]
100
+ def info(msg)
101
+ @logger_stdout.info(msg)
102
+ @logger_file.info(msg)
57
103
  end
58
104
  end
59
105
  end
@@ -1,3 +1,4 @@
1
1
  module Messagex
2
- VERSION = "0.1.3"
2
+ # バージョン番号
3
+ VERSION = "0.1.4"
3
4
  end
data/lib/messagex.rb CHANGED
@@ -1,24 +1,56 @@
1
+ #
2
+ # 終了ステータス管理、ログ機能管理のモジュール
1
3
  module Messagex
4
+ #
5
+ # 終了ステータス管理、ログ機能管理のクラス
2
6
  class Messagex
3
7
  extend Forwardable
4
8
 
9
+ # @!method exc
10
+ # @see Exc#exc
11
+ # @!method exc_change_directory
12
+ # @see Exc#exc_change_directory]
13
+ # @!method exc_file_open
14
+ # @see Exc#exc_file_open
15
+ # @!method exc_file_read
16
+ # @see Exc#exc_file_read
17
+ # @!method exc_file_gets
18
+ # @see Exc#exc_file_gets
19
+ # @!method exc_file_close
20
+ # @see Exc#exc_file_close
21
+ # @!method exc_file_write
22
+ # @see Exc#exc_file_write
23
+ # @!method exc_file_copy
24
+ # @see Exc#exc_file_copy
25
+ # @!method exc_make_directory
26
+ # @see Exc#exc_make_directory
5
27
  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
6
28
 
29
+ # @return [Loggerx] Loggerxクラスのインスタンス
7
30
  attr_reader :logger
8
31
 
9
32
  require "messagex/version"
10
33
  require "messagex/loggerx"
11
34
  require "messagex/exc"
12
35
 
13
- def initialize(initialExitCode, initialNum, debug=:warn, logger=nil, logfname=nil)
36
+ #
37
+ # 初期化
38
+ #
39
+ # @param initial_exitcode [String] 最初に登録する終了ステータスの識別名
40
+ # @param initial_num [Integer] 登録する終了ステータスの初期値
41
+ # @param debug [Symbol] ログ機能のログレベル指定 `:debug`、`:verbose`、その他
42
+ # @param logger [Loggerx] 複数のLoggerクラスのインスタンスを持つことが出来るLoggerxクラスのインスタンス
43
+ # @param logfname [String] ログの出力先ファイル名
44
+ # @note 引数debugの値はLoggerクラスのログレベル設定とは指定方法が異なる
45
+ def initialize(initial_exitcode, initial_num, debug=:warn, logger=nil, logfname=nil)
14
46
  @exit_code = {}
15
- set_initial_exitcode(initialExitCode, initialNum)
47
+ set_initial_exitcode(initial_exitcode, initial_num)
16
48
 
17
49
  if logger
18
50
  @logger = logger
19
51
  else
20
- logFname = (!logfname.nil? && !logfname.empty?) ? logfname : "log.txt"
21
- @logger = Loggerx.new(logFname)
52
+ log_fname = (!logfname.nil? && !logfname.empty?) ? logfname : "log.txt"
53
+ @logger = Loggerx.new(log_fname)
22
54
  # Logger::WARN , Logger::INFO
23
55
 
24
56
  case debug
@@ -41,10 +73,14 @@ module Messagex
41
73
  end
42
74
  end
43
75
 
44
- register_exit_codes
76
+ register_exitcodes
45
77
  end
46
78
 
47
- def register_exit_codes
79
+ #
80
+ # Messagexクラスで利用する終了ステータスの登録
81
+ #
82
+ # @return [void]
83
+ def register_exitcodes
48
84
  add_exitcode("EXIT_CODE_CANNOT_READ_FILE")
49
85
  add_exitcode("EXIT_CODE_CANNOT_WRITE_FILE")
50
86
  add_exitcode("EXIT_CODE_CANNOT_FIND_DIRECTORY")
@@ -54,28 +90,53 @@ module Messagex
54
90
  add_exitcode("EXIT_CODE_CANNOT_COPY_FILE")
55
91
  end
56
92
 
93
+ #
94
+ # I/O関連例外処理管理クラスのインスタンスの登録
95
+ #
96
+ # @return [void]
57
97
  def register_exc
58
98
  @exc_inst = Exc.new(self)
59
99
  end
60
100
 
101
+ #
102
+ # 識別名で指定された終了ステータスを得る
103
+ #
104
+ # @param name [String] 登録された終了ステータスの識別名
105
+ # @return [Integer] 終了ステータス
61
106
  def ec(name)
62
107
  @exit_code[name]
63
108
  end
64
109
 
110
+ #
111
+ # 終了ステータスの最初の登録
112
+ #
113
+ # @param name [String] 登録する終了ステータスの識別名
114
+ # @param num [Integer] 登録する終了ステータスの値
115
+ # @return [void]
65
116
  def set_initial_exitcode(name, num)
66
- @exit_code = {}
117
+ @exit_code ||= {}
67
118
  @exit_code[name] = num
68
- @cur_exitcode = num
119
+ @cur_exit_code = num
69
120
  end
70
121
 
122
+ #
123
+ # 終了ステータスの値の自動割り当て
124
+ #
125
+ # @param name [String] 値の自動割り当て対象の終了ステータスの識別名
126
+ # @return [Integer] 自動割り当てされた終了ステータスの値
71
127
  def add_exitcode(str)
72
128
  return if @exit_code[str]
73
129
 
74
- num = (@cur_exitcode + 1)
130
+ num = (@cur_exit_code + 1)
75
131
  @exit_code[str] = num
76
- @cur_exitcode = num
132
+ @cur_exit_code = num
77
133
  end
78
134
 
135
+ #
136
+ # ログレベルが ERROR のメッセージを出力
137
+ #
138
+ # @param msg [String]
139
+ # @return [void]
79
140
  def output_error(msg)
80
141
  if @logger
81
142
  @logger.error(msg)
@@ -84,6 +145,11 @@ module Messagex
84
145
  end
85
146
  end
86
147
 
148
+ #
149
+ # ログレベルが FATAL のメッセージを出力
150
+ #
151
+ # @param msg [String]
152
+ # @return [void]
87
153
  def output_fatal(msg)
88
154
  if @logger
89
155
  @logger.fatal(msg)
@@ -92,6 +158,11 @@ module Messagex
92
158
  end
93
159
  end
94
160
 
161
+ #
162
+ # ログレベルが DEBUG のメッセージを出力
163
+ #
164
+ # @param msg [String]
165
+ # @return [void]
95
166
  def output_debug(msg)
96
167
  if @logger
97
168
  @logger.debug(msg)
@@ -100,6 +171,11 @@ module Messagex
100
171
  end
101
172
  end
102
173
 
174
+ #
175
+ # ログレベルが INFO のメッセージを出力
176
+ #
177
+ # @param msg [String]
178
+ # @return [void]
103
179
  def output_info(msg)
104
180
  if @logger
105
181
  @logger.info(msg)
@@ -108,6 +184,11 @@ module Messagex
108
184
  end
109
185
  end
110
186
 
187
+ #
188
+ # ログレベルが WARN のメッセージを出力
189
+ #
190
+ # @param msg [String]
191
+ # @return [void]
111
192
  def output_warn(msg)
112
193
  if @logger
113
194
  @logger.warn(msg)
@@ -116,10 +197,15 @@ module Messagex
116
197
  end
117
198
  end
118
199
 
119
- def output_exception(e)
120
- output_fatal(e.class)
121
- output_fatal(e.message)
122
- output_fatal(e.backtrace.join("\n"))
200
+ #
201
+ # ログレベルが ERROR のメッセージを出力
202
+ #
203
+ # @param msg [String]
204
+ # @return [void]
205
+ def output_exception(exception)
206
+ output_fatal(exception.class)
207
+ output_fatal(exception.message)
208
+ output_fatal(exception.backtrace.join("\n"))
123
209
  end
124
210
  end
125
211
  end
data/messagex.gemspec CHANGED
File without changes
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: messagex
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - yasuo kominami
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-05-25 00:00:00.000000000 Z
11
+ date: 2019-06-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler