zakuro 0.1.0 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (86) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +30 -12
  3. data/doc/operation/csv/month.csv +202 -202
  4. data/doc/operation/operation.xlsx +0 -0
  5. data/doc/operation/transfer.rb +6 -2
  6. data/lib/zakuro/calculation/base/multi_gengou.rb +101 -0
  7. data/lib/zakuro/calculation/base/multi_gengou_roller.rb +218 -0
  8. data/lib/zakuro/calculation/base/year.rb +107 -0
  9. data/lib/zakuro/calculation/cycle/abstract_remainder.rb +471 -0
  10. data/lib/zakuro/calculation/cycle/abstract_solar_term.rb +173 -0
  11. data/lib/zakuro/calculation/cycle/zodiac.rb +106 -0
  12. data/lib/zakuro/calculation/monthly/first_day.rb +45 -0
  13. data/lib/zakuro/calculation/monthly/initialized_month.rb +125 -0
  14. data/lib/zakuro/calculation/monthly/month.rb +187 -0
  15. data/lib/zakuro/calculation/monthly/month_label.rb +88 -0
  16. data/lib/zakuro/calculation/monthly/operated_month.rb +209 -0
  17. data/lib/zakuro/calculation/range/full_range.rb +210 -0
  18. data/lib/zakuro/calculation/range/operated_range.rb +144 -0
  19. data/lib/zakuro/calculation/range/operated_solar_terms.rb +201 -0
  20. data/lib/zakuro/calculation/range/transfer/western_date_allocation.rb +82 -0
  21. data/lib/zakuro/calculation/range/transfer/year_boundary.rb +146 -0
  22. data/lib/zakuro/calculation/specifier/single_day.rb +109 -0
  23. data/lib/zakuro/calculation/summary/single.rb +129 -0
  24. data/lib/zakuro/condition.rb +16 -13
  25. data/lib/zakuro/era/japan/gengou/parser.rb +1 -3
  26. data/lib/zakuro/era/japan/gengou/type.rb +3 -3
  27. data/lib/zakuro/era/japan/gengou/validator.rb +15 -13
  28. data/lib/zakuro/merchant.rb +2 -2
  29. data/lib/zakuro/operation/month/parser.rb +132 -36
  30. data/lib/zakuro/operation/month/type.rb +11 -10
  31. data/lib/zakuro/operation/month/validator.rb +332 -28
  32. data/lib/zakuro/operation/operation.rb +21 -0
  33. data/lib/zakuro/operation/yaml/month.yaml +1 -1
  34. data/lib/zakuro/output/error.rb +7 -6
  35. data/lib/zakuro/output/logger.rb +50 -49
  36. data/lib/zakuro/output/response.rb +145 -144
  37. data/lib/zakuro/result/operation.rb +64 -36
  38. data/lib/zakuro/tools/stringifier.rb +2 -2
  39. data/lib/zakuro/tools/typeof.rb +2 -2
  40. data/lib/zakuro/version.rb +1 -1
  41. data/lib/zakuro/version/abstract_version.rb +1 -1
  42. data/lib/zakuro/version/context.rb +23 -0
  43. data/lib/zakuro/version/senmyou/const/number.rb +51 -0
  44. data/lib/zakuro/version/senmyou/const/remainder.rb +43 -0
  45. data/lib/zakuro/version/senmyou/cycle/remainder.rb +61 -0
  46. data/lib/zakuro/version/senmyou/cycle/solar_term.rb +31 -0
  47. data/lib/zakuro/version/senmyou/monthly/lunar_phase.rb +166 -181
  48. data/lib/zakuro/version/senmyou/range/annual_range.rb +86 -159
  49. data/lib/zakuro/version/senmyou/senmyou.rb +10 -4
  50. data/lib/zakuro/version/senmyou/stella/lunar/adjustment.rb +237 -0
  51. data/lib/zakuro/version/senmyou/stella/lunar/localization.rb +45 -0
  52. data/lib/zakuro/version/senmyou/stella/lunar/location.rb +108 -0
  53. data/lib/zakuro/version/senmyou/stella/lunar/value.rb +89 -0
  54. data/lib/zakuro/version/senmyou/stella/origin/average_november.rb +34 -0
  55. data/lib/zakuro/version/senmyou/stella/origin/lunar_age.rb +62 -0
  56. data/lib/zakuro/version/senmyou/stella/origin/winter_solstice.rb +55 -0
  57. data/lib/zakuro/version/senmyou/stella/solar/adjustment.rb +93 -0
  58. data/lib/zakuro/version/senmyou/stella/solar/average.rb +175 -0
  59. data/lib/zakuro/version/senmyou/stella/solar/interval.rb +103 -0
  60. data/lib/zakuro/version/senmyou/stella/solar/location.rb +164 -0
  61. data/lib/zakuro/version/senmyou/stella/solar/value.rb +138 -0
  62. data/lib/zakuro/version/version_class_resolver.rb +62 -0
  63. data/lib/zakuro/version_factory.rb +2 -2
  64. metadata +38 -24
  65. data/lib/zakuro/cycle/abstract_remainder.rb +0 -456
  66. data/lib/zakuro/cycle/zodiac.rb +0 -103
  67. data/lib/zakuro/version/senmyou/base/era.rb +0 -83
  68. data/lib/zakuro/version/senmyou/base/multi_gengou.rb +0 -98
  69. data/lib/zakuro/version/senmyou/base/multi_gengou_roller.rb +0 -217
  70. data/lib/zakuro/version/senmyou/base/remainder.rb +0 -60
  71. data/lib/zakuro/version/senmyou/base/solar_term.rb +0 -76
  72. data/lib/zakuro/version/senmyou/base/year.rb +0 -104
  73. data/lib/zakuro/version/senmyou/monthly/first_day.rb +0 -44
  74. data/lib/zakuro/version/senmyou/monthly/initialized_month.rb +0 -48
  75. data/lib/zakuro/version/senmyou/monthly/month.rb +0 -181
  76. data/lib/zakuro/version/senmyou/monthly/month_label.rb +0 -87
  77. data/lib/zakuro/version/senmyou/monthly/operated_month.rb +0 -167
  78. data/lib/zakuro/version/senmyou/range/full_range.rb +0 -324
  79. data/lib/zakuro/version/senmyou/range/operated_range.rb +0 -105
  80. data/lib/zakuro/version/senmyou/range/operated_solar_terms.rb +0 -163
  81. data/lib/zakuro/version/senmyou/specifier/single_day_specifier.rb +0 -99
  82. data/lib/zakuro/version/senmyou/stella/lunar_orbit.rb +0 -332
  83. data/lib/zakuro/version/senmyou/stella/solar_average.rb +0 -214
  84. data/lib/zakuro/version/senmyou/stella/solar_orbit.rb +0 -394
  85. data/lib/zakuro/version/senmyou/stella/winter_solstice.rb +0 -106
  86. data/lib/zakuro/version/senmyou/summary/single.rb +0 -71
