zakuro 0.6.0 → 0.6.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +16 -3
  3. data/VERSION +1 -1
  4. data/lib/zakuro/calculation/base/gengou.rb +4 -4
  5. data/lib/zakuro/calculation/base/linear_gengou.rb +6 -6
  6. data/lib/zakuro/calculation/era/gengou/internal/connector.rb +107 -0
  7. data/lib/zakuro/calculation/era/gengou/internal/counter.rb +214 -0
  8. data/lib/zakuro/calculation/era/gengou/internal/publisher.rb +104 -0
  9. data/lib/zakuro/calculation/era/gengou/internal/reserve/list.rb +244 -0
  10. data/lib/zakuro/calculation/era/gengou/internal/reserve/range.rb +193 -0
  11. data/lib/zakuro/calculation/{gengou → era/gengou}/internal/reserve.rb +6 -6
  12. data/lib/zakuro/calculation/{gengou → era/gengou}/scroll.rb +44 -95
  13. data/lib/zakuro/calculation/{version → era/version}/internal/crawler.rb +7 -7
  14. data/lib/zakuro/calculation/{version → era/version}/internal/range.rb +4 -4
  15. data/lib/zakuro/calculation/{version → era/version}/version.rb +3 -3
  16. data/lib/zakuro/calculation/monthly/month.rb +2 -2
  17. data/lib/zakuro/calculation/range/full_range.rb +18 -19
  18. data/lib/zakuro/calculation/range/operated_range.rb +3 -4
  19. data/lib/zakuro/calculation/specifier/internal/month.rb +84 -0
  20. data/lib/zakuro/calculation/specifier/multiple_day.rb +162 -0
  21. data/lib/zakuro/calculation/specifier/single_day.rb +2 -2
  22. data/lib/zakuro/calculation/summary/internal/operation.rb +98 -0
  23. data/lib/zakuro/calculation/summary/range.rb +120 -0
  24. data/lib/zakuro/calculation/summary/single.rb +45 -67
  25. data/lib/zakuro/condition.rb +14 -0
  26. data/lib/zakuro/era/japan/gengou/alignment/aligner.rb +106 -0
  27. data/lib/zakuro/era/japan/gengou/alignment/division.rb +165 -0
  28. data/lib/zakuro/era/japan/gengou/alignment/line.rb +156 -0
  29. data/lib/zakuro/era/japan/gengou/alignment/linear_gengou.rb +184 -0
  30. data/lib/zakuro/era/japan/gengou/alignment.rb +42 -0
  31. data/lib/zakuro/era/japan/gengou/resource/parser.rb +242 -0
  32. data/lib/zakuro/era/japan/gengou/resource/type.rb +292 -0
  33. data/lib/zakuro/era/japan/gengou/resource/validator.rb +346 -0
  34. data/lib/zakuro/era/japan/gengou/{yaml → resource/yaml}/set-001-until-south.yaml +2 -2
  35. data/lib/zakuro/era/japan/gengou/{yaml → resource/yaml}/set-002-from-north.yaml +2 -2
  36. data/lib/zakuro/era/japan/gengou/{yaml → resource/yaml}/set-003-modern.yaml +2 -2
  37. data/lib/zakuro/era/japan/gengou/resource.rb +32 -0
  38. data/lib/zakuro/era/japan/gengou.rb +34 -73
  39. data/lib/zakuro/era/japan/version.rb +18 -18
  40. data/lib/zakuro/merchant.rb +41 -3
  41. data/lib/zakuro/operation/month/validator.rb +1 -1
  42. data/lib/zakuro/result/result.rb +17 -0
  43. data/lib/zakuro/version/senmyou/README.md +11 -7
  44. metadata +32 -20
  45. data/lib/zakuro/calculation/gengou/internal/counter.rb +0 -129
  46. data/lib/zakuro/calculation/gengou/internal/reserve/interval.rb +0 -183
  47. data/lib/zakuro/calculation/gengou/internal/reserve/list.rb +0 -382
  48. data/lib/zakuro/era/japan/gengou/parser.rb +0 -237
  49. data/lib/zakuro/era/japan/gengou/type.rb +0 -285
  50. data/lib/zakuro/era/japan/gengou/validator.rb +0 -341
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../../../era/japan/version'
3
+ require_relative '../../../../era/japan/version'
4
4
  require_relative './range'
5
5
 
