class Zakuro::VersionFactory

VersionFactory 暦生成

Public Class Methods

get_runnable_constant(date:) click to toggle source

実行可能な暦を取得する

@param [Date] date 西暦日

@return [AbstractVersion] 暦クラス

# File lib/zakuro/version_factory.rb, line 31
def self.get_runnable_constant(date:)
  class_name = Japan::Reki.class_name(
    date: Western::Calendar.create(date: date)
  )
  constant = Object.const_get(class_name)
  raise ArgumentError, 'unreleased version' unless constant::RELEASE

  constant
rescue StandardError => e
  raise e
end
to_japan_date(western_date:) click to toggle source

西暦日から和暦日に変換する

@param [Date] western_date 西暦日

@return [Result::Single] 和暦日

# File lib/zakuro/version_factory.rb, line 52
def self.to_japan_date(western_date:)
  runnable = VersionFactory.get_runnable_constant(date: western_date)
  runnable.to_japan_date(western_date: western_date)
rescue StandardError => e
  raise Output::ZakuroError, e.message
end