Class: Zakuro::Japan::Gengou::Alignment::Aligner

Inherits:
Object
  • Object
show all
Defined in:
lib/zakuro/era/japan/gengou/alignment/aligner.rb

Overview

Aligner 元号整列

Constant Summary collapse

FIRST_LINE =

Returns 1行目元号.

Returns:

  • (Integer)

    1行目元号

0
SECOND_LINE =

Returns 2行目元号.

Returns:

  • (Integer)

    2行目元号

1
LINE_INDEXES =

Returns 元号リスト.

Returns:

  • (Array<Integer>)

    元号リスト

[FIRST_LINE, SECOND_LINE].freeze
LINE_SIZE =

Returns 行数.

Returns:

  • (Integer)

    行数

LINE_INDEXES.size

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(resources: []) ⇒ Aligner

初期化

Parameters:

  • resources (Array<Set>) (defaults to: [])

    元号解析結果



41
42
43
44
45
46
47
48
# File 'lib/zakuro/era/japan/gengou/alignment/aligner.rb', line 41

def initialize(resources: [])
  @lines = []
  (1..LINE_SIZE).each do |_index|
    lines.push(Line.new)
  end

  save(resources: resources)
end

Instance Attribute Details

#linesArray<Line> (readonly)

Returns 行元号.

Returns:

  • (Array<Line>)

    行元号



34
35
36
# File 'lib/zakuro/era/japan/gengou/alignment/aligner.rb', line 34

def lines
  @lines
end

Instance Method Details

#get(line:, start_date:, last_date:) ⇒ Array<LinearGengou>

指定した範囲内の元号を取得する

Parameters:

Returns:

Raises:

  • (ArgumentError)

    引数エラー



73
74
75
76
77
# File 'lib/zakuro/era/japan/gengou/alignment/aligner.rb', line 73

def get(line:, start_date:, last_date:)
  raise ArgumentError.new, 'invalid line number' unless LINE_INDEXES.include?(line)

  lines[line].get(start_date: start_date, last_date: last_date)
end

#get_by_name(line:, name:) ⇒ Array<LinearGengou>

指定した範囲内の元号を取得する(元号名)

Parameters:

  • line (Integer)

  • name (String)

    元号名

Returns:

Raises:

  • (ArgumentError)

    引数エラー



89
90
91
92
93
# File 'lib/zakuro/era/japan/gengou/alignment/aligner.rb', line 89

def get_by_name(line:, name:)
  raise ArgumentError.new, 'invalid line number' unless LINE_INDEXES.include?(line)

  lines[line].get_by_name(name: name)
end

#push(set:) ⇒ Object

行元号に追加する

Parameters:

  • set (Set)

    元号セット



55
56
57
58
59
60
# File 'lib/zakuro/era/japan/gengou/alignment/aligner.rb', line 55

def push(set:)
  list = set.list
  list.each do |gengou|
    push_gengou(gengou: gengou)
  end
end