Class: TokyoMetro::Static::Fare::Normal::Table::Pattern

Inherits:
Object
  • Object
show all
Includes:
ClassNameLibrary::Static::Fare, Modules::Common::ToFactory::Seed::Info
Defined in:
lib/tokyo_metro/static/fare/normal/table/pattern.rb

Overview

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

運賃の情報を出力するメソッド collapse

運賃の情報を出力するメソッド collapse

データの判定 collapse

回数券 (1) - 発売額 collapse

回数券 (2) - 1枚あたりの発売額 collapse

クラスメソッド collapse

Instance Method Summary collapse

Methods included from Modules::Common::ToFactory::Seed::Info

#seed

Constructor Details

#initialize(ticket_fare, child_ticket_fare, ic_card_fare, child_ic_card_fare) ⇒ Pattern

Constructor

Parameters:

  • ticket_fare (Integer)

    普通運賃(大人・切符)

  • child_ticket_fare (Integer)

    普通運賃(小児・切符)

  • ic_card_fare (Integer)

    普通運賃(大人・ICカード)

  • child_ic_card_fare (Integer)

    普通運賃(小児・ICカード)



12
13
14
15
16
17
# 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

Instance Attribute Details

#child_ic_card_fareInteger (readonly)

普通運賃(小児・ICカード)

Returns:

  • (Integer)


35
36
37
# File 'lib/tokyo_metro/static/fare/normal/table/pattern.rb', line 35

def child_ic_card_fare
  @child_ic_card_fare
end

#child_ticket_fareInteger (readonly)

普通運賃(小児・切符)

Returns:

  • (Integer)


27
28
29
# File 'lib/tokyo_metro/static/fare/normal/table/pattern.rb', line 27

def child_ticket_fare
  @child_ticket_fare
end

#ic_card_fareInteger (readonly)

普通運賃(大人・ICカード)

Returns:

  • (Integer)


31
32
33
# File 'lib/tokyo_metro/static/fare/normal/table/pattern.rb', line 31

def ic_card_fare
  @ic_card_fare
end

#ticket_fareInteger (readonly)

普通運賃(大人・切符)

Returns:

  • (Integer)


23
24
25
# File 'lib/tokyo_metro/static/fare/normal/table/pattern.rb', line 23

def ticket_fare
  @ticket_fare
end

Class Method Details

.factory_for_seeding_this_classObject



159
160
161
# 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) ⇒ String

運賃の情報を出力する際のヘッダー

Returns:

  • (String)


155
156
157
# 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

Instance Method Details

#child_coupon_ticket_fareInteger

回数券(小児)の発売額

Returns:

  • (Integer)


107
108
109
# 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_pieceInteger

時差回数券(小児・12枚つづり)の1枚あたりの発売額

Returns:

  • (Integer)


139
140
141
# 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_pieceInteger

土休回数券(小児・14枚つづり)の1枚あたりの発売額

Returns:

  • (Integer)


145
146
147
# 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_pieceInteger

普通回数券(小児・11枚つづり)の1枚あたりの発売額

Returns:

  • (Integer)


133
134
135
# 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_fareInteger

回数券(大人)の発売額

Returns:

  • (Integer)


101
102
103
# 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_pieceInteger

時差回数券(大人・12枚つづり)の1枚あたりの発売額

Returns:

  • (Integer)


121
122
123
# 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_pieceInteger

土休回数券(大人・14枚つづり)の1枚あたりの発売額

Returns:

  • (Integer)


127
128
129
# 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) ⇒ Boolean

運賃の情報が与えられたときに、self と一致するか否かを判定するメソッド

Parameters:

  • ticket_fare (Integer)

    普通運賃(大人・切符)

  • child_ticket_fare (Integer)

    普通運賃(小児・切符)

  • ic_card_fare (Integer)

    普通運賃(大人・ICカード)

  • child_ic_card_fare (Integer)

    普通運賃(小児・ICカード)

Returns:

  • (Boolean)


93
94
95
# 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_pieceInteger

普通回数券(大人・11枚つづり)の1枚あたりの発売額

Returns:

  • (Integer)


115
116
117
# 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::Array

各種運賃を配列として返すメソッド

Returns:

  • (::Array)


39
40
41
# 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) ⇒ String

運賃の情報を1行で出力するメソッド(簡易版)

Parameters:

  • indent (Integer (>0) (defaults to: 0)

    ] インデントの幅

Returns:

  • (String)


46
47
48
# 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) ⇒ String

運賃の情報を1行で出力するメソッド(詳細版)

Parameters:

  • indent (Integer (>0) (defaults to: 0)

    ] インデントの幅

  • header (Boolean) (defaults to: false)

    ヘッダーを表示するか否かの設定

Returns:

  • (String)


54
55
56
57
58
59
60
61
62
63
64
# 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) ⇒ String

運賃の情報を表にして出力するメソッド

Parameters:

  • indent (Integer (>0) (defaults to: 0)

    ] インデントの幅

Returns:

  • (String)


69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# 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