@@ -15,6 +15,8 @@ module Zakuro
15
15
  #
16
16
  INVALID_DAY_VALUE = -30
17
17
 
18
+ # :reek:TooManyInstanceVariables { max_instance_variables: 6 }
19
+
18
20
  #
19
21
  # MonthHistory 変更履歴
20
22
  #
@@ -32,6 +34,9 @@ module Zakuro
32
34
  # @return [Diffs] 総差分
33
35
  attr_reader :diffs
34
36
 
37
+ # rubocop:disable Metrics/ParameterLists
38
+ # :reek:LongParameterList { max_params: 6 }
39
+
35
40
  #
36
41
  # 初期化
37
42
  #
@@ -51,6 +56,7 @@ module Zakuro
51
56
  @annotations = annotations
52
57
  @diffs = diffs
53
58
  end
59
+ # rubocop:enable Metrics/ParameterLists
54
60
 
55
61
  #
56
62
  # 無効か
@@ -180,7 +186,7 @@ module Zakuro
180
186
  # @return [Leaped] 閏有無
181
187
  attr_reader :leaped
182
188
  # @return [Days] 月の大小
183
- attr_reader :days
189
+ attr_reader :is_many_days
184
190
 
185
191
  # :reek:BooleanParameter
186
192
 
@@ -191,10 +197,10 @@ module Zakuro
191
197
  # @param [Leaped] leaped 閏有無
