Class: TokyoMetro::ApiProcessor::RealTimeInfos

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/tokyo_metro/api_processor/real_time_infos.rb

Overview

リアルタイム情報を処理するためのクラス

Instance Attribute Summary collapse

路線(複数)の情報 collapse

Instance Method Summary collapse

Constructor Details

#initialize(railway_lines: ::Railway.tokyo_metro, http_client: ::HTTPClient.new) ⇒ RealTimeInfos

Constructor

Parameters:

  • railway_lines (::Railway) (defaults to: ::Railway.tokyo_metro)

    路線(複数)の情報(ActiveRecord により取得)

  • http_client (::HTTPClient.new) (defaults to: ::HTTPClient.new)

    リアルタイム情報を取得するための HTTP クライアントのインスタンス



7
8
9
10
11
12
13
14
15
16
17
# File 'lib/tokyo_metro/api_processor/real_time_infos.rb', line 7

def initialize( railway_lines: ::Railway.tokyo_metro , http_client: ::HTTPClient.new )
  @railway_lines = railway_lines
  raise "Error" unless has_any_railway_line?

  @http_client = http_client

  initialize_list_of_real_time_infos
  set_train_operation_infos_of_railway_lines( all: true )

  @provision_status = ::TokyoMetro::ApiProcessor::RealTimeInfos::ProvisionStatus.new
end

Instance Attribute Details

#http_clientObject (readonly)

Returns the value of attribute http_client.



20
21
22
# File 'lib/tokyo_metro/api_processor/real_time_infos.rb', line 20

def http_client
  @http_client
end

#infos_of_each_railway_lineObject (readonly)

Returns the value of attribute infos_of_each_railway_line.



21
22
23
# File 'lib/tokyo_metro/api_processor/real_time_infos.rb', line 21

def infos_of_each_railway_line
  @infos_of_each_railway_line
end

#provision_status::TokyoMetro::ApiProcessor::RealTimeInfos::ProvisionStatus (readonly)

列車運行情報、列車ロケーション情報の配信状況

Returns:

  • (::TokyoMetro::ApiProcessor::RealTimeInfos::ProvisionStatus)


25
26
27
# File 'lib/tokyo_metro/api_processor/real_time_infos.rb', line 25

def provision_status
  @provision_status
end

#railway_linesObject (readonly)

Returns the value of attribute railway_lines.



19
20
21
# File 'lib/tokyo_metro/api_processor/real_time_infos.rb', line 19

def railway_lines
  @railway_lines
end

Instance Method Details

#has_any_railway_line?Boolean

インスタンス変数 railway_lines に路線の情報が含まれているか否かを判定するメソッド

Returns:

  • (Boolean)


38
39
40
# File 'lib/tokyo_metro/api_processor/real_time_infos.rb', line 38

def has_any_railway_line?
  @railway_lines.present?
end

#has_any_railway_line_except_for_branch_lines?Boolean

インスタンス変数 railway_lines に「支線ではない路線」の情報が含まれているか否か

Returns:

  • (Boolean)


56
57
58
# File 'lib/tokyo_metro/api_processor/real_time_infos.rb', line 56

def has_any_railway_line_except_for_branch_lines?
  railway_lines_except_for_branch_lines.present?
end

#has_multiple_railway_lines?Boolean

インスタンス変数 railway_lines に含まれている路線の情報が複数か否かを判定するメソッド

Returns:

  • (Boolean)


50
51
52
# File 'lib/tokyo_metro/api_processor/real_time_infos.rb', line 50

def has_multiple_railway_lines?
  @railway_lines.length > 1
end

#has_multiple_railway_lines_except_for_branch_lines?Boolean

インスタンス変数 railway_lines に含まれている「支線ではない路線」の情報が1つか否かを判定するメソッド

Returns:

  • (Boolean)


68
69
70
# File 'lib/tokyo_metro/api_processor/real_time_infos.rb', line 68

def has_multiple_railway_lines_except_for_branch_lines?
  railway_lines_except_for_branch_lines.length > 1
end

#has_one_railway_line?Boolean

インスタンス変数 railway_lines に含まれている路線の情報が1つか否かを判定するメソッド

Returns:

  • (Boolean)


44
45
46
# File 'lib/tokyo_metro/api_processor/real_time_infos.rb', line 44

def has_one_railway_line?
  @railway_lines.length == 1
end

#has_one_railway_line_except_for_branch_lines?Boolean

インスタンス変数 railway_lines に含まれている「支線ではない路線」の情報が1つか否かを判定するメソッド

Returns:

  • (Boolean)


62
63
64
# File 'lib/tokyo_metro/api_processor/real_time_infos.rb', line 62

def has_one_railway_line_except_for_branch_lines?
  railway_lines_except_for_branch_lines.length == 1
end

#railway_lines_except_for_branch_linesObject

支線を除く路線(複数)のインスタンス



32
33
34
# File 'lib/tokyo_metro/api_processor/real_time_infos.rb', line 32

def railway_lines_except_for_branch_lines
  @railway_lines.except_for_branch_lines
end