Class: Zakuro::Japan::Type::Validation::VersionRange

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

Overview

VersionRange 暦期間情報

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(hash:, index:) ⇒ VersionRange

初期化

Parameters:

  • hash (Hash<String, Strin>)

    元号情報

  • index (Integer)

    暦情報の要素位置



36
37
38
39
40
41
42
# File 'lib/zakuro/era/japan/type/validation/version_range.rb', line 36

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

Instance Attribute Details

#indexInteger (readonly)

Returns 要素位置.

Returns:

  • (Integer)

    要素位置



19
20
21
# File 'lib/zakuro/era/japan/type/validation/version_range.rb', line 19

def index
  @index
end

#nameString (readonly)

Returns 元号名.

Returns:

  • (String)

    元号名



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

def name
  @name
end

#releasedTrue, False (readonly)

Returns:

  • (True)

    リリース有

  • (False)

    リリース無



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

def released
  @released
end

#start_dateHash<String, String> (readonly)

Returns 開始日.

Returns:

  • (Hash<String, String>)

    開始日



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

def start_date
  @start_date
end

#start_yearHash<String, String> (readonly)

Returns 開始年.

Returns:

  • (Hash<String, String>)

    開始年



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

def start_year
  @start_year
end

Instance Method Details

#name?True, False

元号名を検証する

Returns:

  • (True)

    正しい

  • (False)

    正しくない



70
71
72
73
74
# File 'lib/zakuro/era/japan/type/validation/version_range.rb', line 70

def name?
  return false unless name

  name.is_a?(String)
end

#released?True, False

リリース有無を検証する

Returns:

  • (True)

    正しい

  • (False)

    正しくない



100
101
102
103
104
# File 'lib/zakuro/era/japan/type/validation/version_range.rb', line 100

def released?
  return false if released.nil?

  released.is_a?(TrueClass) || released.is_a?(FalseClass)
end

#validateArray<String>

検証する

Returns:

  • (Array<String>)

    不正メッセージ



49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/zakuro/era/japan/type/validation/version_range.rb', line 49

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

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

  failed |= validate_start_year

  failed |= validate_start_date

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

  failed
end

#validate_start_dateArray<String>

開始日を検証する

Returns:

  • (Array<String>)

    不正メッセージ



90
91
92
# File 'lib/zakuro/era/japan/type/validation/version_range.rb', line 90

def validate_start_date
  Both::Date.new(hash: start_date).validate
end

#validate_start_yearArray<String>

開始年を検証する

Returns:

  • (Array<String>)

    不正メッセージ



81
82
83
# File 'lib/zakuro/era/japan/type/validation/version_range.rb', line 81

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