class TokyoMetro::Static::Fare::Normal::Table::Pattern

運賃のパターン(各料金区間の運賃)を扱うクラス

Attributes

child_ic_card_fare[R]

普通運賃(小児・ICカード) @return [Integer]

child_ticket_fare[R]

普通運賃(小児・切符) @return [Integer]

ic_card_fare[R]

普通運賃(大人・ICカード) @return [Integer]

ticket_fare[R]

普通運賃(大人・切符) @return [Integer]

Public Class Methods

factory_for_seeding_this_class() click to toggle source
# 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
header( indent ) click to toggle source

運賃の情報を出力する際のヘッダー @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
new( ticket_fare , child_ticket_fare , ic_card_fare , child_ic_card_fare ) click to toggle source

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

child_coupon_ticket_fare() click to toggle source

回数券(小児)の発売額 @return [Integer]

# File lib/tokyo_metro/static/fare/normal/table/pattern.rb, line 107
def child_coupon_ticket_fare
  @child_ticket_fare * 10
end
child_daytime_coupon_ticket_per_one_piece() click to toggle source

時差回数券(小児・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
child_holiday_coupon_ticket_per_one_piece() click to toggle source

土休回数券(小児・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
child_normal_coupon_ticket_per_one_piece() click to toggle source

普通回数券(小児・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
coupon_ticket_fare() click to toggle source

回数券(大人)の発売額 @return [Integer]

# File lib/tokyo_metro/static/fare/normal/table/pattern.rb, line 101
def coupon_ticket_fare
  @ticket_fare * 10
end
daytime_coupon_ticket_per_one_piece() click to toggle source

時差回数券(大人・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
holiday_coupon_ticket_per_one_piece() click to toggle source

土休回数券(大人・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
match?( ticket_fare , child_ticket_fare , ic_card_fare , child_ic_card_fare ) click to toggle source

運賃の情報が与えられたときに、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
normal_coupon_ticket_per_one_piece() click to toggle source

普通回数券(大人・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
to_a() click to toggle source

各種運賃を配列として返すメソッド @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
to_s( indent = 0 ) click to toggle source

運賃の情報を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
to_s_in_a_row( indent = 0 , header: false ) click to toggle source

運賃の情報を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
to_s_table( indent = 0 ) click to toggle source

運賃の情報を表にして出力するメソッド @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

coupon_ticket_fare_per_one_piece( method , whole_pieces ) click to toggle source

回数券の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