zakuro 0.9.1 → 0.9.3

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.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +20 -18
  3. data/VERSION +1 -1
  4. data/doc/condition.md +3 -1
  5. data/doc/dropped_date.md +25 -0
  6. data/doc/expection.md +11 -0
  7. data/doc/operation/csv/month.csv +5 -5
  8. data/doc/operation/operation.xlsx +0 -0
  9. data/doc/vanished_date.md +26 -0
  10. data/lib/zakuro/calculation/cycle/abstract_remainder.rb +26 -0
  11. data/lib/zakuro/calculation/cycle/abstract_solar_term.rb +1 -1
  12. data/lib/zakuro/calculation/era/gengou/abstract_scroll.rb +2 -2
  13. data/lib/zakuro/calculation/era/gengou/dated_scroll.rb +6 -2
  14. data/lib/zakuro/calculation/era/gengou/internal/counter.rb +5 -5
  15. data/lib/zakuro/calculation/era/gengou/internal/reserve/abstract_list.rb +12 -5
  16. data/lib/zakuro/calculation/era/gengou/internal/reserve/abstract_range.rb +14 -8
  17. data/lib/zakuro/calculation/era/gengou/internal/reserve/dated_list.rb +3 -2
  18. data/lib/zakuro/calculation/era/gengou/internal/reserve/dated_range.rb +4 -2
  19. data/lib/zakuro/calculation/era/gengou/internal/reserve/named_list.rb +5 -3
  20. data/lib/zakuro/calculation/era/gengou/internal/reserve/named_range.rb +10 -5
  21. data/lib/zakuro/calculation/era/gengou/named_scroll.rb +5 -2
  22. data/lib/zakuro/calculation/monthly/initialized_month.rb +4 -2
  23. data/lib/zakuro/calculation/monthly/meta/all_solar_term.rb +64 -0
  24. data/lib/zakuro/calculation/monthly/meta/meta_collector.rb +80 -0
  25. data/lib/zakuro/calculation/monthly/meta.rb +60 -0
  26. data/lib/zakuro/calculation/monthly/month.rb +60 -5
  27. data/lib/zakuro/calculation/monthly/operated_month.rb +6 -3
  28. data/lib/zakuro/calculation/option/dropped_date/location.rb +12 -23
  29. data/lib/zakuro/calculation/option/vanished_date/location.rb +9 -2
  30. data/lib/zakuro/calculation/range/abstract_full_range.rb +19 -2
  31. data/lib/zakuro/calculation/range/abstract_operation_range.rb +20 -2
  32. data/lib/zakuro/calculation/range/dated_full_range.rb +3 -1
  33. data/lib/zakuro/calculation/range/dated_operation_range.rb +3 -1
  34. data/lib/zakuro/calculation/range/medieval_annual_range.rb +1 -1
  35. data/lib/zakuro/calculation/range/named_full_range.rb +3 -1
  36. data/lib/zakuro/calculation/range/named_operation_range.rb +3 -1
  37. data/lib/zakuro/calculation/range/transfer/gengou_scroller.rb +2 -1
  38. data/lib/zakuro/calculation/range/transfer/year_boundary.rb +10 -8
  39. data/lib/zakuro/calculation/stella/solar/abstract_average.rb +8 -34
  40. data/lib/zakuro/calculation/summary/internal/option.rb +51 -25
  41. data/lib/zakuro/calculation/summary/western/specifier/single_day.rb +1 -1
  42. data/lib/zakuro/era/japan/calendar.rb +2 -2
  43. data/lib/zakuro/era/japan/gengou/alignment/linear_gengou.rb +1 -1
  44. data/lib/zakuro/era/japan/gengou/alignment.rb +14 -2
  45. data/lib/zakuro/era/japan/gengou/resource/parser.rb +83 -25
  46. data/lib/zakuro/era/japan/gengou/resource/type.rb +81 -26
  47. data/lib/zakuro/era/japan/gengou/resource/validator.rb +102 -23
  48. data/lib/zakuro/era/japan/gengou/resource/yaml/set-001-until-south.yaml +1123 -375
  49. data/lib/zakuro/era/japan/gengou/resource/yaml/set-002-from-north.yaml +487 -163
  50. data/lib/zakuro/era/japan/gengou/resource/yaml/set-003-modern.yaml +30 -10
  51. data/lib/zakuro/era/japan/gengou/resource.rb +16 -0
  52. data/lib/zakuro/era/japan/gengou.rb +7 -4
  53. data/lib/zakuro/era/western/calendar.rb +5 -11
  54. data/lib/zakuro/era/western/date_text.rb +40 -0
  55. data/lib/zakuro/gateway/locale/date.rb +2 -2
  56. data/lib/zakuro/operation/month/validator.rb +7 -1
  57. data/lib/zakuro/operation/yaml/month.yaml +15 -15
  58. data/lib/zakuro/output/logger.rb +21 -3
  59. data/lib/zakuro/tools/remainder_comparer.rb +97 -0
  60. metadata +7 -2
