Class: TokyoMetro::Api::Station::List
- Inherits:
-
MetaClass::Hybrid::List
- Object
- Array
- MetaClass::Fundamental::List
- MetaClass::Hybrid::List
- TokyoMetro::Api::Station::List
- Includes:
- ClassNameLibrary::Api::Station, Modules::Api::List::Selection::RailwayLines, Modules::Common::ToFactory::Seed::List
- Defined in:
- lib/tokyo_metro/api/station/list.rb
Overview
各駅の情報を格納する配列
Instance Method Summary collapse
- #basenames ⇒ Object
- #basenames_to_display ⇒ Object
- #connecting_railway_lines ⇒ ::Array
-
#seed ⇒ nil
配列の各要素のインスタンスの情報をDBに流し込むメソッド.
-
#seed_connecting_railway_lines ⇒ Object
配列に含まれる Info の各インスタンスの乗換路線情報を DB に流し込むメソッド.
-
#seed_exits ⇒ nil
出入口の情報をDBに流し込むメソッド.
-
#seed_link_to_passenger_surveys ⇒ nil
乗降客数の情報をDBに流し込むメソッド.
-
#to_seed ⇒ ::TokyoMetro::Api::Station::List
データベースへの流し込みの際に使用する配列(路線・駅のID順に整列している).
-
#to_strf(indent = 0) ⇒ String
インスタンスの情報を整形した文字列にして返すメソッド.
Methods included from Modules::Api::List::Selection::RailwayLines
#chiyoda_including_branch, #marunouchi_including_branch, #namboku_or_toei_mita, #yurakucho_or_fukutoshin
Methods inherited from MetaClass::Fundamental::List
Instance Method Details
#basenames ⇒ Object
20 21 22 |
# File 'lib/tokyo_metro/api/station/list.rb', line 20 def basenames list_up( :basename ) end |
#basenames_to_display ⇒ Object
24 25 26 |
# File 'lib/tokyo_metro/api/station/list.rb', line 24 def basenames_to_display list_up( :basename_to_display ) end |
#connecting_railway_lines ⇒ ::Array
16 17 18 |
# File 'lib/tokyo_metro/api/station/list.rb', line 16 def connecting_railway_lines list_up( :connecting_railway_lines ) end |
#seed ⇒ nil
Note:
Static::Station::RailwayLines.seed を呼び出している。
配列の各要素のインスタンスの情報をDBに流し込むメソッド
31 32 33 |
# File 'lib/tokyo_metro/api/station/list.rb', line 31 def seed super( ::Operator.all , ::RailwayLine.all , ::StationFacility::Info.all , display_number: true ) end |
#seed_connecting_railway_lines ⇒ Object
Note:
各駅の基本情報をすべて流し込んでから、乗換路線情報のみを流し込む。(乗換駅の情報を流し込む際に ::Station::Info.find_by を利用しており、既知のすべての駅の流し込みが済んでいなければならないため)
配列に含まれる Info の各インスタンスの乗換路線情報を DB に流し込むメソッド
40 41 42 |
# File 'lib/tokyo_metro/api/station/list.rb', line 40 def seed_connecting_railway_lines seed_sub_infos( :factory_for_seeding_connecting_railway_lines , __method__ ) end |
#seed_exits ⇒ nil
出入口の情報をDBに流し込むメソッド
46 47 48 |
# File 'lib/tokyo_metro/api/station/list.rb', line 46 def seed_exits seed_sub_infos( :factory_for_seeding_exits , __method__ ) end |
#seed_link_to_passenger_surveys ⇒ nil
乗降客数の情報をDBに流し込むメソッド
52 53 54 |
# File 'lib/tokyo_metro/api/station/list.rb', line 52 def seed_link_to_passenger_surveys seed_sub_infos( :factory_for_seeding_link_to_passenger_surveys , __method__ ) end |
#to_seed ⇒ ::TokyoMetro::Api::Station::List
データベースへの流し込みの際に使用する配列(路線・駅のID順に整列している)
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/tokyo_metro/api/station/list.rb', line 58 def to_seed railway_lines = ::RailwayLine.all stations_in_each_line = self.group_by { | station_info | railway_line = railway_lines.find_by( same_as: station_info.railway_line ) if railway_line.nil? raise "Error: data of the railway_line same as \"#{ station_info.railway_line }\" does not exist." end railway_line.id } ary = ::Array.new stations_in_each_line.keys.sort.each do | line | ary += stations_in_each_line[ line ].sort_by( &:station_code ) end self.class.new( ary ) end |
#to_strf(indent = 0) ⇒ String
インスタンスの情報を整形した文字列にして返すメソッド
11 12 13 |
# File 'lib/tokyo_metro/api/station/list.rb', line 11 def to_strf( indent = 0 ) super( indent , 2 ) end |