module ResqueSafe::ConvertFromHash

Public Instance Methods

args_to_instance_vars(args) click to toggle source
# File lib/resque_safe/convert_from_hash.rb, line 25
def args_to_instance_vars(args)
  #take each key, if a model, make it an @#{model} = model.find(value)
  #else make it a @#{name}=#{value}

  args.each do |klass_name,value|
    klass_name, value = klass_name.to_s, value.to_s
    klassified_klass = klass_name.classify

    if Object.const_defined?(klassified_klass) &&
      known_models.include?(klassified_klass.constantize)

      set_instance_for_active_record(klassified_klass, value)
    else
      set_instance_for_other(klass_name, value)
    end
  end
end
args_to_objects(inbound_hash) click to toggle source
# File lib/resque_safe/convert_from_hash.rb, line 4
def args_to_objects(inbound_hash)
  raise NotImplementedError.new "This isn't completed, not sure how to set it up"

  objects = {}
  inbound_hash.each do |klass_name,value|
    klass_name, value = klass_name.to_s, value.to_s
    klassified_klass = klass_name.classify
    symbolized_klass = klass_name.to_sym

    if Object.const_defined?(klassified_klass) &&
      known_models.include?(klassified_klass.constantize)

      objects[symbolized_klass] = return_active_record(klassified_klass, value)
    else
      objects[symbolized_klass] = return_other_object(klass_name, value)
    end
  end

  objects
end
set_instance_args_for_class(mailer_instance, args) click to toggle source
# File lib/resque_safe/convert_from_hash.rb, line 43
def set_instance_args_for_class(mailer_instance, args)
   #take each key, if a model, make it an @#{model} = model.find(value)
  #else make it a @#{name}=#{value}

  args.each do |klass_name,value|
    klass_name, value = klass_name.to_s, value.to_s
    klassified_klass = klass_name.classify

    if Object.const_defined?(klassified_klass) &&
      known_models.include?(klassified_klass.constantize)

      set_instance_for_active_record_mailer_instance(mailer_instance, klassified_klass, value)
    else
      set_instance_for_other_mialer_instance(mailer_instance, klass_name, value)
    end
  end
end

Private Instance Methods

return_active_record(klass_name, value) click to toggle source
# File lib/resque_safe/convert_from_hash.rb, line 83
def return_active_record(klass_name, value)
  raise NotImplementedError.new "This isn't completed, not sure how to set it up"
  return self.instance_eval("#{klass_name.constantize}.find(#{value})")
end
return_other_object(klass_name, value) click to toggle source
# File lib/resque_safe/convert_from_hash.rb, line 88
def return_other_object(klass_name, value)
  raise NotImplementedError.new "This isn't completed, not sure how to set it up"
  if value.is_a?(String)
    return self.instance_eval("%|#{value}|")
  else
    return self.instance_eval(":#{instance_name} => #{value}")
  end

end
set_instance_for_active_record(klass_name, value) click to toggle source
# File lib/resque_safe/convert_from_hash.rb, line 62
def set_instance_for_active_record(klass_name, value)
  set_instance_for_active_record_mailer_instance(self, klass_name, value)
end
set_instance_for_active_record_mailer_instance(mailer_instance, klass_name, value) click to toggle source
# File lib/resque_safe/convert_from_hash.rb, line 66
def set_instance_for_active_record_mailer_instance(mailer_instance, klass_name, value)
  mailer_instance.instance_eval("@#{klass_name.downcase}= #{klass_name.constantize}.find(#{value})")
end
set_instance_for_other(instance_name, value) click to toggle source
# File lib/resque_safe/convert_from_hash.rb, line 70
def set_instance_for_other(instance_name, value)
  set_instance_for_other_mialer_instance(self, instance_name, value)
end
set_instance_for_other_mialer_instance(mailer_instance, instance_name, value) click to toggle source
# File lib/resque_safe/convert_from_hash.rb, line 75
def set_instance_for_other_mialer_instance(mailer_instance, instance_name, value)
  if value.is_a?(String)
    mailer_instance.instance_eval("@#{instance_name} = %|#{value}|")
  else
    mailer_instance.instance_eval("@#{instance_name}=#{value}")
  end
end