Class: TokyoMetro::Api::TrainOperation::Info

Overview

個別の路線の運行情報を扱うクラス

Defined Under Namespace

Classes: BasicError, JsonParserError, NetworkError

運行情報のメタデータ (For developers) collapse

運行情報のデータ (For users) collapse

Attributes inherited from MetaClass::Fundamental::Info

#id_urn

運行情報のデータ (For users) collapse

Instance Method Summary collapse

Methods included from Modules::Api::Info::ToStringGeneral

#to_s

Methods included from Modules::Common::Info::Decision::RailwayLine

#on_marunouchi_line_including_branch?, #on_namboku_or_toei_mita_line?, #on_toei_mita_line?, #on_yurakucho_or_fukutoshin_line?

Methods included from Modules::Api::Info::Validity

#valid?, #validity

Methods included from Modules::Api::Info::ToJson

#to_json

Constructor Details

#initialize(id_urn, dc_date, valid, operator, time_of_origin, railway_line, info_status, info_text) ⇒ Info

Note:

運行ステータスは、平常時は省略。運行情報が存在する場合は「運行情報あり」を格納。遅延などの情報を取得可能な場合は、「遅延」等のテキストを格納。

Constructor

Parameters:

  • id_urn (String)

    固有識別子 (ucode) <id - URN>

  • date (DateTime)

    データ生成時刻(ISO8601 日付時刻形式をもとに生成した DateTime のインスタンス) - xsd:dateTime

  • valid (DateTime)

    有効期限(ISO8601 日付時刻形式をもとに生成した DateTime のインスタンス) - xsd:dateTime

  • operator (String)

    運行会社 <odpt:operator - odpt:Operator>

  • time_of_origin (DateTime)

    発生時刻(ISO8601 日付時刻形式をもとに生成した DateTime のインスタンス) - xsd:dateTime

  • railway_line (String)

    発生路線 <odpt:railway - odpt:Railway>

  • info_status (String)

    運行ステータス <odpt:trainInformationStatus - xsd:string>

  • info_text (String)

    運行情報テキスト <odpt:trainInformationText - xsd:string>



21
22
23
24
25
26
27
28
29
30
31
# File 'lib/tokyo_metro/api/train_operation/info.rb', line 21

def initialize(
  id_urn ,
  dc_date , valid ,
  operator , time_of_origin , railway_line ,
  info_status , info_text
)
  @id_urn = id_urn
  @dc_date , @valid = dc_date , valid
  @operator , @time_of_origin , @railway_line = operator , time_of_origin , railway_line
  @status , @text = info_status , info_text
end

Instance Attribute Details

#dc_dateDateTime (readonly)

データ生成時刻(ISO8601 日付時刻形式をもとに生成した DateTime のインスタンス) - xsd:dateTime

Examples:

2013–01–13T15:10:00+09:00

Returns:

  • (DateTime)


39
40
41
# File 'lib/tokyo_metro/api/train_operation/info.rb', line 39

def dc_date
  @dc_date
end

#operatorString (readonly)

運行会社 - odpt:Operator

Returns:

  • (String)


49
50
51
# File 'lib/tokyo_metro/api/train_operation/info.rb', line 49

def operator
  @operator
end

#railway_lineString (readonly)

発生路線 - odpt:Railway

Returns:

  • (String)


57
58
59
# File 'lib/tokyo_metro/api/train_operation/info.rb', line 57

def railway_line
  @railway_line
end

#statusString (readonly)

Note:

平常時は省略する。運行情報が存在する場合は「運行情報あり」を格納し、遅延などの情報を取得可能な場合は、「遅延」等のテキストを格納する。

運行情報の文字列 - xsd:string

Returns:

  • (String)


62
63
64
# File 'lib/tokyo_metro/api/train_operation/info.rb', line 62

def status
  @status
end

#textString (readonly)

運行情報テキスト - xsd:string

Returns:

  • (String)