6
6
  # :nodoc:
@@ -17,12 +17,12 @@ module Zakuro
17
17
  # 暦の範囲を取得する
18
18
  #
19
19
  # @param [Integer] start_year 開始西暦年
20
- # @param [Integer] end_year 終了西暦年
20
+ # @param [Integer] last_year 終了西暦年
21
21
  #
22
22
  # @return [Array<Range>] 暦の範囲
23
23
  #
24
- def self.get(start_year:, end_year:)
25
- ranges = Japan::Version.ranges_with_year(start_year: start_year, end_year: end_year)
24
+ def self.get(start_year:, last_year:)
25
+ ranges = Japan::Version.ranges_with_year(start_year: start_year, last_year: last_year)
26
26
 
27
27
  result = []
28
28
 
@@ -32,13 +32,13 @@ module Zakuro
32
32
  range_start_year = range.start_year
33
33
  range_start_year = start_year if start_year > range.start_year
34
34
 
35
- range_end_year = range.end_year
36
- range_end_year = end_year if end_year < range.end_year
35
+ range_last_year = range.last_year
36
+ range_last_year = last_year if last_year < range.last_year
37
37
 
38
38
  result.push(
39
39
  Range.new(
40
40
  name: range.name, start_date: range.start_date.clone,
41
- start_year: range_start_year, end_year: range_end_year
41
+ start_year: range_start_year, last_year: range_last_year
42
42
  )
43
43
  )
44
44
  end
@@ -17,7 +17,7 @@ module Zakuro
17
17
  # @return [Integer] 開始西暦年
18
18
  attr_reader :start_year
19
19
  # @return [Integer] 終了西暦年
20
- attr_reader :end_year
20
+ attr_reader :last_year
21
21
 
22
22
  #
23
23
  # 初期化
@@ -25,13 +25,13 @@ module Zakuro
25
25
  # @param [String] name 暦名
26
26
  # @param [Western::Calendar] start_date 暦の開始日
27
27
  # @param [Integer] start_year 開始西暦年
28
- # @param [Integer] end_year 終了西暦年
28
+ # @param [Integer] last_year 終了西暦年
29
29
  #
30
- def initialize(name:, start_date:, start_year:, end_year:)
30
+ def initialize(name:, start_date:, start_year:, last_year:)
31
31
  @name = name
32
32
  @start_date = start_date
33
33
  @start_year = start_year
34
- @end_year = end_year
34
+ @last_year = last_year
35
35
  end
36
36
  end
37
37
  end
@@ -12,12 +12,12 @@ module Zakuro
12
12
  # 暦の範囲を取得する
13
13
  #
14
14
  # @param [Integer] start_year 開始西暦年
15
- # @param [Integer] end_year 終了西暦年
15
+ # @param [Integer] last_year 終了西暦年
16
16
  #
17
17
  # @return [Array<Range>] 暦の範囲
18
18
  #
19
- def self.get(start_year:, end_year:)
20
- Crawler.get(start_year: start_year, end_year: end_year)
19
+ def self.get(start_year:, last_year:)
20
+ Crawler.get(start_year: start_year, last_year: last_year)
21
21
  end
22
22
  end
23
23
  end
@@ -202,7 +202,7 @@ module Zakuro
202
202
  #
203
203
  # @return [Western::Calendar] 月の終了日
204
204
  #
205
- def end_date
205
+ def last_date
206
206
  return Western::Calendar.new if western_date.invalid?
207
207
 
208
208
  western_date.clone + days - 1
@@ -224,7 +224,7 @@ module Zakuro
224
224
 
225
225
  return false if date < start_date
226
226
 
227
- return false if date > end_date
227
+ return false if date > last_date
228
228
 
229
229
  true
230
230
  end
@@ -5,13 +5,12 @@ require_relative '../../version/context'
5
5
  require_relative '../../era/western/calendar'
6
6
  require_relative '../../output/logger'
7
7
 
8
- require_relative '../gengou/scroll'
8
+ require_relative '../era/gengou/scroll'
9
+ require_relative '../era/version/version'
9
10
 
10
11
  require_relative '../base/gengou'
11
12
  require_relative '../base/year'
12
13
 
13
- require_relative '../version/version'
14
-
15
14
  require_relative './transfer/year_boundary'
16
15
 
17
16
  require_relative './transfer/gengou_scroller'