192
198
  # @param [Days] days 月の大小
193
199
  #
194
- def initialize(number: Number.new, leaped: Leaped.new, days: Days.new)
200
+ def initialize(number: Number.new, leaped: Leaped.new, is_many_days: Days.new)
195
201
  @number = number
196
202
  @leaped = leaped
197
- @days = days
203
+ @is_many_days = is_many_days
198
204
  end
199
205
 
200
206
  #
@@ -402,11 +408,6 @@ module Zakuro
402
408
  # @return [String] 30日
403
409
  BIG = '大'
404
410
 
405
- # @return [String] 計算
406
- attr_reader :calc
407
- # @return [String] 運用
408
- attr_reader :actual
409
-
410
411
  #
411
412
  # 初期化
412
413
  #
@@ -424,7 +425,7 @@ module Zakuro
424
425
  # @return [True] 大
425
426
  # @return [False] 小
426
427
  #
427
- def many_days_calc?
428
+ def calc
428
429
  @calc == BIG
429
430
  end
430
431
 
@@ -434,7 +435,7 @@ module Zakuro
434
435
  # @return [True] 大
435
436
  # @return [False] 小
436
437
  #
437
- def many_days_actual?
438
+ def actual
438
439
  @actual == BIG
439
440
  end
440
441
 
@@ -20,50 +20,118 @@ module Zakuro
20
20
  EMPTY_STRING = '-'
21
21
  BOOLEANS = %w[true false].freeze
22
22
 
23
- # :reek:NilCheck
24
-
23
+ #
24
+ # 有効文字列か
25
+ #
26
+ # @param [String] str 対象文字列
27
+ #
28
+ # @return [True] 有効
29
+ # @return [False] 無効
30
+ #
25
31
  def self.string?(str: '')
26
- !str.nil? && !str.empty? && str.is_a?(String)
27
- end
32
+ return false if str == ''
28
33
 
29
- # :reek:NilCheck
34
+ return false unless str
30
35
 
31
- def self.empiable_string?(str: '')
32
- !str.nil? && str.is_a?(String)
36
+ str.is_a?(String)
33
37
  end
34
38
 
35
- # :reek:NilCheck
39
+ #
40
+ # 有効文字列(空文字許容)か
41
+ #
42
+ # @param [String] str 対象文字列
43
+ #
44
+ # @return [True] 有効
45
+ # @return [False] 無効
46
+ #
47
+ def self.empiable_string?(str: '')
48
+ return false unless str
36
49
 
50
+ str.is_a?(String)
51
+ end
52
+
53
+ #
54
+ # 正数か
55
+ #
56
+ # @param [String] str 対象文字列
57
+ #
58
+ # @return [True] 正数
59
+ # @return [False] 負数
60
+ #
37
61
  def self.positive?(str: '')
38
62
  return true if str == EMPTY_STRING
39
63
 
40
- !str.nil? && !str.empty? && /^[0-9]+$/.match?(str)
41
- end
64
+ return false unless str
42
65
 
43
- # :reek:NilCheck
66
+ /^[0-9]+$/.match?(str)
67
+ end
44
68
 
69
+ #
70
+ # 数値か
71
+ #
72
+ # @param [String] str 対象文字列
73
+ #
74
+ # @return [True] 数値
75
+ # @return [False] 非数値
76
+ #
45
77
  def self.num?(str: '')
46
78
  return true if str == EMPTY_STRING
47
79
 
48
- !str.nil? && !str.empty? && /^[-0-9]+$/.match?(str)
80
+ return false unless str
81
+
82
+ /^[-0-9]+$/.match?(str)
49
83
  end
50
84
 
85
+ #
86
+ # booleanか
87
+ #
88
+ # @param [String] str 対象文字列
89
+ #
90
+ # @return [True] boolean
91
+ # @return [False] 非boolean
92
+ #
51
93
  def self.bool?(str: '')
52
94
  BOOLEANS.include?(str)
53
95
  end
54
96
 
97
+ #
98
+ # boolean(空許容)か
99
+ #
100
+ # @param [String] str 対象文字列
101
+ #
102
+ # @return [True] boolean
103
+ # @return [False] 非boolean
104
+ #
55
105
  def self.empiable_bool?(str: '')
