class TokyoMetro::Api::TrainLocation::Info::Delay

Attributes

delay[R]

Public Class Methods

new( delay ) click to toggle source
# File lib/tokyo_metro/api/train_location/info/delay.rb, line 3
def initialize( delay )
  @delay = delay.try( :floor )
end

Public Instance Methods

decorate( request ) click to toggle source
# File lib/tokyo_metro/api/train_location/info/delay.rb, line 21
def decorate( request )
  ::TokyoMetro::Factory::Decorate::Api::TrainLocation::Info::Delay.new( request , self )
end
delayed?() click to toggle source
# File lib/tokyo_metro/api/train_location/info/delay.rb, line 94
def delayed?
  has_valid_delay? and @delay >= 180
end
displayed_in_train_operation_info?() click to toggle source
# File lib/tokyo_metro/api/train_location/info/delay.rb, line 9
def displayed_in_train_operation_info?
  @delay.present? and @delay > 0
end
hour_part() click to toggle source
# File lib/tokyo_metro/api/train_location/info/delay.rb, line 25
def hour_part
  @delay / 3600
end
min() click to toggle source
# File lib/tokyo_metro/api/train_location/info/delay.rb, line 17
def min
  ( @delay * 1.0 / 60 ).ceil
end
min_part( add_hour_part: false ) click to toggle source
# File lib/tokyo_metro/api/train_location/info/delay.rb, line 29
def min_part( add_hour_part: false )
  _min_part = @delay / 60
  if add_hour_part
    _min_part % 60
  else
    _min_part
  end
end
nearly_on_schedule?() click to toggle source
# File lib/tokyo_metro/api/train_location/info/delay.rb, line 90
def nearly_on_schedule?
  has_valid_delay? and @delay >= 30 and @delay < 180
end
on_schedule?() click to toggle source
# File lib/tokyo_metro/api/train_location/info/delay.rb, line 86
def on_schedule?
  has_valid_delay? and @delay < 30
end
sec() click to toggle source
# File lib/tokyo_metro/api/train_location/info/delay.rb, line 13
def sec
  @delay
end
sec_part() click to toggle source
# File lib/tokyo_metro/api/train_location/info/delay.rb, line 38
def sec_part
  @delay % 60
end
to_h( add_hour_part: false ) click to toggle source
# File lib/tokyo_metro/api/train_location/info/delay.rb, line 42
def to_h( add_hour_part: false )
  if add_hour_part
    { hour: hour_part , min: min_part( add_hour_part: true ) , sec: sec_part }
  else
    { min: min_part , sec: sec_part }
  end
end
to_s_en( add_hour_part: false ) click to toggle source
# File lib/tokyo_metro/api/train_location/info/delay.rb, line 73
def to_s_en( add_hour_part: false )
  ary = ::Array.new
  if add_hour_part
    ary << hour_part
    ary << "hour"
  end
  ary << min_part( add_hour_part: add_hour_part )
  ary << "min"
  ary << sec_part
  ary << "sec"
  ary.map( &:to_s ).join( " " )
end
to_s_ja( add_hour_part: false ) click to toggle source
# File lib/tokyo_metro/api/train_location/info/delay.rb, line 60
def to_s_ja( add_hour_part: false )
  ary = ::Array.new
  if add_hour_part
    ary << hour_part
    ary << "時間"
  end
  ary << min_part( add_hour_part: add_hour_part )
  ary << "分"
  ary << sec_part
  ary << "秒"
  ary.map( &:to_s ).join
end
to_s_separated_by_comma( add_hour_part: false ) click to toggle source
# File lib/tokyo_metro/api/train_location/info/delay.rb, line 50
def to_s_separated_by_comma( add_hour_part: false )
  ary = ::Array.new
  if add_hour_part
    ary << hour_part
  end
  ary << sprintf( "%02d" , min_part( add_hour_part: add_hour_part ) )
  ary << sprintf( "%02d" , sec_part )
  ary.map( &:to_s ).join( ":" )
end

Private Instance Methods

has_valid_delay?() click to toggle source
# File lib/tokyo_metro/api/train_location/info/delay.rb, line 100
def has_valid_delay?
  @delay.present?
end