@@ -1,5 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative '../../monthly/meta/meta_collector'
4
+
5
+ require_relative '../../../tools/remainder_comparer'
6
+
3
7
  # :nodoc:
4
8
  module Zakuro
5
9
  # :nodoc:
@@ -42,36 +46,6 @@ module Zakuro
42
46
  annual_range
43
47
  end
44
48
 
45
- # :reek:TooManyStatements { max_statements: 7 }
46
-
47
- class << self
48
- #
49
- # 月内(当月朔日から当月末日(来月朔日の前日)の間)に二十四節気があるか
50
- # @note 大余60で一巡するため 以下2パターンがある
51
- # * current_month <= next_month : (二十四節気) >= current_month && (二十四節気) < next_month
52
- # * current_month > next_month : (二十四節気) >= current_month || (二十四節気) < next_month
53
- #
54
- # @param [Cycle::AbstractRemainder] solar_term 二十四節気
55
- # @param [Cycle::AbstractRemainder] current_month 月初
56
- # @param [Cycle::AbstractRemainder] next_month 月末
57
- #
58
- # @return [True] 対象の二十四節気がある
59
- # @return [False] 対象の二十四節気がない
60
- #
61
- def in_solar_term?(solar_term:, current_month:, next_month:)
62
- # 大余で比較する
63
- target_time = solar_term.day
64
- current_month_time = current_month.day
65
- next_month_time = next_month.day
66
- current_month_over = (target_time >= current_month_time)
67
- next_month_under = (target_time < next_month_time)
68
-
69
- return current_month_over && next_month_under if current_month_time <= next_month_time
70
-
71
- current_month_over || next_month_under
72
- end
73
- end
74
-
75
49
  private
76
50
 
77
51
  # :reek:TooManyStatements { max_statements: 8 }
@@ -87,10 +61,10 @@ module Zakuro
87
61
  # * 最大試行回数:4回(設定なし => 設定あり => 設定あり => 設定なし)
88
62
  # * 閏月は1回しか設定しない
89
63
  # * 最大2回設定する(中気・節気)
