Class: TokyoMetro::Factory::Convert::Common::Api::MetaClass::Converter::InfoForConversion

Inherits:
Object
  • Object
show all
Defined in:
lib/tokyo_metro/factory/convert/common/api/meta_class/converter/info_for_conversion.rb

Instance Method Summary collapse

Constructor Details

#initialize(for_conversion, attr_of_info, method_for_deciding_default_value, arrow_blank: true) ⇒ InfoForConversion

Returns a new instance of InfoForConversion.



3
4
5
6
7
8
# File 'lib/tokyo_metro/factory/convert/common/api/meta_class/converter/info_for_conversion.rb', line 3

def initialize( for_conversion , attr_of_info , method_for_deciding_default_value , arrow_blank: true )
  @for_conversion = for_conversion
  @attr_of_info = attr_of_info
  @method_for_deciding_default_value = method_for_deciding_default_value
  @arrow_blank = arrow_blank
end

Instance Method Details

#match?(info) ⇒ Boolean

Returns:

  • (Boolean)


10
11
12
# File 'lib/tokyo_metro/factory/convert/common/api/meta_class/converter/info_for_conversion.rb', line 10

def match?( info )
  valid_blank? or ( class_is_valid? and info.send( @attr_of_info ) == @for_conversion ) or ( hash_for_conversion_is_set? and info.send( @attr_of_info ) == convert_from and convert_from.send( @method_for_deciding_default_value ) )
end

#processObject



14
15
16
17
18
19
20
# File 'lib/tokyo_metro/factory/convert/common/api/meta_class/converter/info_for_conversion.rb', line 14

def process
  ::Proc.new { | info |
    if to_process?( info )
      info.instance_variable_set( "@#{ @attr_of_info }" , convert_to )
    end
  }
end