Class: Zakuro::Japan::Type::Validation::Gengou

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

Overview

Gengou 元号情報

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(hash:, index:) ⇒ Gengou

初期化

Parameters:

  • hash (Hash<String, Strin>)

    元号情報

  • index (Integer)

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



35
36
37
38
39
40
# File 'lib/zakuro/era/japan/type/validation/gengou.rb', line 35

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

Instance Attribute Details

#indexInteger (readonly)

Returns 要素位置.

Returns:

  • (Integer)

    要素位置



21
22
23
# File 'lib/zakuro/era/japan/type/validation/gengou.rb', line 21

def index
  @index
end

#nameString (readonly)

Returns 元号名.

Returns:

  • (String)

    元号名



23
24
25
# File 'lib/zakuro/era/japan/type/validation/gengou.rb', line 23

def name
  @name
end

#start_dateHash<String, String> (readonly)

Returns 開始日.

Returns:

  • (Hash<String, String>)

    開始日



27
28
29
# File 'lib/zakuro/era/japan/type/validation/gengou.rb', line 27

def start_date
  @start_date
end

#start_yearHash<String, String> (readonly)

Returns 開始年.

Returns:

  • (Hash<String, String>)

    開始年



25
26
27
# File 'lib/zakuro/era/japan/type/validation/gengou.rb', line 25

def start_year
  @start_year
end

Instance Method Details

#name?True, False

元号名を検証する

Returns:

  • (True)

    正しい

  • (False)

    正しくない



66
67
68
69
70
# File 'lib/zakuro/era/japan/type/validation/gengou.rb', line 66

def name?
  return false unless name

  name.is_a?(String)
end

#validateArray<String>

検証する

Returns:

  • (Array<String>)

    不正メッセージ



47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/zakuro/era/japan/type/validation/gengou.rb', line 47

def validate
  prefix = "list[#{index}]. "
  failed = []

  failed.push(prefix + "invalid name. #{name}") unless name?

  failed |= validate_start_year

  failed |= validate_start_date

  failed
end

#validate_start_dateArray<String>

開始日を検証する

Returns:

  • (Array<String>)

    不正メッセージ



86
87
88
# File 'lib/zakuro/era/japan/type/validation/gengou.rb', line 86

def validate_start_date
  SwitchDate.new(hash: start_date).validate
end

#validate_start_yearArray<String>

開始年を検証する

Returns:

  • (Array<String>)

    不正メッセージ



77
78
79
# File 'lib/zakuro/era/japan/type/validation/gengou.rb', line 77

def validate_start_year
  Both::Year.new(hash: start_year).validate
end