zakuro 0.7.0 → 0.7.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +37 -10
  3. data/VERSION +1 -1
  4. data/doc/dropped_date.md +93 -0
  5. data/doc/error.md +45 -0
  6. data/lib/zakuro/calculation/base/day.rb +52 -0
  7. data/lib/zakuro/calculation/base/operated_year.rb +3 -3
  8. data/lib/zakuro/calculation/base/year.rb +4 -4
  9. data/lib/zakuro/calculation/cycle/abstract_remainder.rb +5 -3
  10. data/lib/zakuro/calculation/monthly/initialized_month.rb +1 -1
  11. data/lib/zakuro/calculation/monthly/month.rb +3 -3
  12. data/lib/zakuro/calculation/monthly/operated_month.rb +1 -1
  13. data/lib/zakuro/calculation/option/dropped_date/abstract_parameter.rb +44 -0
  14. data/lib/zakuro/calculation/option/dropped_date/location.rb +135 -0
  15. data/lib/zakuro/calculation/range/abstract_full_range.rb +10 -8
  16. data/lib/zakuro/calculation/range/abstract_operation_range.rb +2 -2
  17. data/lib/zakuro/calculation/range/dated_full_range.rb +1 -1
  18. data/lib/zakuro/calculation/range/dated_operation_range.rb +1 -1
  19. data/lib/zakuro/calculation/range/medieval_annual_range.rb +2 -2
  20. data/lib/zakuro/calculation/range/named_full_range.rb +1 -1
  21. data/lib/zakuro/calculation/range/named_operation_range.rb +1 -1
  22. data/lib/zakuro/calculation/range/operated_solar_terms.rb +9 -9
  23. data/lib/zakuro/calculation/range/transfer/year_boundary.rb +6 -6
  24. data/lib/zakuro/calculation/stella/solar/abstract_location.rb +2 -0
  25. data/lib/zakuro/calculation/summary/internal/day.rb +40 -0
  26. data/lib/zakuro/calculation/summary/internal/month.rb +15 -7
  27. data/lib/zakuro/calculation/summary/internal/option.rb +85 -0
  28. data/lib/zakuro/calculation/summary/japan/range.rb +15 -9
  29. data/lib/zakuro/calculation/summary/japan/single.rb +6 -6
  30. data/lib/zakuro/calculation/summary/japan/specifier/single_day.rb +10 -5
  31. data/lib/zakuro/calculation/summary/western/range.rb +5 -5
  32. data/lib/zakuro/calculation/summary/western/single.rb +9 -9
  33. data/lib/zakuro/calculation/summary/western/specifier/multiple_day.rb +15 -10
  34. data/lib/zakuro/calculation/summary/western/specifier/single_day.rb +12 -7
  35. data/lib/zakuro/calculation/type/optional.rb +46 -0
  36. data/lib/zakuro/condition.rb +60 -20
  37. data/lib/zakuro/context/context.rb +44 -0
  38. data/lib/zakuro/context/option.rb +117 -0
  39. data/lib/zakuro/context/version_class_resolver.rb +110 -0
  40. data/lib/zakuro/era/japan/gengou/alignment/aligner.rb +4 -0
  41. data/lib/zakuro/era/japan/gengou/resource/parser.rb +2 -0
  42. data/lib/zakuro/era/japan/gengou/resource/type.rb +6 -0
  43. data/lib/zakuro/era/western/calendar.rb +4 -0
  44. data/lib/zakuro/exception/case/pattern.rb +39 -3
  45. data/lib/zakuro/exception/exception.rb +3 -3
  46. data/lib/zakuro/exception/zakuro_error.rb +19 -1
  47. data/lib/zakuro/gateway/range.rb +2 -2
  48. data/lib/zakuro/gateway/single.rb +1 -1
  49. data/lib/zakuro/merchant.rb +78 -8
  50. data/lib/zakuro/operation/month/parser.rb +2 -0
  51. data/lib/zakuro/output/response.rb +24 -57
  52. data/lib/zakuro/result/data/option/abstract_option.rb +37 -0
  53. data/lib/zakuro/result/data/option/dropped_date/calculation.rb +47 -0
  54. data/lib/zakuro/result/data/option/dropped_date/option.rb +47 -0
  55. data/lib/zakuro/result/data/option/dropped_date/solar_term.rb +48 -0
  56. data/lib/zakuro/result/data/single_day.rb +9 -1
  57. data/lib/zakuro/result/operation/{operation.rb → bundle.rb} +0 -0
  58. data/lib/zakuro/result/result.rb +1 -1
  59. data/lib/zakuro/tools/stringifier.rb +26 -3
  60. data/lib/zakuro/version/daien/cycle/remainder.rb +2 -2
  61. data/lib/zakuro/version/daien/option/dropped_date/parameter.rb +31 -0
  62. data/lib/zakuro/version/daien/range/annual_range.rb +1 -1
  63. data/lib/zakuro/version/daien/stella/lunar/adjustment.rb +2 -0
  64. data/lib/zakuro/version/daien/stella/lunar/value.rb +2 -0
  65. data/lib/zakuro/version/genka/cycle/remainder.rb +2 -2
  66. data/lib/zakuro/version/genka/option/dropped_date/parameter.rb +31 -0
  67. data/lib/zakuro/version/genka/range/annual_range.rb +1 -1
  68. data/lib/zakuro/version/gihou/cycle/remainder.rb +2 -2
  69. data/lib/zakuro/version/gihou/option/dropped_date/parameter.rb +31 -0
  70. data/lib/zakuro/version/gihou/range/annual_range.rb +1 -1
  71. data/lib/zakuro/version/gihou/stella/lunar/adjustment.rb +2 -0
  72. data/lib/zakuro/version/gihou/stella/lunar/value.rb +2 -0
  73. data/lib/zakuro/version/senmyou/const/remainder.rb +5 -0
  74. data/lib/zakuro/version/senmyou/cycle/remainder.rb +37 -2
  75. data/lib/zakuro/version/senmyou/option/dropped_date/parameter.rb +33 -0
  76. data/lib/zakuro/version/senmyou/range/annual_range.rb +1 -1
  77. data/lib/zakuro/version/senmyou/stella/lunar/adjustment.rb +2 -0
  78. data/lib/zakuro/version/senmyou/stella/lunar/value.rb +2 -0
  79. metadata +26 -9
  80. data/lib/zakuro/version/context.rb +0 -44
  81. data/lib/zakuro/version/version_class_resolver.rb +0 -74
