Class: Zakuro::Context::VersionClassResolver
- Inherits:
-
Object
- Object
- Zakuro::Context::VersionClassResolver
- Defined in:
- lib/zakuro/context/version_class_resolver.rb
Overview
VersionClassResolver 暦リゾルバー
Constant Summary collapse
- CLASSES =
Returns 関連.
{ 'remainder' => 'Zakuro::Version::$VERSION::Cycle::Remainder', 'solar_term' => 'Zakuro::Version::$VERSION::Cycle::SolarTerm', 'annual_range' => 'Zakuro::Version::$VERSION::Range::AnnualRange', 'dropped_date_parameter' => 'Zakuro::Version::$VERSION::Option::DroppedDate::Parameter', 'vanished_date_parameter' => 'Zakuro::Version::$VERSION::Option::VanishedDate::Parameter' }.freeze
Instance Attribute Summary collapse
-
#version_name ⇒ String
readonly
暦名.
Class Method Summary collapse
-
.get_class(version_name:, class_name:) ⇒ Object
該当の暦のクラスを取得する.
Instance Method Summary collapse
-
#annual_range ⇒ Class
年間範囲クラスを返す.
-
#dropped_date_parameter ⇒ Class
没日引数を返す.
-
#initialize(version_name:) ⇒ VersionClassResolver
constructor
初期化.
-
#remainder ⇒ Class
大余小余(暦別)クラスを返す.
-
#solar_term ⇒ Class
二十四節気クラスを返す.
-
#vanished_date_parameter ⇒ Class
滅日引数を返す.
Constructor Details
#initialize(version_name:) ⇒ VersionClassResolver
初期化
52 53 54 |
# File 'lib/zakuro/context/version_class_resolver.rb', line 52 def initialize(version_name:) @version_name = version_name end |
Instance Attribute Details
#version_name ⇒ String (readonly)
Returns 暦名.
36 37 38 |
# File 'lib/zakuro/context/version_class_resolver.rb', line 36 def version_name @version_name end |
Class Method Details
.get_class(version_name:, class_name:) ⇒ Object
該当の暦のクラスを取得する
116 117 118 119 120 121 122 123 124 |
# File 'lib/zakuro/context/version_class_resolver.rb', line 116 def get_class(version_name:, class_name:) constant = CLASSES.fetch(class_name, '') raise ArgumentError.new, 'invalid class name' if constant == '' resolved_constant = constant.gsub('$VERSION', version_name) Object.const_get(resolved_constant) end |
Instance Method Details
#annual_range ⇒ Class
年間範囲クラスを返す
79 80 81 |
# File 'lib/zakuro/context/version_class_resolver.rb', line 79 def annual_range self.class.get_class(version_name: @version_name, class_name: 'annual_range') end |
#dropped_date_parameter ⇒ Class
没日引数を返す
88 89 90 91 92 |
# File 'lib/zakuro/context/version_class_resolver.rb', line 88 def dropped_date_parameter self.class.get_class( version_name: @version_name, class_name: 'dropped_date_parameter' ) end |
#remainder ⇒ Class
大余小余(暦別)クラスを返す
61 62 63 |
# File 'lib/zakuro/context/version_class_resolver.rb', line 61 def remainder self.class.get_class(version_name: @version_name, class_name: 'remainder') end |
#solar_term ⇒ Class
二十四節気クラスを返す
70 71 72 |
# File 'lib/zakuro/context/version_class_resolver.rb', line 70 def solar_term self.class.get_class(version_name: @version_name, class_name: 'solar_term') end |
#vanished_date_parameter ⇒ Class
滅日引数を返す
99 100 101 102 103 |
# File 'lib/zakuro/context/version_class_resolver.rb', line 99 def vanished_date_parameter self.class.get_class( version_name: @version_name, class_name: 'vanished_date_parameter' ) end |