Class: TokyoMetro::Factory::Generate::Api::MetaClass::Info::Fundamental

Inherits:
Object
  • Object
show all
Defined in:
lib/tokyo_metro/factory/generate/api/meta_class/info/fundamental.rb

Overview

API から取得したハッシュからインスタンスを生成するための Factory Pattern のクラス(メタクラス)

Defined Under Namespace

Modules: ValidityChecker

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(var, on_the_top_layer: true) ⇒ Fundamental

Note:

ハッシュは第1階層の情報であるとは限らない。

Constructor

Parameters:

  • var (Hash / Array / String)

    インスタンスの元となるハッシュ,配列,文字列



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_classObject



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 から取得したハッシュからインスタンスを生成するためのクラスメソッド

Parameters:

  • h (Hash)

    インスタンスの元となるハッシュ



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

#generateObject

Note:

ハッシュは第1階層の情報であるとは限らない。

API から取得したハッシュからインスタンスを生成するためのインスタンスメソッド

Returns:

  • (Object)

    self.class.info_class のインスタンス



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

Returns:

  • (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