@@ -2,6 +2,10 @@
2
2
 
3
3
  require_relative '../core'
4
4
 
5
+ require_relative './option/abstract_option'
6
+
7
+ require_relative './option/dropped_date/option'
8
+
5
9
  require_relative 'year'
6
10
 
7
11
  require_relative 'month'
@@ -28,6 +32,8 @@ module Zakuro
28
32
  attr_reader :month
29
33
  # @return [Day] 日
30
34
  attr_reader :day
35
+ # @return [Hash<String, Option::AbstractOption>] オプション
36
+ attr_reader :options
31
37
 
32
38
  #
33
39
  # 初期化
@@ -35,12 +41,14 @@ module Zakuro
35
41
  # @param [Year] year 年
36
42
  # @param [Month] month 月
37
43
  # @param [Day] day 日
44
+ # @param [Hash<String, Option::AbstractOption>] options オプション
38
45
  #
39
- def initialize(year:, month:, day:)
46
+ def initialize(year:, month:, day:, options: {})
40
47
  super
41
48
  @year = year
42
49
  @month = month
43
50
  @day = day
51
+ @options = options
44
52
  end
45
53
  end
46
54
  end
@@ -4,7 +4,7 @@ require 'json'
4
4
 
5
5
  require_relative './data/single_day'
6
6
 
7
- require_relative './operation/operation'
7
+ require_relative './operation/bundle'
8
8
 
9
9
  require_relative './core'
10
10
 
@@ -17,6 +17,7 @@ module Zakuro
17
17
  #
18
18
  # @param [Object] obj 対象インスタンス
19
19
  # @param [String] class_prefix インスタンス内でハッシュ変換するクラスのプレフィックス
20
+ # @param [True, False] formatted 整形有無
20
21
  #
21
22
  # @return [Hash<String, Objcet>] ハッシュ
22
23
  #
