Class: Zakuro::Japan::Gengou::Alignment::Line
- Inherits:
-
Object
- Object
- Zakuro::Japan::Gengou::Alignment::Line
- Defined in:
- lib/zakuro/era/japan/gengou/alignment/line.rb
Overview
Line 行
Instance Attribute Summary collapse
-
#list ⇒ Array<LinearGengou>
readonly
元号.
Instance Method Summary collapse
-
#get(start_date:, last_date:) ⇒ Array<LinearGengou>
範囲内の元号を取得する.
-
#get_by_name(name:) ⇒ Array<LinearGengou>
範囲内の元号を取得する(元号名).
-
#initialize ⇒ Line
constructor
初期化.
-
#push(list: []) ⇒ Array<LinearGengou>
追加する.
Constructor Details
#initialize ⇒ Line
初期化
25 26 27 |
# File 'lib/zakuro/era/japan/gengou/alignment/line.rb', line 25 def initialize @list = [] end |
Instance Attribute Details
#list ⇒ Array<LinearGengou> (readonly)
Returns 元号.
20 21 22 |
# File 'lib/zakuro/era/japan/gengou/alignment/line.rb', line 20 def list @list end |
Instance Method Details
#get(start_date:, last_date:) ⇒ Array<LinearGengou>
範囲内の元号を取得する
73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/zakuro/era/japan/gengou/alignment/line.rb', line 73 def get(start_date:, last_date:) result = [] list.each do |gengou| next if gengou.out?(start_date: start_date, last_date: last_date) # 1日でも範囲内であれば対象とみなす result.push(gengou) end result end |
#get_by_name(name:) ⇒ Array<LinearGengou>
範囲内の元号を取得する(元号名)
92 93 94 95 96 97 98 99 |
# File 'lib/zakuro/era/japan/gengou/alignment/line.rb', line 92 def get_by_name(name:) result = [] list.each do |gengou| result.push(gengou) if gengou.name == name end result end |
#push(list: []) ⇒ Array<LinearGengou>
追加する
下記のパターンが存在し、戻り値は重複分となる
-
完全に範囲外(開始日より前)
[@list]: |-------|-------|
[list]: |---|
-
前半のみ範囲外
[@list]: |-------|-------|
[list]: |------|
-
範囲内
[@list]: |-------|-------|
[list]: |------|
-
後半のみ範囲外
[@list]: |-------|-------|
[list]: |------|
-
完全に範囲外(開始日より後)
[@list]: |-------|-------|
[list]: |----|
-
両端が範囲外
[@list]: |-------|-------|
[list]: |--------------------|
57 58 59 60 61 62 63 |
# File 'lib/zakuro/era/japan/gengou/alignment/line.rb', line 57 def push(list: []) rest = rest(list: list) insert(list: list) rest end |