messagex 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
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