90
- (0..3).each do |_index|
91
- in_range = self.class.in_solar_term?(
92
- solar_term: solar_term.remainder, current_month: current_month.remainder,
93
- next_month: next_month.remainder
64
+ 4.times.each do |_index|
65
+ in_range = Tools::RemainderComparer.in_range?(
66
+ target: solar_term.remainder, start: current_month.remainder,
67
+ last: next_month.remainder
94
68
  )
95
69
 
96
70
  # 範囲外
@@ -34,17 +34,32 @@ module Zakuro
34
34
  context = month.context
35
35
 
36
36
  if context.option.dropped_date?
37
+ solar_term = month.solar_term_by_day(day: day.remainder.day)
38
+
37
39
  remainder = day.remainder
38
- solar_terms = month.solar_terms
39
40
  option = dropped_date(
40
- context: context, remainder: remainder, solar_terms: solar_terms
41
+ context: context, remainder: remainder, solar_term: solar_term
41
42
  )
42
43
  options[Context::Option::DROPPED_DATE_KEY] = option
43
44
  end
44
45
 
46
+ # TODO: refactor
45
47
  if context.option.vanished_date?
46
48
  remainder = day.remainder
47
49
  average_remainder = month.first_day.average_remainder
50
+ # p "remainder: #{remainder.format}"
51
+ # p "last_average_remainder: #{month.meta.last_average_remainder.format}"
52
+
53
+ if day.number == 1
54
+ option = vanished_date(
55
+ context: context, remainder: remainder,
56
+ average_remainder: month.meta.last_average_remainder
57
+ )
58
+ options[Context::Option::VANISHED_DATE_KEY] = option
59
+
60
+ return options if option.matched
61
+ end
62
+
48
63
  option = vanished_date(
49
64
  context: context, remainder: remainder, average_remainder: average_remainder
50
65
  )
@@ -61,40 +76,43 @@ module Zakuro
61
76
  #
62
77
  # @param [Context::Context] context 暦コンテキスト
63
78
  # @param [Cycle::AbstractRemainder] remainder 当日和暦日
64
- # @param [Array<Cycle::AbstractSolarTerm>] solar_terms 二十四節気
79
+ # @param [Cycle::AbstractSolarTerm] solar_terms 二十四節気
65
80
  #
66
81
  # @return [Result::Data::Option::DroppedDate::Option] 没日
67
82
  #
68
- def dropped_date(context:, remainder:, solar_terms:)
83
+ def dropped_date(context:, remainder:, solar_term:)
69
84
  option = Result::Data::Option::DroppedDate::Option.new
70
85
 
71
86
  return option if remainder.invalid?
72
87
 
73
88
  location = Calculation::Option::DroppedDate::Location.new(
74
- context: context, solar_terms: solar_terms
89
+ context: context, solar_term: solar_term
75
90
  )
76
91
 
92
+ return option if location.invalid?
93
+
77
94
  return option unless location.exist?
78
95
 
79
96
  dropped_date = location.get
80
97
 
81
- return option unless remainder.day == dropped_date.day
82
-
83
- dropped_date_option(location: location)
98
+ dropped_date_option(
99
+ matched: remainder.day == dropped_date.day, location: location
100
+ )
84
101
  end
85
102
 
86
103
  #
87
104
  # 没日オプション値を生成する
88
105
  #
106
+ # @param [True, False] matched 没日有無
89
107
  # @param [Calculation::Option::DroppedDate::Location] location 没日位置
90
108
  #
91
109
  # @return [Result::Data::Option::DroppedDate::Option] 没日オプション値
92
110
  #
93
- def dropped_date_option(location:)
111
+ def dropped_date_option(matched:, location:)
94
112
  dropped_date = location.get
95
113
  solar_term = location.solar_term
96
114
  Result::Data::Option::DroppedDate::Option.new(
97
- matched: true,
115
+ matched: matched,
98
116
  calculation: Result::Data::Option::DroppedDate::Calculation.new(
99
117
  remainder: dropped_date.format,
100
118
  solar_term: Result::Data::SolarTerm.new(
@@ -108,41 +126,49 @@ module Zakuro
108
126
  #
109
127
  # 滅日を求める
110
128
  #
111
- # @param [<Type>] context <description>
112
- # @param [<Type>] remainder <description>
113
- # @param [<Type>] average_remainder <description>
129
+ # @param [Context::Context] context 暦コンテキスト
130
+ # @param [Cycle::AbstractRemainder] remainder 当日和暦日
131
+ # @param [Cycle::AbstractRemainder] average_remainder 経朔
114
132
  #
115
- # @return [<Type>] <description>
133
+ # @return [Result::Data::Option::VanishedDate::Option] 滅日オプション値
116
134
  #
117
135
  def vanished_date(context:, remainder:, average_remainder:)
118
- option = Result::Data::Option::VanishedDate::Option.new
119
-
120
- return option if average_remainder.invalid?
136
+ return Result::Data::Option::VanishedDate::Option.new if average_remainder.invalid?
121
137
 
122
138
  location = Calculation::Option::VanishedDate::Location.new(
123
139
  context: context, average_remainder: average_remainder
124
140
  )
125
141
 
126
- return option unless location.exist?
142
+ return Result::Data::Option::VanishedDate::Option.new if location.invalid?
127
143
 
128
- vanished_date = location.get
144
+ unless location.exist?
145
+ # 結果確認のため経朔だけは設定する
146
+ return Result::Data::Option::VanishedDate::Option.new(
147
+ calculation: Result::Data::Option::VanishedDate::Calculation.new(
148
+ average_remainder: average_remainder
149
+ )
150
+ )
151
+ end
129
152
 
130
- return option unless remainder.day == vanished_date.day
153
+ vanished_date = location.get
131
154
 
132
- vanished_date_option(location: location)
155
+ vanished_date_option(
156
+ matched: remainder.day == vanished_date.day, location: location
157
+ )
133
158
  end
134
159
 
135
160
  #
136
161
  # 滅日オプション値を生成する
137
162
  #
138
- # @param [Calculation::Option::DroppedDate::Location] location 滅日位置
163
+ # @param [True, False] matched 滅日有無
164
+ # @param [Calculation::Option::VanishedDate::Location] location 滅日位置
139
165
  #
140
- # @return [Result::Data::Option::DroppedDate::Option] 滅日オプション値
166
+ # @return [Result::Data::Option::VanishedDate::Option] 滅日オプション値
141
167
  #
142
- def vanished_date_option(location:)
168
+ def vanished_date_option(matched:, location:)
143
169
  vanished_date = location.get
144
170
  Result::Data::Option::VanishedDate::Option.new(
145
- matched: true,
171
+ matched: matched,
146
172
  calculation: Result::Data::Option::VanishedDate::Calculation.new(
147
173
  remainder: vanished_date.format,
148
174
  average_remainder: location.average_remainder
@@ -30,7 +30,7 @@ module Zakuro
30
30
  #
31
31
  # 取得する
32
32
  #
33
- # @param [Array<Calculation::Base::Year>] years 範囲
33
+ # @param [Array<Base::Year>] years 範囲
34
34
  # @param [Western::Calendar] date 西暦日
35
35
  #
36
36
  # @return [Result::Data::SingleDay] 和暦日
@@ -98,7 +98,7 @@ module Zakuro
98
98
  # @return [Calendar] 年月日情報(和暦)
99
99
  #
100
100
  def parse(regex: FORMAT, text: '')
101
- return Calendar.new unless valid_date_string(regex: regex, text: text)
101
+ return Calendar.new unless valid_date_text(regex: regex, text: text)
102
102
 
103
103
  matched = text.match(regex)
104
104
 
@@ -120,7 +120,7 @@ module Zakuro
120
120
  # @return [True] 正しい
121
121
  # @return [True] 正しくない
122
122
  #
123
- def valid_date_string(regex: FORMAT, text: '')
123
+ def valid_date_text(regex: FORMAT, text: '')
124
124
  return false unless text
125
125
 
126
126
  matched = text.match(regex)
@@ -175,7 +175,7 @@ module Zakuro
175
175
  # @return [Western::Calendar]設定された元号の開始日
176
176
  #
177
177
  def native_start_date
178
- gengou.both_start_date.western
178
+ gengou.start_date.western
179
179
  end
180
180
 
181
181
  #
@@ -23,6 +23,9 @@ module Zakuro
23
23
  # @return [Aligner] 整列結果
24
24
  SUMMARY = Aligner.new(resources: Resource::LIST)
25
25
 
26
+ # @return [Aligner] 整列結果(運用値)
27
+ OPERATED_SUMMARY = Aligner.new(resources: Resource::OPERATED_LIST)
28
+
26
29
  class << self
27
30
  #
28
31
  # 指定した範囲内の元号を取得する
@@ -30,11 +33,17 @@ module Zakuro
30
33
  # @param [Integer] line 行
31
34
  # @param [Western::Calendar] start_date 開始日
32
35
  # @param [Western::Calendar] last_date 終了日
36
+ # @param [True, False] operated 運用値設定
33
37
  #
34
38
  # @return [Array<LinearGengou>] 元号
35
39
  #
36
40
  def get(line: FIRST_LINE,
37
- start_date: Western::Calendar.new, last_date: Western::Calendar.new)
41
+ start_date: Western::Calendar.new, last_date: Western::Calendar.new,
42
+ operated: false)
43
+
44
+ if operated
45
+ return OPERATED_SUMMARY.get(line: line, start_date: start_date, last_date: last_date)
46
+ end
38
47
 
39
48
  SUMMARY.get(line: line, start_date: start_date, last_date: last_date)
40
49
  end
@@ -44,10 +53,13 @@ module Zakuro
44
53
  #
45
54
  # @param [Integer] line 行
46
55
  # @param [String] name 元号名
56
+ # @param [True, False] operated 運用値設定
47
57
  #
48
58
  # @return [Array<LinearGengou>] 元号
49
59
  #
50
- def get_by_name(line: FIRST_LINE, name:)
60
+ def get_by_name(line: FIRST_LINE, name:, operated: false)
61
+ return OPERATED_SUMMARY.get_by_name(line: line, name: name) if operated
62
+
51
63
  SUMMARY.get_by_name(line: line, name: name)
52
64
  end
53
65
  end
@@ -30,9 +30,11 @@ module Zakuro
30
30
  # @return [String] 元号名
31
31
  attr_reader :name
32
32
  # @return [Hash<String, String>] 開始年
33
- attr_reader :both_start_year
33
+ attr_reader :start_year
34
34
  # @return [Hash<String, String>] 開始日
35
- attr_reader :both_start_date
35
+ attr_reader :start_date
36
+ # @return [True, False] 運用値
37
+ attr_reader :operated
36
38
 
37
39
  #
38
40
  # 初期化
@@ -40,11 +42,12 @@ module Zakuro
40
42
  # @param [Hash<String, Strin>] hash 元号情報
41
43
  # @param [Integer] index (元号セット内での)元号の要素位置
42
44
  #
43
- def initialize(hash:, index:)
45
+ def initialize(hash:, index:, operated: false)
44
46
  @index = index
45
47
  @name = hash['name']
46
- @both_start_year = hash['start_year']
47
- @both_start_date = hash['start_date']
48
+ @start_year = hash['start_year']
49
+ @start_date = hash['start_date']
50
+ @operated = operated
48
51
  end
49
52
 
50
53
  #
@@ -53,11 +56,11 @@ module Zakuro
53
56
  # @return [Gengou] 元号情報
54
57
  #
55
58
  def create
56
- start_year = Both::YearParser.new(hash: both_start_year).create
57
- start_date = Both::DateParser.new(hash: both_start_date).create
59
+ year = Both::YearParser.new(hash: start_year).create
60
+ date = SwitchDateParser.new(hash: start_date, operated: operated).create
58
61
 
59
- Gengou.new(name: name, both_start_year: start_year,
60
- both_start_date: start_date)
62
+ Gengou.new(name: name, start_year: year,
63
+ start_date: date)
61
64
  end
62
65
  end
63
66
 
@@ -70,23 +73,27 @@ module Zakuro
70
73
  # @return [String] 元号セット名
71
74
  attr_reader :name
72
75
  # @return [Hash<String, String>] 終了年
73
- attr_reader :both_last_year
76
+ attr_reader :last_year
74
77
  # @return [Hash<String, String>] 終了日
75
- attr_reader :both_last_date
78
+ attr_reader :last_date
76
79
  # @return [Array<Hash<String, String>>] 元号情報
77
80
  attr_reader :list
81
+ # @return [True, False] 運用値
82
+ attr_reader :operated
78
83
 
79
84
  #
80
85
  # 初期化
81
86
  #
82
87
  # @param [Hash<String, Object>] hash 元号セット情報
88
+ # @param [True, False] operated 運用値設定
83
89
  #
84
- def initialize(hash:)
90
+ def initialize(hash:, operated: false)
85
91
  @id = hash['id']
86
92
  @name = hash['name']
87
- @both_last_year = hash['last_year']
88
- @both_last_date = hash['last_date']
93
+ @last_year = hash['last_year']
94
+ @last_date = hash['last_date']
89
95
  @list = hash['list']
96
+ @operated = operated
90
97
  end
91
98
 
92
99
  #
@@ -95,10 +102,10 @@ module Zakuro
95
102
  # @return [Set] 元号セット情報
96
103
  #
97
104
  def create
98
- last_date = Both::DateParser.new(hash: both_last_date).create
105
+ date = SwitchDateParser.new(hash: last_date, operated: operated).create
99
106
  list = create_list
100
107
  Set.new(
101
- id: id, name: name, both_last_date: last_date, list: list
108
+ id: id, name: name, last_date: date, list: list
102
109
  )
103
110
  end
104
111
 
@@ -112,7 +119,9 @@ module Zakuro
112
119
  def create_list
113
120
  result = []
114
121
  list.each_with_index do |li, index|
115
- gengou = GengouParser.new(hash: li, index: index).create
122
+ gengou = GengouParser.new(
123
+ hash: li, index: index, operated: operated
124
+ ).create
116
125
  next_index = index + 1
117
126
  gengou = calc_last_date_on_gengou_data(next_index: next_index,
118
127
  gengou: gengou)
@@ -136,11 +145,15 @@ module Zakuro
136
145
  return gengou
137
146
  end
138
147
  next_item = list[next_index]
148
+ next_start_date = SwitchDateParser.new(
149
+ hash: next_item['start_date'], operated: operated
150
+ ).create
151
+
139
152
  gengou.convert_next_start_year_to_last_year(
140
153
  next_start_year: next_item['start_year']['western']
141
154
  )
142
155
  gengou.convert_next_start_date_to_last_date(
143
- next_start_date: next_item['start_date']['western']
156
+ next_start_date: next_start_date.western
144
157
  )
145
158
  gengou
146
159
  end
@@ -153,9 +166,50 @@ module Zakuro
153
166
  # @param [GengouParser] gengou 元号
154
167
  #
155
168
  def last_gengou_data(gengou:)
156
- gengou.write_last_year(last_year: both_last_year['western'])
157
- last_date = Western::Calendar.parse(text: both_last_date['western'])
158
- gengou.write_last_date(last_date: last_date)
169
+ gengou.write_last_year(last_year: last_year['western'])
170
+
171
+ date = SwitchDateParser.new(hash: last_date, operated: operated).create
172
+
173
+ gengou.write_last_date(last_date: date.western)
174
+ end
175
+ end
176
+
177
+ #
178
+ # SwitchDateParser 切替日(運用/計算)
179
+ #
180
+ class SwitchDateParser
181
+ # @return [Hash<String, Strin>] 計算値
182
+ attr_reader :calculation
183
+ # @return [Hash<String, Strin>] 運用値
184
+ attr_reader :operation
185
+ # @return [True, False] 運用値
186
+ attr_reader :operated
187
+
188
+ #
189
+ # 初期化
190
+ #
191
+ # @param [Hash<String, Strin>] hash 切替日(運用/計算)
192
+ # @param [True, False] operated 運用値設定
193
+ #
194
+ def initialize(hash:, operated: false)
195
+ @calculation = hash['calculation']
196
+ @operation = hash['operation']
197
+ @operated = operated
198
+ end
199
+
200
+ #
201
+ # 切替日(運用/計算)情報を生成する
202
+ #
203
+ # @return [SwitchDate] 切替日(運用/計算)情報
204
+ #
205
+ def create
206
+ calculation_date = Both::DateParser.new(hash: calculation).create
207
+ operation_date = Both::DateParser.new(hash: operation).create
208
+
209
+ Japan::Gengou::Resource::SwitchDate.new(
210
+ calculation: calculation_date, operation: operation_date,
211
+ operated: operated
212
+ )
159
213
  end
160
214
  end
161
215
 
@@ -222,8 +276,11 @@ module Zakuro
222
276
  # @return [Both::Date] 日情報
223
277
  #
224
278
  def create
225
- japan_date = Japan::Calendar.parse(text: japan)
226
- western_date = Western::Calendar.parse(text: western)
279
+ japan_date = Japan::Calendar.new
280
+ western_date = Western::Calendar.new
281
+
282
+ japan_date = Japan::Calendar.parse(text: japan) unless japan == ''
283
+ western_date = Western::Calendar.parse(text: western) unless western == ''
227
284
 
228
285
  Japan::Gengou::Resource::Both::Date.new(
229
286
  japan: japan_date, western: western_date
@@ -237,19 +294,20 @@ module Zakuro
237
294
  # 解析/展開する
238
295
  #
239
296
  # @param [String] filepath 元号セットファイルパス
297
+ # @param [True, False] operated 運用値設定
240
298
  #
241
299
  # @return [Set] 元号セット情報
242
300
  #
243
301
  # @raise [ArgumentError] 引数エラー
244
302
  #
245
- def run(filepath: '')
303
+ def run(filepath: '', operated: false)
246
304
  yaml = YAML.load_file(filepath)
247
305
 
248
306
  failed = Validator.run(yaml_hash: yaml)
249
307
 
250
308
  raise ArgumentError, failed.join("\n") unless failed.empty?
251
309
 
252
- parser = SetParser.new(hash: yaml)
310
+ parser = SetParser.new(hash: yaml, operated: operated)
253
311
  parser.create
254
312
  end
255
313
  end