56
106
  return true if str == EMPTY_STRING
57
107
 
58
108
  bool?(str: str)
59
109
  end
60
110
 
111
+ #
112
+ # 月差分か
113
+ #
114
+ # @param [String] str 対象文字列
115
+ #
116
+ # @return [True] 有効
117
+ # @return [False] 無効
118
+ #
61
119
  def self.month_days?(str: '')
62
120
  return true if str == EMPTY_STRING
63
121
 
64
- !str.nil? && !str.empty? && /^[大小]$/.match?(str)
122
+ return false unless str
123
+
124
+ /^[大小]$/.match?(str)
65
125
  end
66
126
 
127
+ #
128
+ # 西暦日か
129
+ #
130
+ # @param [String] str 対象文字列
131
+ #
132
+ # @return [True] 有効
133
+ # @return [False] 無効
134
+ #
67
135
  def self.western_date?(str: '')
68
136
  return Western::Calendar.new if str == EMPTY_STRING
69
137
 
@@ -71,12 +139,33 @@ module Zakuro
71
139
  end
72
140
  end
73
141
 
142
+ # :reek:TooManyInstanceVariables { max_instance_variables: 5 }
143
+
74
144
  #
75
145
  # MonthHistory 変更履歴
76
146
  #
77
147
  class MonthHistory
78
- attr_reader :index, :id, :parend_id, :western_date, :modified
148
+ # @return [Integer] 連番
149
+ attr_reader :index
150
+ # @return [String] ID
151
+ attr_reader :id
152
+ # @return [String] 親ID
153
+ attr_reader :parend_id
154
+ # @return [String] 西暦日
155
+ attr_reader :western_date
156
+ # @return [String] 有効行
157
+ attr_reader :modified
79
158
 
159
+ #
160
+ # 初期化
161
+ #
162
+ # @param [Integer] index 連番
163
+ # @param [Hash<String, String>] yaml_hash yaml
164
+ # @option yaml_hash [String] :id ID
165
+ # @option yaml_hash [String] :parent_id 親ID
166
+ # @option yaml_hash [String] :western_date 西暦日
167
+ # @option yaml_hash [String] :modified 有効行
168
+ #
80
169
  def initialize(index:, yaml_hash: {})
81
170
  @index = index
82
171
  @id = yaml_hash['id']
@@ -85,6 +174,13 @@ module Zakuro
85
174
  @modified = yaml_hash['modified']
86
175
  end
87
176
 
177
+ # :reek:TooManyStatements { max_statements: 7 }
178
+
179
+ #
180
+ # 検証する
181
+ #
182
+ # @return [Array<String>] エラーメッセージ
183
+ #
88
184
  def validate
89
185
  failed = []
90
186
 
@@ -122,8 +218,24 @@ module Zakuro
122
218
  # Annotation 注釈
123
219
  #
124
220
  class Annotation
125
- attr_reader :index, :id, :description, :note
221
+ # @return [Integer] 連番
222
+ attr_reader :index
223
+ # @return [String] ID
224
+ attr_reader :id
225
+ # @return [String] 注釈内容
226
+ attr_reader :description
227
+ # @return [String] 補足
228
+ attr_reader :note
126
229
 
230
+ #
231
+ # 初期化
232
+ #
233
+ # @param [Integer] index 連番
234
+ # @param [Hash<String, String>] yaml_hash yaml
235
+ # @option yaml_hash [String] :id ID
236
+ # @option yaml_hash [String] :description 注釈内容
237
+ # @option yaml_hash [String] :note 補足
238
+ #
127
239
  def initialize(index:, yaml_hash: {})
128
240
  @index = index
129
241
  @id = yaml_hash['id']
@@ -131,6 +243,13 @@ module Zakuro
131
243
  @note = yaml_hash['note']
132
244
  end
133
245
 
246
+ # :reek:TooManyStatements { max_statements: 6 }
247
+
248
+ #
249
+ # 検証する
250
+ #
251
+ # @return [Array<String>] エラーメッセージ
252
+ #
134
253
  def validate
135
254
  failed = []
136
255
 
@@ -162,8 +281,24 @@ module Zakuro
162
281
  # Reference 参照
163
282
  #
164
283
  class Reference
