class TokyoMetro::Factory::Generate::Api::MetaClass::List::Date
日付ごとに保存された情報を処理する Factory Pattern のクラス
Public Class Methods
Constructor @param y [Integer] 情報が保存された年 @param m [Integer] 情報が保存された月 @param d [Integer] 情報が保存された日 @param file_type [String (filename)] ファイルの名称 @param db_dirname
[String (dirname)] データが格納されているディレクトリの名称 @param db_dirname_sub [String (dirname) or nil] データが格納されているサブディレクトリの名称
# File lib/tokyo_metro/factory/generate/api/meta_class/list/date.rb, line 11 def initialize( y , m , d , file_type , db_dirname , db_dirname_sub ) @year = y @month = d @date = d @file_type = file_type @db_dirname = db_dirname @db_dirname_sub = db_dirname_sub end
保存済みの情報からインスタンスの配列を復元するメソッド @param y [Integer] 情報が保存された年 @param m [Integer] 情報が保存された月 @param d [Integer] 情報が保存された日 @param file_type [String (filename)] ファイルの名称 @param db_dirname
[String (dirname)] データが格納されているディレクトリの名称 @param db_dirname_sub [String (dirname) or nil] データが格納されているサブディレクトリの名称 @param max [Integer or nil] 配列の要素の最大値 @note max を nil とした場合は無制限で、すべての情報を配列に格納する。 @return [subclass of TokyoMetro::Api::MetaClass::Fundamental::List]
# File lib/tokyo_metro/factory/generate/api/meta_class/list/date.rb, line 37 def self.process( y , m , d , file_type , db_dirname , db_dirname_sub , max ) self.new( y , m , d , file_type , db_dirname , db_dirname_sub ).generate( max ) end
Public Instance Methods
取得するファイルを表すワイルドカード @return [String]
# File lib/tokyo_metro/factory/generate/api/meta_class/list/date.rb, line 23 def filename_wildcard "#{db_dirname}/**.#{@file_type.to_s}" end
Private Instance Methods
# File lib/tokyo_metro/factory/generate/api/meta_class/list/date.rb, line 43 def db_dirname if @db_dirname_sub.nil? "#{@db_dirname}/#{dirname_for_date}/**" elsif @db_dirname_sub.string? "#{@db_dirname}/#{dirname_for_date}/#{@db_dirname_sub}" else raise "Error: The instance variable \"db_dirname_sub\" is not valid." end end
# File lib/tokyo_metro/factory/generate/api/meta_class/list/date.rb, line 53 def dirname_for_date y_str = sprintf("%4.4d", @year ) m_str = sprintf("%2.2d", @month ) d_str = sprintf("%2.2d", @date ) "#{y_str}/#{m_str}#{d_str}" end