class TokyoMetro::Api::TrainOperation::Info

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

Attributes

dc_date[R]

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

2013–01–13T15:10:00+09:00
operator[R]

運行会社 - odpt:Operator @return [String]

railway_line[R]

発生路線 - odpt:Railway @return [String]

status[R]

運行情報の文字列 - xsd:string @return [String] @note 平常時は省略する。運行情報が存在する場合は「運行情報あり」を格納し、遅延などの情報を取得可能な場合は、「遅延」等のテキストを格納する。

text[R]

運行情報テキスト - xsd:string @return [String]

time_of_origin[R]

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

valid[R]

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

Public Class Methods

new( id_urn , dc_date , valid , operator , time_of_origin , railway_line , info_status , info_text ) click to toggle source

Constructor @param id_urn [String] 固有識別子 (ucode) <id - URN> @param date [DateTime] データ生成時刻(ISO8601 日付時刻形式をもとに生成した DateTime のインスタンス) - xsd:dateTime @param valid [DateTime] 有効期限(ISO8601 日付時刻形式をもとに生成した DateTime のインスタンス) - xsd:dateTime @param operator [String] 運行会社 <odpt:operator - odpt:Operator> @param time_of_origin [DateTime] 発生時刻(ISO8601 日付時刻形式をもとに生成した DateTime のインスタンス) - xsd:dateTime @param railway_line [String] 発生路線 <odpt:railway - odpt:Railway> @param info_status [String] 運行ステータス <odpt:trainInformationStatus - xsd:string> @param info_text [String] 運行情報テキスト <odpt:trainInformationText - xsd:string> @note 運行ステータスは、平常時は省略。運行情報が存在する場合は「運行情報あり」を格納。遅延などの情報を取得可能な場合は、「遅延」等のテキストを格納。

# 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

Public Instance Methods

decorate( request , railway_line , max_delay , controller , no_train ) click to toggle source
# 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?() click to toggle source
# File lib/tokyo_metro/api/train_operation/info.rb, line 133
def on_schedule?
  train_operation_text.on_schedule?
end
place() click to toggle source
# File lib/tokyo_metro/api/train_operation/info.rb, line 129
def place
  train_operation_text.place
end
text_en() click to toggle source
# 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_api() click to toggle source
# File lib/tokyo_metro/api/train_operation/info.rb, line 117
def text_in_api
  train_operation_text.in_api
end
to_h() click to toggle source

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

# 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_status() click to toggle source

@!endgroup

# 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_text() click to toggle source
# 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_db() click to toggle source
# 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