Class: Zakuro::Japan::Gengou::Resource::Parser::GengouParser

Inherits:
Object
  • Object
show all
Defined in:
lib/zakuro/era/japan/gengou/resource/parser.rb

Overview

GengouParser 元号情報の検証/展開を行う

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(hash:, index:, operated: false) ⇒ GengouParser

初期化

Parameters:

  • hash (Hash<String, Strin>)

    元号情報

  • index (Integer)

    (元号セット内での)元号の要素位置

  • operated (True, False) (defaults to: false)

    運用値設定



46
47
48
49
50
51
52
# File 'lib/zakuro/era/japan/gengou/resource/parser.rb', line 46

def initialize(hash:, index:, operated: false)
  @index = index
  @name = hash['name']
  @start_year = hash['start_year']
  @start_date = hash['start_date']
  @operated = operated
end

Instance Attribute Details

#indexInteger (readonly)

Returns 要素位置.

Returns:

  • (Integer)

    要素位置



29
30
31
# File 'lib/zakuro/era/japan/gengou/resource/parser.rb', line 29

def index
  @index
end

#nameString (readonly)

Returns 元号名.

Returns:

  • (String)

    元号名



31
32
33
# File 'lib/zakuro/era/japan/gengou/resource/parser.rb', line 31

def name
  @name
end

#operatedTrue, False (readonly)

Returns 運用値.

Returns:

  • (True, False)

    運用値



37
38
39
# File 'lib/zakuro/era/japan/gengou/resource/parser.rb', line 37

def operated
  @operated
end

#start_dateHash<String, String> (readonly)

Returns 開始日.

Returns:

  • (Hash<String, String>)

    開始日



35
36
37
# File 'lib/zakuro/era/japan/gengou/resource/parser.rb', line 35

def start_date
  @start_date
end

#start_yearHash<String, String> (readonly)

Returns 開始年.

Returns:

  • (Hash<String, String>)

    開始年



33
34
35
# File 'lib/zakuro/era/japan/gengou/resource/parser.rb', line 33

def start_year
  @start_year
end

Instance Method Details

#createType::Base::Gengou

元号情報を生成する

Returns:



59
60
61
62
63
64
65
# File 'lib/zakuro/era/japan/gengou/resource/parser.rb', line 59

def create
  year = Both::YearParser.new(hash: start_year).create
  date = SwitchDateParser.new(hash: start_date, operated: operated).create

  Type::Base::Gengou.new(name: name, start_year: year,
                         start_date: date)
end