@@ -42,7 +41,7 @@ module Zakuro
42
41
  # @return [Western::Calendar] 開始日
43
42
  attr_reader :start_date
44
43
  # @return [Western::Calendar] 終了日
45
- attr_reader :end_date
44
+ attr_reader :last_date
46
45
  # @return [MultiGengouRoller] 改元処理
47
46
  attr_reader :scroll
48
47
 
@@ -54,16 +53,16 @@ module Zakuro
54
53
  #
55
54
  # @param [Context] context 暦コンテキスト
56
55
  # @param [Western::Calendar] start_date 開始日
57
- # @param [Western::Calendar] end_date 終了日
56
+ # @param [Western::Calendar] last_date 終了日
58
57
  #
59
- def initialize(context:, start_date: Western::Calendar.new, end_date: Western::Calendar.new)
58
+ def initialize(context:, start_date: Western::Calendar.new, last_date: Western::Calendar.new)
60
59
  @start_date = start_date
61
- @end_date = end_date
60
+ @last_date = last_date
62
61
  return if invalid?
63
62
 
64
63
  # TODO: 現時点では使用していない。特定の暦を指定できるようになった状態で使用する
65
64
  @context = context
66
- @scroll = Gengou::Scroll.new(start_date: start_date, end_date: end_date)
65
+ @scroll = Gengou::Scroll.new(start_date: start_date, last_date: last_date)
67
66
  end
68
67
 
69
68
  #
@@ -104,19 +103,19 @@ module Zakuro
104
103
  result = []
105
104
 
106
105
  start_year = @scroll.western_start_year
107
- end_year = @scroll.western_end_year
106
+ last_year = @scroll.western_last_year
108
107
 
109
- versions = Version.get(start_year: start_year, end_year: end_year)
108
+ versions = Version.get(start_year: start_year, last_year: last_year)
110
109
 
111
110
  versions.each_with_index do |version, index|
112
111
  context = Context.new(version_name: version.name)
113
112
  start_year = version.start_year
114
- end_year = version.end_year
113
+ last_year = version.last_year
115
114
  # 最後の暦だけ1年足す(次の元号の開始年まで計算するケースあり)
116
- end_year += 1 if (index + 1) == versions.size
115
+ last_year += 1 if (index + 1) == versions.size
117
116
 
118
117
  years = boundary_resolved_ranges(
119
- context: context, start_year: start_year, end_year: end_year
118
+ context: context, start_year: start_year, last_year: last_year
120
119
  )
121
120
  result.concat(years)
122
121
  end
@@ -129,13 +128,13 @@ module Zakuro
129
128
  #
130
129
  # @param [Context] context 暦コンテキスト
131
130
  # @param [Integer] start_year 開始西暦年
132
- # @param [Integer] end_year 終了西暦年
131
+ # @param [Integer] last_year 終了西暦年
133
132
  #
134
133
  # @return [Array<Base::Year>] 年境界解決済みの範囲
135
134
  #
136
- def boundary_resolved_ranges(context:, start_year:, end_year:)
135
+ def boundary_resolved_ranges(context:, start_year:, last_year:)
137
136
  ranges = annual_ranges(
138
- context: context, start_year: start_year, end_year: end_year
137
+ context: context, start_year: start_year, last_year: last_year
139
138
  )
140
139
 
