Class: Zakuro::Context::Option

Inherits:
Object
  • Object
show all
Defined in:
lib/zakuro/context/option.rb

Overview

Option オプション値

Constant Summary collapse

INVALID_VERSION_NAME =

Returns 無効暦名.

Returns:

  • (String)

    無効暦名

''
VERSION_NAMES =

Returns 暦名.

Returns:

  • (Array<String>)

    暦名

%w[Genka Gihou Daien Senmyou Joukyou Kansei Tenpou Gregorio].freeze
DROPPED_DATE_KEY =

Returns 没日オプションキー名.

Returns:

  • (String)

    没日オプションキー名

'dropped_date'
VANISHED_DATE_KEY =

Returns 滅日オプションキー名.

Returns:

  • (String)

    滅日オプションキー名

'vanished_date'

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(default_version: INVALID_VERSION_NAME, hash: {}) ⇒ Option

初期化

Parameters:

  • default_version (String) (defaults to: INVALID_VERSION_NAME)

    デフォルト暦名

  • options (Hash<String, Object>)

    オプション値



34
35
36
37
# File 'lib/zakuro/context/option.rb', line 34

def initialize(default_version: INVALID_VERSION_NAME, hash: {})
  @default_version = default_version
  @hash = hash
end

Instance Attribute Details

#default_versionString (readonly)

Returns デフォルト暦名.

Returns:

  • (String)

    デフォルト暦名



25
26
27
# File 'lib/zakuro/context/option.rb', line 25

def default_version
  @default_version
end

#hashHash<String, Object> (readonly)

Returns オプション値.

Returns:

  • (Hash<String, Object>)

    オプション値



23
24
25
# File 'lib/zakuro/context/option.rb', line 23

def hash
  @hash
end

Class Method Details

.version(version: INVALID_VERSION_NAME) ⇒ String

暦名を返す

Parameters:

  • version (String) (defaults to: INVALID_VERSION_NAME)

    暦名

Returns:

  • (String)

    暦名



110
111
112
113
114
115
116
117
118
# File 'lib/zakuro/context/option.rb', line 110

def version(version: INVALID_VERSION_NAME)
  return INVALID_VERSION_NAME unless version

  return INVALID_VERSION_NAME if version.empty?

  return INVALID_VERSION_NAME unless VERSION_NAMES.include?(version)

  version
end

.version?(version: INVALID_VERSION_NAME) ⇒ True, False

有効な暦か

Parameters:

  • version (String) (defaults to: INVALID_VERSION_NAME)

    暦名

Returns:

  • (True)

    有効

  • (False)

    無効



128
129
130
131
132
# File 'lib/zakuro/context/option.rb', line 128

def version?(version: INVALID_VERSION_NAME)
  return false if version == INVALID_VERSION_NAME

  true
end

Instance Method Details

#default_version?True, False

有効なデフォルト暦名か

Returns:

  • (True)

    有効

  • (False)

    無効



60
61
62
# File 'lib/zakuro/context/option.rb', line 60

def default_version?
  self.class.version?(version: @default_version)
end

#dropped_date?True, False

没日か

Returns:

  • (True)

    没日あり

  • (False)

    没日なし



80
81
82
83
84
85
86
# File 'lib/zakuro/context/option.rb', line 80

def dropped_date?
  value = @hash[DROPPED_DATE_KEY]

  return true if value.is_a?(TrueClass)

  false
end

#vanished_date?True, False

滅日か

Returns:

  • (True)

    滅日あり

  • (False)

    滅日なし



94
95
96
97
98
99
100
# File 'lib/zakuro/context/option.rb', line 94

def vanished_date?
  value = @hash[VANISHED_DATE_KEY]

  return true if value.is_a?(TrueClass)

  false
end

#versionString

暦名を返す

Returns:

  • (String)

    暦名



44
45
46
47
48
49
50
51
52
# File 'lib/zakuro/context/option.rb', line 44

def version
  version = self.class.version(version: @default_version)

  return version if self.class.version?(version: version)

  version = hash['version']

  self.class.version(version: version)
end

#version?True, False

有効な暦名か

Returns:

  • (True)

    有効

  • (False)

    無効



70
71
72
# File 'lib/zakuro/context/option.rb', line 70

def version?
  self.class.version?(version: version)
end