module AFCSalesforce::Models::Concerns::TypeSetter

Public Class Methods

extended(child_class) click to toggle source
# File lib/afc_salesforce/models/concerns/type_setter.rb, line 5
def self.extended(child_class)
  AFCSalesforce::Tools::Utilities::SUPPORTED_TYPES.each do |type|
    define_method("set_as_#{type}".to_sym) do |*fields|
      fields.each do |field|
        define_method("#{field}=".to_sym) do |val|
          instance_variable_set("@#{field}", AFCSalesforce::Tools::Utilities.parse_by_type(val, type))
        end

        define_method(field.to_sym) do
          instance_variable_get("@#{field}")
        end
      end
    end
  end
end