165
- attr_reader :index, :page, :number, :japan_date
284
+ # @return [Integer] 連番
285
+ attr_reader :index
286
+ # @return [String] 原文頁数
287
+ attr_reader :page
288
+ # @return [String] 原文注釈番号
289
+ attr_reader :number
290
+ # @return [String] 和暦日
291
+ attr_reader :japan_date
166
292
 
293
+ #
294
+ # 初期化
295
+ #
296
+ # @param [Integer] index 連番
297
+ # @param [Hash<String, String>] yaml_hash yaml
298
+ # @option yaml_hash [String] :page 原文頁数
299
+ # @option yaml_hash [String] :number 原文注釈番号
300
+ # @option yaml_hash [String] :japan_date 和暦日
301
+ #
167
302
  def initialize(index:, yaml_hash: {})
168
303
  @index = index
169
304
  @page = yaml_hash['page']
@@ -171,6 +306,13 @@ module Zakuro
171
306
  @japan_date = yaml_hash['japan_date']
172
307
  end
173
308
 
309
+ # :reek:TooManyStatements { max_statements: 6 }
310
+
311
+ #
312
+ # 検証する
313
+ #
314
+ # @return [Array<String>] エラーメッセージ
315
+ #
174
316
  def validate
175
317
  failed = []
176
318
 
@@ -202,8 +344,24 @@ module Zakuro
202
344
  # Diffs 総差分
203
345
  #
204
346
  class Diffs
205
- attr_reader :index, :month, :solar_term, :days
347
+ # @return [Integer] 連番
348
+ attr_reader :index
349
+ # @return [Hash] 月差分
350
+ attr_reader :month
351
+ # @return [Hash] 二十四節気差分
352
+ attr_reader :solar_term
353
+ # @return [String] 日差分
354
+ attr_reader :days
206
355
 
356
+ #
357
+ # 初期化
358
+ #
359
+ # @param [Integer] index 連番
360
+ # @param [Hash] yaml_hash yaml
361
+ # @option yaml_hash [Hash] :month 月差分
362
+ # @option yaml_hash [Hash] :solar_term 二十四節気差分
363
+ # @option yaml_hash [String] :days 日差分
364
+ #
207
365
  def initialize(index:, yaml_hash: {})
208
366
  @index = index
209
367
  @month = Month.new(index: index, yaml_hash: yaml_hash['month'])
@@ -211,6 +369,13 @@ module Zakuro
211
369
  @days = yaml_hash['days']
212
370
  end
213
371
 
372
+ # :reek:TooManyStatements { max_statements: 6 }
373
+
374
+ #
375
+ # 検証する
376
+ #
377
+ # @return [Array<String>] エラーメッセージ
378
+ #
214
379
  def validate
215
380
  failed = []
216
381
 
@@ -234,8 +399,24 @@ module Zakuro
234
399
  # Month 月
235
400
  #
236
401
  class Month
237
- attr_reader :index, :number, :leaped, :days
402
+ # @return [Integer] 連番
403
+ attr_reader :index
404
+ # @return [Hash] 月差分
405
+ attr_reader :number
406
+ # @return [Hash] 閏有無差分
407
+ attr_reader :leaped
408
+ # @return [String] 中気差分
409
+ attr_reader :days
238
410
 
411
+ #
412
+ # 初期化
413
+ #
414
+ # @param [Integer] index 連番
415
+ # @param [Hash<String, Object>] yaml_hash yaml
416
+ # @option yaml_hash [Hash] :number 月差分
417
+ # @option yaml_hash [Hash] :leaped 閏有無差分
418
+ # @option yaml_hash [String] :days 中気差分
419
+ #
239
420
  def initialize(index:, yaml_hash: {})
240
421
  @index = index
241
422
  @number = Number.new(index: index, yaml_hash: yaml_hash['number'])
@@ -243,6 +424,11 @@ module Zakuro
243
424
  @days = Days.new(index: index, yaml_hash: yaml_hash['days'])
244
425
  end
245
426
 
427
+ #
428
+ # 検証する
429
+ #
430
+ # @return [Array<String>] エラーメッセージ
431
+ #
246
432
  def validate
247
433
  failed = []
248
434
 
