Class: TokyoMetro::Factory::Generate::Api::MetaClass::Info::ConvertAndSetArrayData::FactoryClass

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

Overview

配列のデータを JSON のハッシュから変換するための Factory Pattern のクラス

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(data_from_hash, list_class, info_class, to_flatten) ⇒ FactoryClass

Returns a new instance of FactoryClass.



4
5
6
7
8
9
10
11
12
# File 'lib/tokyo_metro/factory/generate/api/meta_class/info/convert_and_set_array_data/factory_class.rb', line 4

def initialize( data_from_hash , list_class , info_class , to_flatten )
  if generate_info_instance and info_class.nil?
    raise "Error"
  end
  @info_list = set_info_list( data_from_hash , to_flatten )

  @list_class = set_list_class( list_class )
  @info_class = info_class
end

Class Method Details

.process(data_from_hash, list_class, info_class, to_flatten) ⇒ Object



29
30
31
# File 'lib/tokyo_metro/factory/generate/api/meta_class/info/convert_and_set_array_data/factory_class.rb', line 29

def self.process( data_from_hash , list_class , info_class , to_flatten )
  self.new( data_from_hash , list_class , info_class , to_flatten ).generate
end

Instance Method Details

#generateObject



14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/tokyo_metro/factory/generate/api/meta_class/info/convert_and_set_array_data/factory_class.rb', line 14

def generate
  #puts @info_class.name
  #puts ""
  if generate_info_instance
    # inspect_info_of_list
    ary_new = @list_class.new
    @info_list.each do | info |
      ary_new << @info_class.generate_from_hash( info )
    end
    ary_new
  else
    @list_class.new( @info_list )
  end
end

#generate_info_instanceObject



33
34
35
# File 'lib/tokyo_metro/factory/generate/api/meta_class/info/convert_and_set_array_data/factory_class.rb', line 33

def generate_info_instance
  @info_class.present?
end