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
@@ -1,74 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative './genka/cycle/remainder'
4
- require_relative './genka/cycle/solar_term'
5
- require_relative './genka/range/annual_range'
6
-
7
- require_relative './gihou/cycle/remainder'
8
- require_relative './gihou/cycle/solar_term'
9
- require_relative './gihou/range/annual_range'
10
-
11
- require_relative './daien/cycle/remainder'
12
- require_relative './daien/cycle/solar_term'
13
- require_relative './daien/range/annual_range'
14
-
15
- require_relative './senmyou/cycle/remainder'
16
- require_relative './senmyou/cycle/solar_term'
17
- require_relative './senmyou/range/annual_range'
18
-
19
- # :nodoc:
20
- module Zakuro
21
- #
22
- # VersionClassResolver 暦リゾルバー
23
- #
24
- class VersionClassResolver
25
- attr_reader :version_name
26
-
27
- CLASSES = {
28
- 'remainder' => 'Zakuro::$VERSION::Cycle::Remainder',
29
- 'solar_term' => 'Zakuro::$VERSION::Cycle::SolarTerm',
30
- 'annual_range' => 'Zakuro::$VERSION::Range::AnnualRange'
31
- }.freeze
32
-
33
- def initialize(version_name:)
34
- @version_name = version_name
35
- end
36
-
37
- def self.get_class(version_name:, class_name:)
38
- constant = CLASSES.fetch(class_name, '')
39
-
40
- raise ArgumentError.new, 'invalid class name' if constant == ''
41
-
42
- resolved_constant = constant.gsub('$VERSION', version_name)
43
-
44
- Object.const_get(resolved_constant)
45
- end
46
-
47
- #
48
- # 大余小余(暦別)クラスを返す
49
- #
50
- # @return [Class] 大余小余(暦別)クラス
51
- #
52
- def remainder
53
- VersionClassResolver.get_class(version_name: @version_name, class_name: 'remainder')
54
- end
55
-
56
- #
57
- # 二十四節気クラスを返す
58
- #
59
- # @return [Class] 二十四節気クラス
60
- #
61
- def solar_term
62
- VersionClassResolver.get_class(version_name: @version_name, class_name: 'solar_term')
63
- end
64
-
65
- #
66
- # 年間範囲クラスを返す
67
- #
68
- # @return [Class] 年間範囲クラス
69
- #
70
- def annual_range
71
- VersionClassResolver.get_class(version_name: @version_name, class_name: 'annual_range')
72
- end
73
- end
74
- end