class TokyoMetro::Static::Fare::Normal::Table::Pattern
運賃のパターン(各料金区間の運賃)を扱うクラス
Attributes
普通運賃(小児・ICカード) @return [Integer]
普通運賃(小児・切符) @return [Integer]
普通運賃(大人・ICカード) @return [Integer]
普通運賃(大人・切符) @return [Integer]
Public Class Methods
# File lib/tokyo_metro/static/fare/normal/table/pattern.rb, line 159 def self.factory_for_seeding_this_class factory_for_seeding_normal_table_pattern end
運賃の情報を出力する際のヘッダー @return [String]
# File lib/tokyo_metro/static/fare/normal/table/pattern.rb, line 155 def self.header( indent ) self.normal_fare_table_list_class.header( indent ) end
Constructor @param ticket_fare
[Integer] 普通運賃(大人・切符) @param child_ticket_fare
[Integer] 普通運賃(小児・切符) @param ic_card_fare
[Integer] 普通運賃(大人・ICカード) @param child_ic_card_fare
[Integer] 普通運賃(小児・ICカード)
# File lib/tokyo_metro/static/fare/normal/table/pattern.rb, line 12 def initialize( ticket_fare , child_ticket_fare , ic_card_fare , child_ic_card_fare ) @ticket_fare = ticket_fare @child_ticket_fare = child_ticket_fare @ic_card_fare = ic_card_fare @child_ic_card_fare = child_ic_card_fare end
Public Instance Methods
回数券(小児)の発売額 @return [Integer]
# File lib/tokyo_metro/static/fare/normal/table/pattern.rb, line 107 def child_coupon_ticket_fare @child_ticket_fare * 10 end
時差回数券(小児・12枚つづり)の1枚あたりの発売額 @return [Integer]
# File lib/tokyo_metro/static/fare/normal/table/pattern.rb, line 139 def child_daytime_coupon_ticket_per_one_piece coupon_ticket_fare_per_one_piece( :child_coupon_ticket_fare , 12 ) end
土休回数券(小児・14枚つづり)の1枚あたりの発売額 @return [Integer]
# File lib/tokyo_metro/static/fare/normal/table/pattern.rb, line 145 def child_holiday_coupon_ticket_per_one_piece coupon_ticket_fare_per_one_piece( :child_coupon_ticket_fare , 14 ) end
普通回数券(小児・11枚つづり)の1枚あたりの発売額 @return [Integer]
# File lib/tokyo_metro/static/fare/normal/table/pattern.rb, line 133 def child_normal_coupon_ticket_per_one_piece coupon_ticket_fare_per_one_piece( :child_coupon_ticket_fare , 11 ) end
回数券(大人)の発売額 @return [Integer]
# File lib/tokyo_metro/static/fare/normal/table/pattern.rb, line 101 def coupon_ticket_fare @ticket_fare * 10 end
時差回数券(大人・12枚つづり)の1枚あたりの発売額 @return [Integer]
# File lib/tokyo_metro/static/fare/normal/table/pattern.rb, line 121 def daytime_coupon_ticket_per_one_piece coupon_ticket_fare_per_one_piece( :coupon_ticket_fare , 12 ) end
土休回数券(大人・14枚つづり)の1枚あたりの発売額 @return [Integer]
# File lib/tokyo_metro/static/fare/normal/table/pattern.rb, line 127 def holiday_coupon_ticket_per_one_piece coupon_ticket_fare_per_one_piece( :coupon_ticket_fare , 14 ) end
運賃の情報が与えられたときに、self と一致するか否かを判定するメソッド @param ticket_fare
[Integer] 普通運賃(大人・切符) @param child_ticket_fare
[Integer] 普通運賃(小児・切符) @param ic_card_fare
[Integer] 普通運賃(大人・ICカード) @param child_ic_card_fare
[Integer] 普通運賃(小児・ICカード) @return [Boolean]
# File lib/tokyo_metro/static/fare/normal/table/pattern.rb, line 93 def match?( ticket_fare , child_ticket_fare , ic_card_fare , child_ic_card_fare ) self.to_a == [ ticket_fare , child_ticket_fare , ic_card_fare , child_ic_card_fare ] end
普通回数券(大人・11枚つづり)の1枚あたりの発売額 @return [Integer]
# File lib/tokyo_metro/static/fare/normal/table/pattern.rb, line 115 def normal_coupon_ticket_per_one_piece coupon_ticket_fare_per_one_piece( :coupon_ticket_fare , 11 ) end
各種運賃を配列として返すメソッド @return [::Array]
# File lib/tokyo_metro/static/fare/normal/table/pattern.rb, line 39 def to_a [ @ticket_fare , @child_ticket_fare , @ic_card_fare , @child_ic_card_fare ] end
運賃の情報を1行で出力するメソッド(簡易版) @param indent [Integer (>0)] インデントの幅 @return [String]
# File lib/tokyo_metro/static/fare/normal/table/pattern.rb, line 46 def to_s( indent = 0 ) " " * indent + self.to_a.map { | i | i.to_currency.rjust(16) }.join( " " * 8 ) end
運賃の情報を1行で出力するメソッド(詳細版) @param indent [Integer (>0)] インデントの幅 @param header [Boolean] ヘッダーを表示するか否かの設定 @return [String]
# File lib/tokyo_metro/static/fare/normal/table/pattern.rb, line 54 def to_s_in_a_row( indent = 0 , header: false ) str_ary = ::Array.new if header header_str = self.class.header( indent ) str_ary << ( " " * indent + header_str.gsub( / +\Z/ , "" ) ) end fare = self.to_s str_ary << ( " " * indent + fare ) str_ary.join( "\n" ) end
運賃の情報を表にして出力するメソッド @param indent [Integer (>0)] インデントの幅 @return [String]
# File lib/tokyo_metro/static/fare/normal/table/pattern.rb, line 69 def to_s_table( indent = 0 ) str_ary = ::Array.new row_1 = ::Array.new row_2 = ::Array.new row_1 << ( "odpt:ticketFare".ljust(24) + @ticket_fare.to_currency.rjust(8) ) row_1 << ( "odpt:childTicketFare".ljust(24) + @child_ticket_fare.to_currency.rjust(8) ) row_2 << ( "odpt:icCardFare".ljust(24) + @ic_card_fare.to_currency.rjust(8) ) row_2 << ( "odpt:childIcCardFare".ljust(24) +@child_ic_card_fare.to_currency.rjust(8) ) [ row_1 , row_2 ].each do | row | str_ary << " " * indent + row.join( " " * 8 ) end str_ary.join( "\n" ) end
Private Instance Methods
回数券の1枚あたりの発売額 @param method [Symbol] 呼び出すメソッドの名称 @param whole_pieces [Integer] 発売時の枚数 @return [Numeric]
# File lib/tokyo_metro/static/fare/normal/table/pattern.rb, line 171 def coupon_ticket_fare_per_one_piece( method , whole_pieces ) self.send( method ) * 1.0 / whole_pieces end