66
67
68
# File 'lib/tokyo_metro/api/train_operation/info.rb', line 66

def text
  @text
end

#time_of_originDateTime (readonly)

発生時刻(ISO8601 日付時刻形式をもとに生成した DateTime のインスタンス) - xsd:dateTime

Returns:

  • (DateTime)


53
54
55
# File 'lib/tokyo_metro/api/train_operation/info.rb', line 53

def time_of_origin
  @time_of_origin
end

#validDateTime (readonly)

有効期限(ISO8601 日付時刻形式をもとに生成した DateTime のインスタンス) - xsd:dateTime

Returns:

  • (DateTime)


43
44
45
# File 'lib/tokyo_metro/api/train_operation/info.rb', line 43

def valid
  @valid
end

Instance Method Details

#decorate(request, railway_line, max_delay, controller, no_train) ⇒ Object



70
71
72
# File 'lib/tokyo_metro/api/train_operation/info.rb', line 70

def decorate( request , railway_line , max_delay , controller , no_train )
  ::TokyoMetro::Factory::Decorate::Api::TrainOperation::Info.new( request , self , railway_line , max_delay , controller , no_train )
end

#on_schedule?Boolean

Returns:

  • (Boolean)


133
134
135
# File 'lib/tokyo_metro/api/train_operation/info.rb', line 133

def on_schedule?
  train_operation_text.on_schedule?
end

#placeObject



129
130
131
# File 'lib/tokyo_metro/api/train_operation/info.rb', line 129

def place
  train_operation_text.place
end

#text_enObject



121
122
123
124
125
126
127
# File 'lib/tokyo_metro/api/train_operation/info.rb', line 121

def text_en
  if on_schedule?
    "Trains are operated on schedule."
  else
    nil
  end
end

#text_in_apiObject



117
118
119
# File 'lib/tokyo_metro/api/train_operation/info.rb', line 117

def text_in_api
  train_operation_text.in_api
end

#to_hHash

インスタンスの情報をハッシュにして返すメソッド

Returns:

  • (Hash)


76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# File 'lib/tokyo_metro/api/train_operation/info.rb', line 76

def to_h
  h = Hash.new

  set_data_to_hash( h , "odpt:operator" , @operator )
  set_data_to_hash( h , "odpt:railway" , @railway_line )

  set_data_to_hash( h , "\@id" , @id_urn )
  set_data_to_hash( h , "dc:date" , @dc_date.to_s )
  set_data_to_hash( h , "dct:valid" , @valid.to_s )

  set_data_to_hash( h , "odpt:timeOfOrigin" , @time_of_origin.to_s )
  set_data_to_hash( h , "odpt:trainInformationStatus" , @status )
  set_data_to_hash( h , "odpt:trainInformationText" , @text )

  h
end

#train_operation_statusObject



95
96
97
98
99
100
101
102
103
104
105
106
# File 'lib/tokyo_metro/api/train_operation/info.rb', line 95

def train_operation_status
  if @status.present?
    status_in_db = ::TrainOperation::Status.find_by( in_api: @status )
    if status_in_db.present?
      status_in_db
    else
      ::TrainOperation::Status.create( in_api: @status , id: ::TrainOperation::Status.pluck(:id).max + 1 )
    end
  else
    nil
  end
end

#train_operation_textObject



108
109
110
111
112
113
114
115
# File 'lib/tokyo_metro/api/train_operation/info.rb', line 108

def train_operation_text
  text_in_db = ::TrainOperation::Text.find_by( in_api: @text )
  if text_in_db.present?
    text_in_db
  else
    ::TrainOperation::Text.create( in_api: @text , id: ::TrainOperation::Text.pluck(:id).max + 1 )
  end
end

#update_train_operation_text_in_dbObject



145
146
147
148
# File 'lib/tokyo_metro/api/train_operation/info.rb', line 145

def update_train_operation_text_in_db
  t = train_operation_text
  return nil
end