@@ -31,13 +32,12 @@ module Zakuro
31
32
  hash
32
33
  end
33
34
 
34
- # :reek:TooManyStatements { max_statements: 7 }
35
-
36
35
  #
37
36
  # 対象インスタンスをハッシュ化する(再帰処理)
38
37
  #
39
38
  # @param [Object] obj 対象インスタンス
40
39
  # @param [String] class_prefix インスタンス内でハッシュ変換するクラスのプレフィックス
40
+ # @param [True, False] formatted 整形有無
41
41
  #
42
42
  # @return [Hash<String, Objcet>] ハッシュ
43
43
  #
@@ -52,6 +52,20 @@ module Zakuro
52
52
  return to_h(obj: obj, class_prefix: class_prefix, formatted: formatted)
53
53
  end
54
54
 
55
+ general_value_to_hash(obj: obj, class_prefix: class_prefix, formatted: formatted)
56
+ end
57
+ private_class_method :value_to_hash
58
+
59
+ #
60
+ # ライブラリを問わない標準的な値をハッシュ化する(再帰処理)
61
+ #
62
+ # @param [Object] obj 対象インスタンス
63
+ # @param [String] class_prefix インスタンス内でハッシュ変換するクラスのプレフィックス
64
+ # @param [True, False] formatted 整形有無
65
+ #
66
+ # @return [Objcet] ハッシュ変換可能な値
67
+ #
68
+ def self.general_value_to_hash(obj:, class_prefix:, formatted:)
55
69
  # 配列は要素一つずつで再帰する
56
70
  if obj.is_a?(Array)
57
71
  arr = []
@@ -61,9 +75,18 @@ module Zakuro
61
75
  return arr
62
76
  end
63
77
 
78
+ # ハッシュはキーごとに再帰する
79
+ if obj.is_a?(Hash)
80
+ hash = {}
81
+ obj.each do |key, value|
82
+ hash[key] = to_h(obj: value, class_prefix: class_prefix, formatted: formatted)
83
+ end
84
+ return hash
85
+ end
86
+
64
87
  obj
65
88
  end
66
- private_class_method :value_to_hash
89
+ private_class_method :general_value_to_hash
67
90
  end
68
91
  end
69
92
  end
@@ -29,7 +29,7 @@ module Zakuro
29
29
  # @param [Integer] total 繰り上げなしの小余
30
30
  #
31
31
  def initialize(day: -1, minute: -1, second: -1, total: -1)
