Class: Zakuro::Calculation::Base::Gengou
- Inherits:
-
Object
- Object
- Zakuro::Calculation::Base::Gengou
- Defined in:
- lib/zakuro/calculation/base/gengou.rb
Overview
Gengou 元号
Instance Attribute Summary collapse
-
#first_line ⇒ Array<LinearGengou>
readonly
1行目元号.
-
#last_date ⇒ Western::Calendar
readonly
終了日.
-
#second_line ⇒ Array<LinearGengou>
readonly
2行目元号.
-
#start_date ⇒ Western::Calendar
readonly
開始日.
Instance Method Summary collapse
-
#initialize(start_date: Western::Calendar.new, last_date: Western::Calendar.new, first_line: [], second_line: []) ⇒ Gengou
constructor
初期化.
-
#invalid? ⇒ True, False
不正か.
-
#match_by_name(name:) ⇒ LinearGengou
元号を取得する.
-
#match_first_line(date: Western::Calendar) ⇒ LinearGengou
1行目元号を取得する.
-
#match_first_line_by_name(name:) ⇒ LinearGengou
1行目元号を取得する.
-
#match_second_line(date: Western::Calendar) ⇒ LinearGengou
2行目元号を取得する.
-
#match_second_line_by_name(name:) ⇒ LinearGengou
2行目元号を取得する.
Constructor Details
#initialize(start_date: Western::Calendar.new, last_date: Western::Calendar.new, first_line: [], second_line: []) ⇒ Gengou
初期化
32 33 34 35 36 37 38 |
# File 'lib/zakuro/calculation/base/gengou.rb', line 32 def initialize(start_date: Western::Calendar.new, last_date: Western::Calendar.new, first_line: [], second_line: []) @start_date = start_date @last_date = last_date @first_line = first_line @second_line = second_line end |
Instance Attribute Details
#first_line ⇒ Array<LinearGengou> (readonly)
Returns 1行目元号.
20 21 22 |
# File 'lib/zakuro/calculation/base/gengou.rb', line 20 def first_line @first_line end |
#last_date ⇒ Western::Calendar (readonly)
Returns 終了日.
18 19 20 |
# File 'lib/zakuro/calculation/base/gengou.rb', line 18 def last_date @last_date end |
#second_line ⇒ Array<LinearGengou> (readonly)
Returns 2行目元号.
22 23 24 |
# File 'lib/zakuro/calculation/base/gengou.rb', line 22 def second_line @second_line end |
#start_date ⇒ Western::Calendar (readonly)
Returns 開始日.
16 17 18 |
# File 'lib/zakuro/calculation/base/gengou.rb', line 16 def start_date @start_date end |
Instance Method Details
#invalid? ⇒ True, False
不正か
120 121 122 |
# File 'lib/zakuro/calculation/base/gengou.rb', line 120 def invalid? first_line.empty? && second_line.empty? end |
#match_by_name(name:) ⇒ LinearGengou
元号を取得する
77 78 79 80 81 82 |
# File 'lib/zakuro/calculation/base/gengou.rb', line 77 def match_by_name(name:) result = match_first_line_by_name(name: name) return result unless result.invalid? match_second_line_by_name(name: name) end |
#match_first_line(date: Western::Calendar) ⇒ LinearGengou
1行目元号を取得する
47 48 49 50 51 52 53 |
# File 'lib/zakuro/calculation/base/gengou.rb', line 47 def match_first_line(date: Western::Calendar) first_line.each do |line| return line.clone if line.include?(date: date) end LinearGengou.new end |
#match_first_line_by_name(name:) ⇒ LinearGengou
1行目元号を取得する
91 92 93 94 95 96 97 |
# File 'lib/zakuro/calculation/base/gengou.rb', line 91 def match_first_line_by_name(name:) first_line.each do |line| return line.clone if line.name == name end LinearGengou.new end |
#match_second_line(date: Western::Calendar) ⇒ LinearGengou
2行目元号を取得する
62 63 64 65 66 67 68 |
# File 'lib/zakuro/calculation/base/gengou.rb', line 62 def match_second_line(date: Western::Calendar) second_line.each do |line| return line.clone if line.include?(date: date) end LinearGengou.new end |
#match_second_line_by_name(name:) ⇒ LinearGengou
2行目元号を取得する
106 107 108 109 110 111 112 |
# File 'lib/zakuro/calculation/base/gengou.rb', line 106 def match_second_line_by_name(name:) second_line.each do |line| return line.clone if line.name == name end LinearGengou.new end |