@@ -261,14 +447,23 @@ module Zakuro
261
447
  # Direction 二十四節気(移動)
262
448
  #
263
449
  class Direction
264
- attr_reader :index, :source, :destination, :days
450
+ # @return [Integer] 連番
451
+ attr_reader :index
452
+ # @return [Source] 移動元
453
+ attr_reader :source
454
+ # @return [Destination] 移動先
455
+ attr_reader :destination
456
+ # @return [String] 中気差分
457
+ attr_reader :days
265
458
 
266
459
  #
267
460
  # 初期化
268
461
  #
269
- # @param [Source] source 二十四節気(移動元)
270
- # @param [Destination] destination 二十四節気(移動先)
271
- # @param [Integer] day 大余差分
462
+ # @param [Integer] index 連番
463
+ # @param [Hash<String, Object>] yaml_hash yaml
464
+ # @option yaml_hash [Hash] :calc 移動元
465
+ # @option yaml_hash [Hash] :actual 移動先
466
+ # @option yaml_hash [String] :days 中気差分
272
467
  #
273
468
  def initialize(index:, yaml_hash: {})
274
469
  @index = index
@@ -281,6 +476,13 @@ module Zakuro
281
476
  Types.positive?(str: @days)
282
477
  end
283
478
 
479
+ # :reek:TooManyStatements { max_statements: 6 }
480
+
481
+ #
482
+ # 検証する
483
+ #
484
+ # @return [Array<String>] エラーメッセージ
485
+ #
284
486
  def validate
285
487
  failed = []
286
488
 
@@ -300,8 +502,24 @@ module Zakuro
300
502
  # Source 二十四節気(移動元)
301
503
  #
302
504
  class Source
303
- attr_reader :diff_index, :index, :to, :zodiac_name
505
+ # @return [Integer] 連番
506
+ attr_reader :diff_index
507
+ # @return [String] 移動対象の二十四節気番号
508
+ attr_reader :index
509
+ # @return [String] 移動先の月初日
510
+ attr_reader :to
511
+ # @return [String] 十干十二支
512
+ attr_reader :zodiac_name
304
513
 
514
+ #
515
+ # 初期化
516
+ #
517
+ # @param [Integer] diff_index 連番
518
+ # @param [Hash<String, String>] yaml_hash yaml
519
+ # @option yaml_hash [String] :index 移動対象の二十四節気番号
520
+ # @option yaml_hash [String] :to 移動先の月初日
521
+ # @option yaml_hash [String] :zodiac_name 十干十二支
522
+ #
305
523
  def initialize(diff_index:, yaml_hash: {})
306
524
  @diff_index = diff_index
307
525
  @index = yaml_hash['index']
@@ -309,6 +527,13 @@ module Zakuro
309
527
  @zodiac_name = yaml_hash['zodiac_name']
310
528
  end
311
529
 
530
+ # :reek:TooManyStatements { max_statements: 6 }
531
+
532
+ #
533
+ # 検証する
534
+ #
535
+ # @return [Array<String>] エラーメッセージ
536
+ #
312
537
  def validate
313
538
  failed = []
314
539
 
@@ -340,8 +565,24 @@ module Zakuro
340
565
  # Destination 二十四節気(移動先)
341
566
  #
342
567
  class Destination
343
- attr_reader :diff_index, :index, :from, :zodiac_name
568
+ # @return [Integer] 連番
569
+ attr_reader :diff_index
570
+ # @return [String] 移動対象の二十四節気番号
571
+ attr_reader :index
572
+ # @return [String] 移動元の月初日
573
+ attr_reader :from
574
+ # @return [String] 十干十二支
575
+ attr_reader :zodiac_name
344
576
 
577
+ #
578
+ # 初期化
579
+ #
580
+ # @param [Integer] diff_index 連番
581
+ # @param [Hash<String, String>] yaml_hash yaml
582
+ # @option yaml_hash [String] :index 移動対象の二十四節気番号
583
+ # @option yaml_hash [String] :from 移動元の月初日
584
+ # @option yaml_hash [String] :zodiac_name 十干十二支
585
+ #
345
586
  def initialize(diff_index:, yaml_hash: {})
346
587
  @diff_index = diff_index
347
588
  @index = yaml_hash['index']
