Class: Zakuro::Japan::Type::Validation::GengouSet
- Inherits:
-
Object
- Object
- Zakuro::Japan::Type::Validation::GengouSet
- Defined in:
- lib/zakuro/era/japan/type/validation/gengou_set.rb
Overview
GengouSet 元号セット情報の検証/展開
Instance Attribute Summary collapse
-
#id ⇒ String
readonly
元号セットID.
-
#last_date ⇒ Hash<String, String>
readonly
終了日.
-
#last_year ⇒ Hash<String, String>
readonly
終了年.
-
#list ⇒ Array<Hash<String, String>>
readonly
元号情報.
-
#name ⇒ String
readonly
元号セット名.
Instance Method Summary collapse
-
#id? ⇒ True, False
IDを検証する.
-
#initialize(hash:) ⇒ GengouSet
constructor
初期化.
-
#list? ⇒ True, False
元号情報を検証する.
-
#name? ⇒ True, False
元号セット名を検証する.
-
#validate ⇒ Array<String>
検証する.
-
#validate_last_date ⇒ Array<String>
終了日を検証する.
-
#validate_last_year ⇒ Array<String>
終了年を検証する.
-
#validate_list ⇒ Array<String>
元号情報を検証する.
Constructor Details
#initialize(hash:) ⇒ GengouSet
初期化
34 35 36 37 38 39 40 |
# File 'lib/zakuro/era/japan/type/validation/gengou_set.rb', line 34 def initialize(hash:) @id = hash['id'] @name = hash['name'] @last_year = hash['last_year'] @last_date = hash['last_date'] @list = hash['list'] end |
Instance Attribute Details
#id ⇒ String (readonly)
Returns 元号セットID.
19 20 21 |
# File 'lib/zakuro/era/japan/type/validation/gengou_set.rb', line 19 def id @id end |
#last_date ⇒ Hash<String, String> (readonly)
Returns 終了日.
25 26 27 |
# File 'lib/zakuro/era/japan/type/validation/gengou_set.rb', line 25 def last_date @last_date end |
#last_year ⇒ Hash<String, String> (readonly)
Returns 終了年.
23 24 25 |
# File 'lib/zakuro/era/japan/type/validation/gengou_set.rb', line 23 def last_year @last_year end |
#list ⇒ Array<Hash<String, String>> (readonly)
Returns 元号情報.
27 28 29 |
# File 'lib/zakuro/era/japan/type/validation/gengou_set.rb', line 27 def list @list end |
#name ⇒ String (readonly)
Returns 元号セット名.
21 22 23 |
# File 'lib/zakuro/era/japan/type/validation/gengou_set.rb', line 21 def name @name end |
Instance Method Details
#id? ⇒ True, False
IDを検証する
67 68 69 70 71 |
# File 'lib/zakuro/era/japan/type/validation/gengou_set.rb', line 67 def id? return false unless id id.is_a?(Integer) end |
#list? ⇒ True, False
元号情報を検証する
109 110 111 112 113 |
# File 'lib/zakuro/era/japan/type/validation/gengou_set.rb', line 109 def list? return false unless list list.is_a?(Array) end |
#name? ⇒ True, False
元号セット名を検証する
79 80 81 82 83 |
# File 'lib/zakuro/era/japan/type/validation/gengou_set.rb', line 79 def name? return false unless @name name.is_a?(String) end |
#validate ⇒ Array<String>
検証する
47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/zakuro/era/japan/type/validation/gengou_set.rb', line 47 def validate failed = [] failed.push("invalid id. #{id}") unless id? failed.push("invalid name. #{name}") unless name? failed |= validate_last_year failed |= validate_last_date failed |= validate_list failed end |
#validate_last_date ⇒ Array<String>
終了日を検証する
99 100 101 |
# File 'lib/zakuro/era/japan/type/validation/gengou_set.rb', line 99 def validate_last_date SwitchDate.new(hash: last_date).validate end |
#validate_last_year ⇒ Array<String>
終了年を検証する
90 91 92 |
# File 'lib/zakuro/era/japan/type/validation/gengou_set.rb', line 90 def validate_last_year Both::Year.new(hash: last_year).validate end |
#validate_list ⇒ Array<String>
元号情報を検証する
120 121 122 123 124 125 126 127 128 |
# File 'lib/zakuro/era/japan/type/validation/gengou_set.rb', line 120 def validate_list return ["invalid list. #{list.class}"] unless list? failed = [] list.each_with_index do |li, index| failed |= Gengou.new(hash: li, index: index).validate end failed end |