141
140
  Transfer::YearBoundary.get(
@@ -148,15 +147,15 @@ module Zakuro
148
147
  #
149
148
  # @param [Context] context 暦コンテキスト
150
149
  # @param [Integer] start_year 開始西暦年
151
- # @param [Integer] end_year 終了西暦年
150
+ # @param [Integer] last_year 終了西暦年
152
151
  #
153
152
  # @return [Array<Base::Year>] 年データ(冬至基準)
154
153
  #
155
- def annual_ranges(context:, start_year:, end_year:)
154
+ def annual_ranges(context:, start_year:, last_year:)
156
155
  annual_range = context.resolver.annual_range
157
156
 
158
157
  years = []
159
- (start_year..(end_year + 1)).each do |year|
158
+ (start_year..(last_year + 1)).each do |year|
160
159
  years.push(
161
160
  annual_range.get(
162
161
  context: context, western_year: year
@@ -29,14 +29,14 @@ module Zakuro
29
29
  #
30
30
  # @param [Context] context 暦コンテキスト
31
31
  # @param [Western::Calendar] start_date 開始日
32
- # @param [Western::Calendar] end_date 終了日
32
+ # @param [Western::Calendar] last_date 終了日
33
33
  # @param [Array<Year>] years 年データ(完全範囲)
34
34
  #
35
- def initialize(context:, start_date: Western::Calendar.new, end_date: Western::Calendar.new,
35
+ def initialize(context:, start_date: Western::Calendar.new, last_date: Western::Calendar.new,
36
36
  years: [])
37
37
  @context = context
38
38
  @years = years
39
- @scroll = Gengou::Scroll.new(start_date: start_date, end_date: end_date)
39
+ @scroll = Gengou::Scroll.new(start_date: start_date, last_date: last_date)
40
40
  @operated_solar_terms = OperatedSolarTerms.new(context: context, years: @years)
41
41
  @operated_solar_terms.create
42
42
  end
@@ -83,7 +83,6 @@ module Zakuro
83
83
  # @param [Array<OperatedYear>] operated_years 運用結果範囲
84
84
  #
85
85
  def self.move(operated_years:)
86
- # FIXME: この方式は完全ではない。範囲の1年前/1年後が必要
87
86
  move_into_next_year(operated_years: operated_years)
88
87
  move_into_last_year(operated_years: operated_years)
89
88
  end
@@ -0,0 +1,84 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../../output/response'
4
+
5
+ # :nodoc:
6
+ module Zakuro
7
+ # :nodoc:
8
+ module Calculation
9
+ # :nodoc:
10
+ module Specifier
11
+ #
12
+ # Month 特定月
13
+ #
14
+ class Month
15
+ # @return [Western::Calendar] 西暦開始日
16
+ attr_reader :start_date
17
+ # @return [Western::Calendar] 西暦終了日
18
+ attr_reader :last_date
19
+ # @return [Base::Year] 年
20
+ attr_reader :year
21
+ # @return [Monthly::Month] 月
22
+ attr_reader :month
23
+
24
+ #
25
+ # 初期化
26
+ #
27
+ # @param [Western::Calendar] start_date 西暦開始日
28
+ # @param [Western::Calendar] last_date 西暦終了日
29
+ # @param [Base::Year] year 年
30
+ # @param [Monthly::Month] month 月
31
+ #
32
+ def initialize(start_date:, last_date:, year:, month:)
33
+ @start_date = start_date
34
+ @last_date = last_date
35
+ @year = year
36
+ @month = month
37
+ end
38
+
39
+ #
40
+ # 取得する
41
+ #
42
+ # @return [Array<Result::Data::SingleDay>] 1日データ
43
+ #
44
+ def get
45
+ result = []
46
+ first_date = @month.western_date.clone
47
+
48
+ (0..@month.days).each do |index|
49
+ current_date = first_date.clone + index
50
+
51
+ next unless include?(date: current_date)
52
+
53
+ day = Output::Response::SingleDay.save_single_day(
54
+ param: Output::Response::SingleDay::Param.new(
55
+ year: @year, month: @month,
56
+ date: current_date, days: index
57
+ )
58
+ )
59
+
60
+ result.push(day)
61
+ end
62
+
63
+ result
64
+ end
65
+
66
+ #
67
+ # 含まれるか
68
+ #
69
+ # @param [Western::Calendar] date 西暦日
70
+ #
71
+ # @return [True] 含む
72
+ # @return [False] 含まない
73
+ #
74
+ def include?(date:)
75
+ return false if date < @start_date
76
+
77
+ return false if date > @last_date
78
+
79
+ true
80
+ end
81
+ end
82
+ end
83
+ end
84
+ end
@@ -0,0 +1,162 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../base/year'
4
+
5
+ require_relative '../../era/western/calendar'
6
+ require_relative '../../output/response'
7
+ require_relative '../../output/logger'
8
+
9
+ require_relative './internal/month'
10
+
11
+ # :nodoc:
12
+ module Zakuro
13
+ # :nodoc:
14
+ module Calculation
15
+ # :nodoc:
16
+ module Specifier
17
+ #
18
+ # MultipleDay 複数日検索
19
+ #
20
+ module MultipleDay
21
+ # @return [Output::Logger] ロガー
22
+ LOGGER = Output::Logger.new(location: 'specifier')
23
+
24
+ #
25
+ # 取得する
26
+ #
27
+ # @param [Array<Base::Year>] years 範囲
28
+ # @param [Western::Calendar] start_date 西暦開始日
29
+ # @param [Western::Calendar] last_date 西暦終了日
30
+ #
31
+ # @return [Array<Result::Data::SingleDay>] 期間検索結果(和暦日)
32
+ #
33
+ def self.get(years: [], start_date: Western::Calendar.new, last_date: Western::Calendar.new)
34
+ months = specify(years: years, start_date: start_date, last_date: last_date)
35
+
36
+ result = []
37
+ months.each do |month|
38
+ result |= month.get
39
+ end
40
+
41
+ result
42
+ end
43
+
44
+ #
45
+ # 年を特定する
46
+ #
47
+ # @param [Array<Year>] years 範囲
48
+ # @param [Western::Calendar] start_date 西暦開始日
49
+ # @param [Western::Calendar] last_date 西暦終了日
50
+ #
51
+ # @return [Array<Month>] 特定月
52
+ #
53
+ def self.specify(years: [], start_date: Western::Calendar.new,
54
+ last_date: Western::Calendar.new)
55
+ result = []
56
+ years.each do |year|
57
+ result |= specify_month(
58
+ year: year, start_date: start_date, last_date: last_date
59
+ )
60
+ end
61
+
62
+ result
63
+ end
64
+ private_class_method :specify
65
+
66
+ # :reek:TooManyStatements { max_statements: 7 }
67
+
68
+ #
69
+ # 月を特定する
70
+ #
71
+ # @param [Year] year 年
72
+ # @param [Western::Calendar] start_date 西暦開始日
73
+ # @param [Western::Calendar] last_date 西暦終了日
74
+ #
75
+ # @return [Month] 対象月
76
+ #
77
+ def self.specify_month(year:, start_date: Western::Calendar.new,
78
+ last_date: Western::Calendar.new)
79
+ months = year.months
80
+
81
+ specify_months = []
82
+ months.each do |month|
83
+ next unless include?(month: month, start_date: start_date, last_date: last_date)
84
+
85
+ monthly_start_date = month.western_date.clone
86
+ monthly_last_date = month.last_date.clone
87
+
88
+ monthly_start_date = start_date.clone if start_date > monthly_start_date
89
+
90
+ monthly_last_date = last_date.clone if last_date < monthly_last_date
91
+
92
+ specify_months.push(
93
+ Month.new(year: year, month: month,
94
+ start_date: monthly_start_date, last_date: monthly_last_date)
95
+ )
96
+ end
97
+
98
+ specify_months
99
+ end
100
+ private_class_method :specify_month
101
+
102
+ #
103
+ # 月が範囲に含まれるか
104
+ #
105
+ # @param [Monthly::Month] month 月
106
+ # @param [Western::Calendar] start_date 西暦開始日
107
+ # @param [Western::Calendar] last_date 西暦終了日
108
+ #
109
+ # @return [True] 含む
110
+ # @return [False] 含まない
111
+ #
112
+ def self.include?(month:, start_date:, last_date:)
113
+ monthly_start_date = month.western_date.clone
114
+ monthly_last_date = month.last_date.clone
115
+
116
+ return false if monthly_start_date.invalid?
117
+
118
+ return false if monthly_last_date.invalid?
119
+
120
+ return false if under(monthly_start_date: monthly_start_date,
121
+ start_date: start_date, last_date: last_date)
122
+
123
+ return false if over(monthly_last_date: monthly_last_date,
124
+ start_date: start_date, last_date: last_date)
125
+
126
+ true
127
+ end
128
+ private_class_method :include?
129
+
130
+ #
131
+ # 範囲が月より前にあるか
132
+ #
133
+ # @param [Western::Calendar] monthly_start_date 月初日
134
+ # @param [Western::Calendar] start_date 西暦開始日
135
+ # @param [Western::Calendar] last_date 西暦終了日
136
+ #
137
+ # @return [True] 前にある
138
+ # @return [False] 前にない
139
+ #
140
+ def self.under(monthly_start_date:, start_date:, last_date:)
141
+ start_date < monthly_start_date && last_date < monthly_start_date
142
+ end
143
+ private_class_method :under
144
+
145
+ #
146
+ # 範囲が月より後にあるか
147
+ #
148
+ # @param [Western::Calendar] monthly_start_date 月末日
149
+ # @param [Western::Calendar] start_date 西暦開始日
150
+ # @param [Western::Calendar] last_date 西暦終了日
151
+ #
152
+ # @return [True] 後にある
153
+ # @return [False] 後にない
154
+ #
155
+ def self.over(monthly_last_date:, start_date:, last_date:)
156
+ start_date > monthly_last_date && last_date > monthly_last_date
157
+ end
158
+ private_class_method :over
159
+ end
160
+ end
161
+ end
162
+ end
@@ -63,10 +63,10 @@ module Zakuro
63
63
  #
64
64
  # 月を特定する
65
65
  #
66
- # @param [Year] year 年
66
+ # @param [Base::Year] year 年
67
67
  # @param [Western::Calendar] date 西暦日
68
68
  #
69
- # @return [Month] 対象月
69
+ # @return [Base::Month] 対象月
70
70
  #
71
71
  def self.specify_month(year:, date:)
72
72
  months = year.months
@@ -0,0 +1,98 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../../operation/operation'
4
+
5
+ # :nodoc:
6
+ module Zakuro
7
+ # :nodoc:
8
+ module Calculation
9
+ # :nodoc:
10
+ module Summary
11
+ #
12
+ # Operation 運用情報
13
+ #
14
+ module Operation
15
+ #
16
+ # 運用情報を生成する
17
+ #
18
+ # @param [Result::Data::SingleDay] calc_date 和暦日(計算値)
19
+ #
20
+ # @return [Result::Operation::Bundle] 運用情報
21
+ #
22
+ def self.create(calc_date: Result::Data::SingleDay.new)
23
+ first_day = calc_date.month.first_day.western_date
24
+ operation_history = Zakuro::Operation.specify_history(western_date: first_day)
25
+
26
+ operation_month = create_operation_month(operation_history: operation_history)
27
+
28
+ Result::Operation::Bundle.new(
29
+ operated: !operation_history.invalid?, month: operation_month, original: calc_date
30
+ )
31
+ end
32
+
33
+ #
34
+ # 月履歴集約情報を生成する
35
+ #
36
+ # @param [Operation::MonthHistory] operation_history 変更履歴(月)
37
+ #
38
+ # @return [Result::Operation::Month::Bundle] 月履歴集約情報
39
+ #
40
+ def self.create_operation_month(operation_history: Operation::MonthHistory.new)
41
+ return Result::Operation::Month::Bundle.new if operation_history.invalid?
42
+
43
+ parent_operation_history = Zakuro::Operation.specify_history_by_id(
44
+ id: operation_history.parent_id
45
+ )
46
+
47
+ Result::Operation::Month::Bundle.new(
48
+ current: create_operation_month_history(operation_history: operation_history),
49
+ parent: create_operation_month_history(operation_history: parent_operation_history)
50
+ )
51
+ end
52
+ private_class_method :create_operation_month
53
+
54
+ #
55
+ # 月別履歴情報を生成する
56
+ #
57
+ # @param [Operation::MonthHistory] operation_history 変更履歴(月)
58
+ #
59
+ # @return [Result::Operation::Month::History] 月別履歴情報
60
+ #
61
+ def self.create_operation_month_history(operation_history: Operation::MonthHistory.new)
62
+ return Result::Operation::Month::History.new if operation_history.invalid?
63
+
64
+ annotations = create_annnotations(operation_history: operation_history)
65
+
66
+ reference = operation_history.reference
67
+ Result::Operation::Month::History.new(
68
+ id: operation_history.id, western_date: operation_history.western_date.format,
69
+ page: reference.page, number: reference.number, annotations: annotations
70
+ )
71
+ end
72
+ private_class_method :create_operation_month_history
73
+
74
+ #
75
+ # 注釈情報を生成する
76
+ #
77
+ # @param [Operation::MonthHistory] operation_history 変更履歴(月)
78
+ #
79
+ # @return [Array<Result::Operation::Month::Annotation>] 注釈
80
+ #
81
+ def self.create_annnotations(operation_history: Operation::MonthHistory.new)
82
+ annotations = []
83
+ operation_history.annotations.each do |annotation|
84
+ annotations.push(
85
+ Result::Operation::Month::Annotation.new(
86
+ description: annotation.description,
87
+ note: annotation.note
88
+ )
89
+ )
90
+ end
91
+
92
+ annotations
93
+ end
94
+ private_class_method :create_annnotations
95
+ end
96
+ end
97
+ end
98
+ end