@@ -349,6 +590,13 @@ module Zakuro
349
590
  @zodiac_name = yaml_hash['zodiac_name']
350
591
  end
351
592
 
593
+ # :reek:TooManyStatements { max_statements: 6 }
594
+
595
+ #
596
+ # 検証する
597
+ #
598
+ # @return [Array<String>] エラーメッセージ
599
+ #
352
600
  def validate
353
601
  failed = []
354
602
 
@@ -383,14 +631,32 @@ module Zakuro
383
631
  class Number
384
632
  NAME = 'number'
385
633
 
386
- attr_reader :index, :calc, :actual
634
+ # @return [Integer] 連番
635
+ attr_reader :index
636
+ # @return [String] 計算
637
+ attr_reader :calc
638
+ # @return [String] 運用
639
+ attr_reader :actual
387
640
 
641
+ #
642
+ # 初期化
643
+ #
644
+ # @param [Integer] index 連番
645
+ # @param [Hash<String, String>] yaml_hash yaml
646
+ # @option yaml_hash [String] :calc 計算
647
+ # @option yaml_hash [String] :actual 運用
648
+ #
388
649
  def initialize(index:, yaml_hash: {})
389
650
  @index = index
390
651
  @calc = yaml_hash['calc']
391
652
  @actual = yaml_hash['actual']
392
653
  end
393
654
 
655
+ #
656
+ # 検証する
657
+ #
658
+ # @return [Array<String>] エラーメッセージ
659
+ #
394
660
  def validate
395
661
  failed = []
396
662
 
@@ -418,14 +684,32 @@ module Zakuro
418
684
  class Leaped
419
685
  NAME = 'leaped'
420
686
 
421
- attr_reader :index, :calc, :actual
687
+ # @return [Integer] 連番
688
+ attr_reader :index
689
+ # @return [String] 計算
690
+ attr_reader :calc
691
+ # @return [String] 運用
692
+ attr_reader :actual
422
693
 
694
+ #
695
+ # 初期化
696
+ #
697
+ # @param [Integer] index 連番
698
+ # @param [Hash<String, String>] yaml_hash yaml
699
+ # @option yaml_hash [String] :calc 計算
700
+ # @option yaml_hash [String] :actual 運用
701
+ #
423
702
  def initialize(index:, yaml_hash: {})
424
703
  @index = index
425
704
  @calc = yaml_hash['calc']
426
705
  @actual = yaml_hash['actual']
427
706
  end
428
707
 
708
+ #
709
+ # 検証する
710
+ #
711
+ # @return [Array<String>] エラーメッセージ
712
+ #
429
713
  def validate
430
714
  failed = []
431
715
 
@@ -448,19 +732,37 @@ module Zakuro
448
732
  end
449
733
 
450
734
  #
451
- # 月日数(大小)
735
+ # Days 月日数(大小)
452
736
  #
453
737
  class Days
454
738
  NAME = 'days'
455
739
 
456
- attr_reader :index, :calc, :actual
740
+ # @return [Integer] 連番
741
+ attr_reader :index
742
+ # @return [String] 計算
743
+ attr_reader :calc
744
+ # @return [String] 運用
745
+ attr_reader :actual
457
746
 
747
+ #
748
+ # 初期化
749
+ #
750
+ # @param [Integer] index 連番
751
+ # @param [Hash<String, String>] yaml_hash yaml
752
+ # @option yaml_hash [String] :calc 計算
753
+ # @option yaml_hash [String] :actual 運用
754
+ #
458
755
  def initialize(index:, yaml_hash: {})
459
756
  @index = index
460
757
  @calc = yaml_hash['calc']
461
758
  @actual = yaml_hash['actual']
462
759
  end
463
760
 
761
+ #
762
+ # 検証する
763
+ #
764
+ # @return [Array<String>] エラーメッセージ
765
+ #
464
766
  def validate
465
767
  failed = []
466
768
 
@@ -482,6 +784,8 @@ module Zakuro
482
784
  end
483
785
  end
484
786
 
787
+ # :reek:TooManyStatements { max_statements: 7 }
788
+
485
789
  def self.run(yaml_hash: {})
486
790
  failed = []
487
791
  yaml_hash.each_with_index do |history, index|