Class: TokyoMetro::Api::TrainLocation::Info::Delay

Inherits:
Object
  • Object
show all
Defined in:
lib/tokyo_metro/api/train_location/info/delay.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(delay) ⇒ Delay

Returns a new instance of Delay.



3
4
5
# File 'lib/tokyo_metro/api/train_location/info/delay.rb', line 3

def initialize( delay )
  @delay = delay.try( :floor )
end

Instance Attribute Details

#delayObject (readonly)

Returns the value of attribute delay.



7
8
9
# File 'lib/tokyo_metro/api/train_location/info/delay.rb', line 7

def delay
  @delay
end

Instance Method Details

#decorate(request) ⇒ Object



21
22
23
# 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?Boolean

Returns:

  • (Boolean)


94
95
96
# 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?Boolean

Returns:

  • (Boolean)


9
10
11
# 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_partObject



25
26
27
# File 'lib/tokyo_metro/api/train_location/info/delay.rb', line 25

def hour_part
  @delay / 3600
end

#minObject



17
18
19
# 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) ⇒ Object



29
30
31
32
33
34
35
36
# 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?Boolean

Returns:

  • (Boolean)


90
91
92
# 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?Boolean

Returns:

  • (Boolean)


86
87
88
# File 'lib/tokyo_metro/api/train_location/info/delay.rb', line 86

def on_schedule?
  has_valid_delay? and @delay < 30
end

#secObject



13
14
15
# File 'lib/tokyo_metro/api/train_location/info/delay.rb', line 13

def sec
  @delay
end

#sec_partObject



38
39
40
# File 'lib/tokyo_metro/api/train_location/info/delay.rb', line 38

def sec_part
  @delay % 60
end

#to_h(add_hour_part: false) ⇒ Object



42
43
44
45
46
47
48
# 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) ⇒ Object



73
74
75
76
77
78
79
80
81
82
83
84
# 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) ⇒ Object



60
61
62
63
64
65
66
67
68
69
70
71
# 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) ⇒ Object



50
51
52
53
54
55
56
57
58
# 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