Class: TokyoMetro::Api::TrainLocation::Info::Delay
- Inherits:
-
Object
- Object
- TokyoMetro::Api::TrainLocation::Info::Delay
- Defined in:
- lib/tokyo_metro/api/train_location/info/delay.rb
Instance Attribute Summary collapse
-
#delay ⇒ Object
readonly
Returns the value of attribute delay.
Instance Method Summary collapse
- #decorate(request) ⇒ Object
- #delayed? ⇒ Boolean
- #displayed_in_train_operation_info? ⇒ Boolean
- #hour_part ⇒ Object
-
#initialize(delay) ⇒ Delay
constructor
A new instance of Delay.
- #min ⇒ Object
- #min_part(add_hour_part: false) ⇒ Object
- #nearly_on_schedule? ⇒ Boolean
- #on_schedule? ⇒ Boolean
- #sec ⇒ Object
- #sec_part ⇒ Object
- #to_h(add_hour_part: false) ⇒ Object
- #to_s_en(add_hour_part: false) ⇒ Object
- #to_s_ja(add_hour_part: false) ⇒ Object
- #to_s_separated_by_comma(add_hour_part: false) ⇒ Object
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
#delay ⇒ Object (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
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
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_part ⇒ Object
25 26 27 |
# File 'lib/tokyo_metro/api/train_location/info/delay.rb', line 25 def hour_part @delay / 3600 end |
#min ⇒ Object
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
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
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 |
#sec ⇒ Object
13 14 15 |
# File 'lib/tokyo_metro/api/train_location/info/delay.rb', line 13 def sec @delay end |
#sec_part ⇒ Object
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 |