32
- super(base_day: Const::Number::Cycle::DAY, base_mitune: MINUTE,
32
+ super(base_day: Const::Number::Cycle::DAY, base_minute: MINUTE,
33
33
  day: day, minute: minute, second: second, total: total)
34
34
  end
35
35
 
@@ -63,7 +63,7 @@ module Zakuro
63
63
  # @param [Integer] total 繰り上げなしの小余
64
64
  #
65
65
  def initialize(day: -1, minute: -1, second: -1, total: -1)
66
- super(base_day: Const::Number::Cycle::DAY, base_mitune: MINUTE,
66
+ super(base_day: Const::Number::Cycle::DAY, base_minute: MINUTE,
67
67
  day: day, minute: minute, second: second, total: total)
68
68
  end
69
69
 
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../../../calculation/option/dropped_date/abstract_parameter'
4
+
5
+ require_relative '../../const/number'
6
+ require_relative '../../const/remainder'
7
+ require_relative '../../cycle/remainder'
8
+
9
+ # :nodoc:
10
+ module Zakuro
11
+ # :nodoc:
12
+ module Senmyou
13
+ # :nodoc:
14
+ module Daien
15
+ # :nodoc:
16
+ module DroppedDate
17
+ #
18
+ # Parameter 引数
19
+ #
20
+ class Parameter < Calculation::Option::DroppedDate::AbstractParameter
21
+ #
22
+ # 初期化
23
+ #
24
+ def initialize
25
+ super(valid: false)
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -20,7 +20,7 @@ module Zakuro
20
20
  # * 対象年に対して、前年11月-当年11月までを出力する
21
21
  # * 対象年(西暦)と計算年(元号x年)の紐付けは行わない
22
22
  #
23
- # @param [Context] context 暦コンテキスト
23
+ # @param [Context::Context] context 暦コンテキスト
24
24
  # @param [Integer] western_year 西暦年
25
25
  #
26
26
  # @return [Array<Month>] 1年データ
@@ -206,6 +206,8 @@ module Zakuro
206
206
  #
207
207
  # @return [Row] 補正値
208
208
  #
209
+ # @raise [ArgumentError] 引数エラー
210
+ #
209
211
  def self.specify(day:, minute:)
210
212
  LIST.each do |row|
211
213
  # NOTE: 範囲が重複している場合、最初に引き当てたほうを優先する
@@ -63,6 +63,8 @@ module Zakuro
63
63
  # @return [True] 正しい(月の位相計算に使う大余小余)
64
64
  # @return [True] 正しくない
65
65
  #
66
+ # @raise [ArgumentError] 引数エラー
67
+ #
66
68
  def self.valid?(remainder:)
67
69
  return if remainder.is_a?(Cycle::LunarRemainder)
68
70
 
@@ -30,7 +30,7 @@ module Zakuro
30
30
  # @param [Integer] total 繰り上げなしの小余
31
31
  #
32
32
  def initialize(day: -1, minute: -1, second: -1, total: -1)
33
- super(base_day: Const::Number::Cycle::DAY, base_mitune: MINUTE,
33
+ super(base_day: Const::Number::Cycle::DAY, base_minute: MINUTE,
34
34
  day: day, minute: minute, second: second, total: total)
35
35
  end
36
36
 
@@ -67,7 +67,7 @@ module Zakuro
67
67
  # @param [Integer] total 繰り上げなしの小余
68
68
  #
69
69
  def initialize(day: -1, minute: -1, second: -1, total: -1)
70
- super(base_day: Const::Number::Cycle::TERM_DAY, base_mitune: MINUTE,
70
+ super(base_day: Const::Number::Cycle::TERM_DAY, base_minute: MINUTE,
71
71
  day: day, minute: minute, second: second, total: total)
72
72
  end
73
73
 
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../../../calculation/option/dropped_date/abstract_parameter'
4
+
5
+ require_relative '../../const/number'
6
+ require_relative '../../const/remainder'
7
+ require_relative '../../cycle/remainder'
8
+
9
+ # :nodoc:
10
+ module Zakuro
11
+ # :nodoc:
12
+ module Genka
13
+ # :nodoc:
14
+ module Option
15
+ # :nodoc:
16
+ module DroppedDate
17
+ #
18
+ # Parameter 引数
19
+ #
20
+ class Parameter < Calculation::Option::DroppedDate::AbstractParameter
21
+ #
22
+ # 初期化
23
+ #
24
+ def initialize
25
+ super(valid: false)
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -24,7 +24,7 @@ module Zakuro
24
24
  # * 対象年に対して、当年1月-翌年1月までを出力する
25
25
  # * 対象年(西暦)と計算年(元号x年)の紐付けは行わない
26
26
  #
27
- # @param [Context] context 暦コンテキスト
27
+ # @param [Context::Context] context 暦コンテキスト
28
28
  # @param [Integer] western_year 西暦年
29
29
  #
30
30
  # @return [Array<Month>] 1年データ
@@ -26,7 +26,7 @@ module Zakuro
26
26
  # @param [Integer] total 繰り上げなしの小余
27
27
  #
28
28
  def initialize(day: -1, minute: -1, second: -1, total: -1)
29
- super(base_day: Const::Number::Cycle::DAY, base_mitune: MINUTE,
29
+ super(base_day: Const::Number::Cycle::DAY, base_minute: MINUTE,
30
30
  day: day, minute: minute, second: second, total: total)
31
31
  end
32
32
 
@@ -60,7 +60,7 @@ module Zakuro
60
60
  # @param [Integer] total 繰り上げなしの小余
61
61
  #
62
62
  def initialize(day: -1, minute: -1, second: -1, total: -1)
63
- super(base_day: Const::Number::Cycle::DAY, base_mitune: MINUTE,
63
+ super(base_day: Const::Number::Cycle::DAY, base_minute: MINUTE,
64
64
  day: day, minute: minute, second: second, total: total)
65
65
  end
66
66
 
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../../../calculation/option/dropped_date/abstract_parameter'
4
+
5
+ require_relative '../../const/number'
6
+ require_relative '../../const/remainder'
7
+ require_relative '../../cycle/remainder'
8
+
9
+ # :nodoc:
10
+ module Zakuro
11
+ # :nodoc:
12
+ module Gihou
13
+ # :nodoc:
14
+ module Option
15
+ # :nodoc:
16
+ module DroppedDate
17
+ #
18
+ # Parameter 引数
19
+ #
20
+ class Parameter < Calculation::Option::DroppedDate::AbstractParameter
21
+ #
22
+ # 初期化
23
+ #
24
+ def initialize
25
+ super(valid: false)
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -20,7 +20,7 @@ module Zakuro
20
20
  # * 対象年に対して、前年11月-当年11月までを出力する
21
21
  # * 対象年(西暦)と計算年(元号x年)の紐付けは行わない
22
22
  #
23
- # @param [Context] context 暦コンテキスト
23
+ # @param [Context::Context] context 暦コンテキスト
24
24
  # @param [Integer] western_year 西暦年
25
25
  #
26
26
  # @return [Array<Month>] 1年データ
@@ -216,6 +216,8 @@ module Zakuro
216
216
  #
217
217
  # @return [Row] 補正値
218
218
  #
219
+ # @raise [ArgumentError] 引数エラー
220
+ #
219
221
  def self.specify(day:, minute:)
220
222
  LIST.each do |row|
221
223
  # NOTE: 範囲が重複している場合、最初に引き当てたほうを優先する
@@ -63,6 +63,8 @@ module Zakuro
63
63
  # @return [True] 正しい(月の位相計算に使う大余小余)
64
64
  # @return [True] 正しくない
65
65
  #
66
+ # @raise [ArgumentError] 引数エラー
67
+ #
66
68
  def self.valid?(remainder:)
67
69
  return if remainder.is_a?(Cycle::LunarRemainder)
68
70
 
@@ -25,6 +25,11 @@ module Zakuro
25
25
  #
26
26
  # @return [Cycle::Remainder] 弦(1分=8秒)
27
27
  QUARTER = Cycle::Remainder.new(day: 7, minute: 3214, second: 2)
28
+
29
+ # @return [Cycle::Remainder] 有没判定
30
+ # * 中盈(小余3671秒2)/ 2 = 小余1835秒5
31
+ # * 日(小余8400) - 小余1835秒5 = 小余6564秒3
32
+ DROPPED_DATE_LIMIT = Cycle::Remainder.new(day: 0, minute: 6564, second: 3)
28
33
  end
29
34
 
30
35
  #
@@ -26,7 +26,7 @@ module Zakuro
26
26
  # @param [Integer] total 繰り上げなしの小余
27
27
  #
28
28
  def initialize(day: -1, minute: -1, second: -1, total: -1)
29
- super(base_day: Const::Number::Cycle::DAY, base_mitune: MINUTE,
29
+ super(base_day: Const::Number::Cycle::DAY, base_minute: MINUTE,
30
30
  day: day, minute: minute, second: second, total: total)
31
31
  end
32
32
 
@@ -60,7 +60,42 @@ module Zakuro
60
60
  # @param [Integer] total 繰り上げなしの小余
61
61
  #
62
62
  def initialize(day: -1, minute: -1, second: -1, total: -1)
63
- super(base_day: Const::Number::Cycle::DAY, base_mitune: MINUTE,
63
+ super(base_day: Const::Number::Cycle::DAY, base_minute: MINUTE,
64
+ day: day, minute: minute, second: second, total: total)
65
+ end
66
+
67
+ #
68
+ # 特定の文字フォーマットにして出力する
69
+ #
70
+ # @param [String] form フォーマット(大余、小余、秒それぞれを%dで指定する)
71
+ #
72
+ # @return [String] フォーマットした結果
73
+ #
74
+ def format(form: '%d-%d')
75
+ return '' if invalid?
76
+
77
+ super(form, @day, @minute, @second)
78
+ end
79
+ end
80
+
81
+ #
82
+ # DroppedRemainder 没日の計算向け時刻情報(没余)
83
+ #
84
+ class DroppedRemainder < Calculation::Cycle::AbstractRemainder
85
+ # @return [Integer] 分(1分=8秒)
86
+ MINUTE = 8
87
+
88
+ #
89
+ # 初期化
90
+ #
91
+ # @param [Integer] day 大余("日"に相当)
92
+ # @param [Integer] minute 小余("分"に相当)
93
+ # @param [Integer] second 秒
94
+ # @param [Integer] total 繰り上げなしの小余
95
+ #
96
+ def initialize(day: -1, minute: -1, second: -1, total: -1)
97
+ # 小余 = 通余
98
+ super(base_day: Const::Number::Derivation::REMAINDER_ALL_YEAR, base_minute: MINUTE,
64
99
  day: day, minute: minute, second: second, total: total)
65
100
  end
66
101
 
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../../../calculation/option/dropped_date/abstract_parameter'
4
+
5
+ require_relative '../../const/number'
6
+ require_relative '../../const/remainder'
7
+ require_relative '../../cycle/remainder'
8
+
9
+ # :nodoc:
10
+ module Zakuro
11
+ # :nodoc:
12
+ module Senmyou
13
+ # :nodoc:
14
+ module Option
15
+ # :nodoc:
16
+ module DroppedDate
17
+ #
18
+ # Parameter 引数
19
+ #
20
+ class Parameter < Calculation::Option::DroppedDate::AbstractParameter
21
+ #
22
+ # 初期化
23
+ #
24
+ def initialize
25
+ super(valid: true, year: Const::Number::Cycle::YEAR,
26
+ limit: Const::Remainder::Solar::DROPPED_DATE_LIMIT,
27
+ remainder_class: Cycle::DroppedRemainder)
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -20,7 +20,7 @@ module Zakuro
20
20
  # * 対象年に対して、前年11月-当年11月までを出力する
21
21
  # * 対象年(西暦)と計算年(元号x年)の紐付けは行わない
22
22
  #
23
- # @param [Context] context 暦コンテキスト
23
+ # @param [Context::Context] context 暦コンテキスト
24
24
  # @param [Integer] western_year 西暦年
25
25
  #
26
26
  # @return [Array<Month>] 1年データ
@@ -205,6 +205,8 @@ module Zakuro
205
205
  #
206
206
  # @return [Row] 補正値
207
207
  #
208
+ # @raise [ArgumentError] 引数エラー
209
+ #
208
210
  def self.specify(forward:, day:, minute:)
209
211
  LIST.each do |row|
210
212
  # NOTE: 範囲が重複している場合、最初に引き当てたほうを優先する
@@ -55,6 +55,8 @@ module Zakuro
55
55
  # @return [True] 正しい(月の位相計算に使う大余小余)
56
56
  # @return [True] 正しくない
57
57
  #
58
+ # @raise [ArgumentError] 引数エラー
59
+ #
58
60
  def self.valid?(remainder:)
59
61
  return if remainder.is_a?(Cycle::LunarRemainder)
60
62
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zakuro
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.7.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - pldb
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-04-18 00:00:00.000000000 Z
11
+ date: 2022-06-11 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: mainly lunar solar calendar
14
14
  email:
@@ -29,6 +29,8 @@ files:
29
29
  - VERSION
30
30
  - bin/console
31
31
  - bin/setup
32
+ - doc/dropped_date.md
33
+ - doc/error.md
32
34
  - doc/gengou.md
33
35
  - doc/operation.md
34
36
  - doc/operation/csv/month.csv
@@ -41,6 +43,7 @@ files:
41
43
  - images/各月の求め方.png
42
44
  - images/太陽と月.png
43
45
  - lib/zakuro.rb
46
+ - lib/zakuro/calculation/base/day.rb
44
47
  - lib/zakuro/calculation/base/gengou.rb
45
48
  - lib/zakuro/calculation/base/linear_gengou.rb
46
49
  - lib/zakuro/calculation/base/operated_year.rb
@@ -71,6 +74,8 @@ files:
71
74
  - lib/zakuro/calculation/monthly/month.rb
72
75
  - lib/zakuro/calculation/monthly/month_label.rb
73
76
  - lib/zakuro/calculation/monthly/operated_month.rb
77
+ - lib/zakuro/calculation/option/dropped_date/abstract_parameter.rb
78
+ - lib/zakuro/calculation/option/dropped_date/location.rb
74
79
  - lib/zakuro/calculation/range/abstract_full_range.rb
75
80
  - lib/zakuro/calculation/range/abstract_operation_range.rb
76
81
  - lib/zakuro/calculation/range/dated_full_range.rb
@@ -86,8 +91,10 @@ files:
86
91
  - lib/zakuro/calculation/stella/solar/abstract_average.rb
87
92
  - lib/zakuro/calculation/stella/solar/abstract_location.rb
88
93
  - lib/zakuro/calculation/stella/solar/choukei_value.rb
94
+ - lib/zakuro/calculation/summary/internal/day.rb
89
95
  - lib/zakuro/calculation/summary/internal/month.rb
90
96
  - lib/zakuro/calculation/summary/internal/operation.rb
97
+ - lib/zakuro/calculation/summary/internal/option.rb
91
98
  - lib/zakuro/calculation/summary/japan/range.rb
92
99
  - lib/zakuro/calculation/summary/japan/single.rb
93
100
  - lib/zakuro/calculation/summary/japan/specifier/single_day.rb
@@ -96,7 +103,11 @@ files:
96
103
  - lib/zakuro/calculation/summary/western/specifier/multiple_day.rb
97
104
  - lib/zakuro/calculation/summary/western/specifier/single_day.rb
98
105
  - lib/zakuro/calculation/type/old_float.rb
106
+ - lib/zakuro/calculation/type/optional.rb
99
107
  - lib/zakuro/condition.rb
108
+ - lib/zakuro/context/context.rb
109
+ - lib/zakuro/context/option.rb
110
+ - lib/zakuro/context/version_class_resolver.rb
100
111
  - lib/zakuro/era/japan/calendar.rb
101
112
  - lib/zakuro/era/japan/gengou.rb
102
113
  - lib/zakuro/era/japan/gengou/alignment.rb
@@ -136,24 +147,28 @@ files:
136
147
  - lib/zakuro/result/data/day.rb
137
148
  - lib/zakuro/result/data/gengou.rb
138
149
  - lib/zakuro/result/data/month.rb
150
+ - lib/zakuro/result/data/option/abstract_option.rb
151
+ - lib/zakuro/result/data/option/dropped_date/calculation.rb
152
+ - lib/zakuro/result/data/option/dropped_date/option.rb
153
+ - lib/zakuro/result/data/option/dropped_date/solar_term.rb
139
154
  - lib/zakuro/result/data/single_day.rb
140
155
  - lib/zakuro/result/data/solar_term.rb
141
156
  - lib/zakuro/result/data/year.rb
157
+ - lib/zakuro/result/operation/bundle.rb
142
158
  - lib/zakuro/result/operation/month/annotation.rb
143
159
  - lib/zakuro/result/operation/month/bundle.rb
144
160
  - lib/zakuro/result/operation/month/history.rb
145
- - lib/zakuro/result/operation/operation.rb
146
161
  - lib/zakuro/result/result.rb
147
162
  - lib/zakuro/tools/stringifier.rb
148
163
  - lib/zakuro/tools/typeconv.rb
149
164
  - lib/zakuro/tools/typeof.rb
150
- - lib/zakuro/version/context.rb
151
165
  - lib/zakuro/version/daien/const/number.rb
152
166
  - lib/zakuro/version/daien/const/remainder.rb
153
167
  - lib/zakuro/version/daien/cycle/remainder.rb
154
168
  - lib/zakuro/version/daien/cycle/solar_term.rb
155
169
  - lib/zakuro/version/daien/daien.rb
156
170
  - lib/zakuro/version/daien/monthly/lunar_phase.rb
171
+ - lib/zakuro/version/daien/option/dropped_date/parameter.rb
157
172
  - lib/zakuro/version/daien/range/annual_range.rb
158
173
  - lib/zakuro/version/daien/stella/lunar/adjustment.rb
159
174
  - lib/zakuro/version/daien/stella/lunar/localization.rb
@@ -173,6 +188,7 @@ files:
173
188
  - lib/zakuro/version/genka/cycle/solar_term.rb
174
189
  - lib/zakuro/version/genka/genka.rb
175
190
  - lib/zakuro/version/genka/monthly/lunar_phase.rb
191
+ - lib/zakuro/version/genka/option/dropped_date/parameter.rb
176
192
  - lib/zakuro/version/genka/range/annual_range.rb
177
193
  - lib/zakuro/version/genka/stella/origin/first_term.rb
178
194
  - lib/zakuro/version/genka/stella/origin/january.rb
@@ -183,6 +199,7 @@ files:
183
199
  - lib/zakuro/version/gihou/cycle/solar_term.rb
184
200
  - lib/zakuro/version/gihou/gihou.rb
185
201
  - lib/zakuro/version/gihou/monthly/lunar_phase.rb
202
+ - lib/zakuro/version/gihou/option/dropped_date/parameter.rb
186
203
  - lib/zakuro/version/gihou/range/annual_range.rb
187
204
  - lib/zakuro/version/gihou/stella/lunar/adjustment.rb
188
205
  - lib/zakuro/version/gihou/stella/lunar/localization.rb
@@ -206,6 +223,7 @@ files:
206
223
  - lib/zakuro/version/senmyou/cycle/remainder.rb
207
224
  - lib/zakuro/version/senmyou/cycle/solar_term.rb
208
225
  - lib/zakuro/version/senmyou/monthly/lunar_phase.rb
226
+ - lib/zakuro/version/senmyou/option/dropped_date/parameter.rb
209
227
  - lib/zakuro/version/senmyou/range/annual_range.rb
210
228
  - lib/zakuro/version/senmyou/senmyou.rb
211
229
  - lib/zakuro/version/senmyou/stella/lunar/adjustment.rb
@@ -221,7 +239,6 @@ files:
221
239
  - lib/zakuro/version/senmyou/stella/solar/location.rb
222
240
  - lib/zakuro/version/senmyou/stella/solar/value.rb
223
241
  - lib/zakuro/version/tenpou/tenpou.rb
224
- - lib/zakuro/version/version_class_resolver.rb
225
242
  - zakuro.gemspec
226
243
  homepage: https://github.com/pldb/zakuro
227
244
  licenses:
@@ -231,7 +248,7 @@ metadata:
231
248
  homepage_uri: https://github.com/pldb/zakuro
232
249
  source_code_uri: https://github.com/pldb/zakuro
233
250
  changelog_uri: https://github.com/pldb/zakuro
234
- post_install_message:
251
+ post_install_message:
235
252
  rdoc_options: []
236
253
  require_paths:
237
254
  - lib
@@ -246,8 +263,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
246
263
  - !ruby/object:Gem::Version
247
264
  version: '0'
248
265
  requirements: []
249
- rubygems_version: 3.1.2
250
- signing_key:
266
+ rubygems_version: 3.1.4
267
+ signing_key:
251
268
  specification_version: 4
252
269
  summary: japanese calendar library.
253
270
  test_files: []
@@ -1,44 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative './version_class_resolver'
4
-
5
- # :nodoc:
6
- module Zakuro
7
- #
8
- # Context 暦コンテキスト
9
- #
10
- class Context
11
- # @return [String] 暦名
12
- attr_reader :version_name
13
- # @return [VersionClassResolver] 暦リゾルバー
14
- attr_reader :resolver
15
-
16
- # @return [Array<String>] 暦名
17
- VERSION_NAMES = %w[Genka Gihou Daien Senmyou Joukyou Kansei Tenpou Gregorio].freeze
18
-
19
- #
20
- # 初期化
21
- #
22
- # @param [String] version_name 暦名
23
- #
24
- def initialize(version_name: '')
25
- @version_name = version_name
26
-
27
- if !invalid? && !VERSION_NAMES.include?(version_name)
28
- raise ArgumentError.new, 'invalid version'
29
- end
30
-
31
- @resolver = VersionClassResolver.new(version_name: version_name)
32
- end
33
-
34
- #
35
- # 不正か
36
- #
37
- # @return [True] 不正
38
- # @return [False] 不正なし
39
- #
40
- def invalid?
41
- @version_name.empty?
42
- end
43
- end
44
- end