Module: SEPA::Converter

Included in:
Account, Address, ContactDetails, Transaction
Defined in:
lib/sepa_rator/converter.rb

Defined Under Namespace

Modules: InstanceMethods

Instance Method Summary collapse

Instance Method Details

#convert(*attributes, options) ⇒ Object

Raises:

  • (ArgumentError)


5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/sepa_rator/converter.rb', line 5

def convert(*attributes, options)
  include InstanceMethods

  method_name = "convert_#{options[:to]}"
  raise ArgumentError, "Converter '#{options[:to]}' does not exist!" unless InstanceMethods.method_defined?(method_name)

  attributes.each do |attribute|
    define_method "#{attribute}=" do |value|
      instance_variable_set("@#{attribute}", public_send(method_name, value))
    end
  end
end