class TokyoMetro::Factory::Generate::Api::MetaClass::Info::Fundamental
API から取得したハッシュからインスタンスを生成するための Factory Pattern のクラス(メタクラス)
Public Class Methods
instance_class()
click to toggle source
# File lib/tokyo_metro/factory/generate/api/meta_class/info/fundamental.rb, line 39 def self.instance_class info_class end
new( var , on_the_top_layer: true )
click to toggle source
Constructor @param var [Hash / Array / String] インスタンスの元となるハッシュ,配列,文字列 @note ハッシュは第1階層の情報であるとは限らない。
# 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
process(h)
click to toggle source
API から取得したハッシュからインスタンスを生成するためのクラスメソッド @param h [Hash] インスタンスの元となるハッシュ @note ハッシュは第1階層の情報であるとは限らない。
# File lib/tokyo_metro/factory/generate/api/meta_class/info/fundamental.rb, line 35 def self.process(h) self.new(h).generate end
Public Instance Methods
generate()
click to toggle source
API から取得したハッシュからインスタンスを生成するためのインスタンスメソッド @note ハッシュは第1階層の情報であるとは限らない。 @return [Object] self.class.info_class のインスタンス
# 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?()
click to toggle source
# File lib/tokyo_metro/factory/generate/api/meta_class/info/fundamental.rb, line 28 def to_check_validity? @on_the_top_layer end
Private Instance Methods
check_validity( h , barrier_free: false )
click to toggle source
API から取得したデータをもとにインスタンスを作成する際に、RDF タイプ、 Context などが正しいか否かをチェックするメソッド (1) @param h [Hash] API から取得したデータのハッシュ @return [nil]
# File lib/tokyo_metro/factory/generate/api/meta_class/info/fundamental.rb, line 55 def check_validity( h , barrier_free: false ) if barrier_free ::TokyoMetro::Factory::Generate::Api::MetaClass::Info::Fundamental::ValidityChecker::BarrierFree.process( h , self.class ) else ::TokyoMetro::Factory::Generate::Api::MetaClass::Info::Fundamental::ValidityChecker::Normal.process( h , self.class ) end end
variables()
click to toggle source
Info クラスに送る変数のリスト @return [::Array] @raise [RuntimeError] サブクラスで定義するため、このクラスでは例外が発生するようにしている。
# File lib/tokyo_metro/factory/generate/api/meta_class/info/fundamental.rb, line 48 def variables raise "The class method \"#{__method__}\" is not defined yet in this class." end