Class: TokyoMetro::Factory::Generate::Api::MetaClass::List::Normal
- Inherits:
-
Object
- Object
- TokyoMetro::Factory::Generate::Api::MetaClass::List::Normal
- Defined in:
- lib/tokyo_metro/factory/generate/api/meta_class/list/normal.rb
Overview
保存済みの情報を処理する Factory Pattern のクラス
Direct Known Subclasses
Fare::List, Date, TokyoMetro::Factory::Generate::Api::MlitRailwayLine::List, TokyoMetro::Factory::Generate::Api::MlitStation::List, PassengerSurvey::List, Point::List, RailwayLine::List, Station::List, StationFacility::List, StationTimetable::List, TrainTimetable::List
生成するクラスの情報 collapse
-
.info_class ⇒ Const (class)
配列の要素となるインスタンスのクラス.
-
.list_class ⇒ Const (class)
配列のクラス.
Class Method Summary collapse
-
.process(file_type, db_dirname, db_dirname_sub, max) ⇒ subclass of TokyoMetro::Api::MetaClass::Fundamental::List
保存済みの情報からインスタンスの配列を復元するメソッド(クラスメソッド).
Instance Method Summary collapse
-
#filename_list(max = nil) ⇒ ::Array
ファイルのリスト.
-
#filename_wildcard ⇒ String
取得するファイルを表すワイルドカード.
-
#generate(max = nil) ⇒ subclass of TokyoMetro::Api::MetaClass::Fundamental::List
保存済みの情報からインスタンスの配列を復元するメソッド(インスタンスメソッド).
-
#initialize(file_type, db_dirname, db_dirname_sub) ⇒ Normal
constructor
Constructor.
Constructor Details
#initialize(file_type, db_dirname, db_dirname_sub) ⇒ Normal
Constructor
8 9 10 11 12 |
# File 'lib/tokyo_metro/factory/generate/api/meta_class/list/normal.rb', line 8 def initialize( file_type , db_dirname , db_dirname_sub ) @file_type = file_type @db_dirname = db_dirname @db_dirname_sub = db_dirname_sub end |
Class Method Details
.info_class ⇒ Const (class)
配列の要素となるインスタンスのクラス
72 73 74 |
# File 'lib/tokyo_metro/factory/generate/api/meta_class/list/normal.rb', line 72 def self.info_class raise "The class method \"#{__method__}\" is not defined yet in this class \"#{ self.name }\"." end |
.list_class ⇒ Const (class)
配列のクラス
66 67 68 |
# File 'lib/tokyo_metro/factory/generate/api/meta_class/list/normal.rb', line 66 def self.list_class raise "The class method \"#{__method__}\" is not defined yet in this class \"#{ self.name }\"." end |
.process(file_type, db_dirname, db_dirname_sub, max) ⇒ subclass of TokyoMetro::Api::MetaClass::Fundamental::List
Note:
max を nil とした場合は無制限で、すべての情報を配列に格納する。
保存済みの情報からインスタンスの配列を復元するメソッド(クラスメソッド)
58 59 60 |
# File 'lib/tokyo_metro/factory/generate/api/meta_class/list/normal.rb', line 58 def self.process( file_type , db_dirname , db_dirname_sub , max ) self.new( file_type , db_dirname , db_dirname_sub ).generate( max ) end |
Instance Method Details
#filename_list(max = nil) ⇒ ::Array
Note:
max を nil とした場合は無制限で、すべてのファイルを配列に格納する。
ファイルのリスト
18 19 20 21 22 23 24 25 26 |
# File 'lib/tokyo_metro/factory/generate/api/meta_class/list/normal.rb', line 18 def filename_list( max = nil ) # @todo 遅延評価 files = ::Dir.glob( self.filename_wildcard ) if max.integer? files = files.first( max ) end ( files ) files end |
#filename_wildcard ⇒ String
取得するファイルを表すワイルドカード
30 31 32 |
# File 'lib/tokyo_metro/factory/generate/api/meta_class/list/normal.rb', line 30 def filename_wildcard "#{ db_dirname }/**.#{ @file_type.to_s }" end |
#generate(max = nil) ⇒ subclass of TokyoMetro::Api::MetaClass::Fundamental::List
Note:
max を nil とした場合は無制限で、すべてのファイルを配列に格納する。
保存済みの情報からインスタンスの配列を復元するメソッド(インスタンスメソッド)
38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/tokyo_metro/factory/generate/api/meta_class/list/normal.rb', line 38 def generate( max = nil ) ary_new = self.class.list_class.new files = self.filename_list( max ) files.each.with_index(1) do | filename , i | infos_in_a_file = open_and_process_a_file( filename ) infos_in_a_file.each do | info | ary_new << info end inspect_info_of_generation(i) end ary_new end |