Class: TokyoMetro::Factory::Generate::Api::MetaClass::Info::Fundamental
- Inherits:
-
Object
- Object
- TokyoMetro::Factory::Generate::Api::MetaClass::Info::Fundamental
- Defined in:
- lib/tokyo_metro/factory/generate/api/meta_class/info/fundamental.rb
Overview
API から取得したハッシュからインスタンスを生成するための Factory Pattern のクラス(メタクラス)
Direct Known Subclasses
Fare::Info, NotOnTheTopLayer, TokyoMetro::Factory::Generate::Api::MlitRailwayLine::Info, PassengerSurvey::Info, Point::Info, RailwayLine::Info, Station::Info, StationFacility::Info, StationTimetable::Info, TrainLocation::Info, TrainOperation::Info, TrainTimetable::Info
Defined Under Namespace
Modules: ValidityChecker
Class Method Summary collapse
- .instance_class ⇒ Object
-
.process(h) ⇒ Object
API から取得したハッシュからインスタンスを生成するためのクラスメソッド.
Instance Method Summary collapse
-
#generate ⇒ Object
API から取得したハッシュからインスタンスを生成するためのインスタンスメソッド.
-
#initialize(var, on_the_top_layer: true) ⇒ Fundamental
constructor
Constructor.
- #to_check_validity? ⇒ Boolean
Constructor Details
#initialize(var, on_the_top_layer: true) ⇒ Fundamental
Note:
ハッシュは第1階層の情報であるとは限らない。
Constructor
7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/tokyo_metro/factory/generate/api/meta_class/info/fundamental.rb', line 7 def initialize( var , on_the_top_layer: true ) @on_the_top_layer = on_the_top_layer if to_check_validity? and var.instance_of?( ::Hash ) check_validity( var ) end if var.instance_of?( ::Hash ) @hash = var elsif var.instance_of?( ::Array ) @array = var elsif var.instance_of?( ::String ) @string = var end end |
Class Method Details
.instance_class ⇒ Object
39 40 41 |
# File 'lib/tokyo_metro/factory/generate/api/meta_class/info/fundamental.rb', line 39 def self.instance_class info_class end |
.process(h) ⇒ Object
Note:
ハッシュは第1階層の情報であるとは限らない。
API から取得したハッシュからインスタンスを生成するためのクラスメソッド
35 36 37 |
# File 'lib/tokyo_metro/factory/generate/api/meta_class/info/fundamental.rb', line 35 def self.process(h) self.new(h).generate end |
Instance Method Details
#generate ⇒ Object
Note:
ハッシュは第1階層の情報であるとは限らない。
API から取得したハッシュからインスタンスを生成するためのインスタンスメソッド
24 25 26 |
# File 'lib/tokyo_metro/factory/generate/api/meta_class/info/fundamental.rb', line 24 def generate self.class.instance_class.new( *variables ) end |
#to_check_validity? ⇒ Boolean
28 29 30 |
# File 'lib/tokyo_metro/factory/generate/api/meta_class/info/fundamental.rb', line 28 def to_check_validity? @on_the_top_layer end |