# File lib/has_alter_ego.rb, line 67
      def assign_attributes obj, yml
        reflections = self.reflect_on_all_associations
        yml.keys.each do |attr|
          if obj.respond_to?(attr)
            obj.send(attr+"=" , yml[attr])
          else
            # Handle smart associations
            reflections.select{|r| attr.start_with?(r.name.to_s+"_by_")}.each do |r|
              finder = [:has_one, :belongs_to].include?(r.macro) ? "find" : "find_all"
              if attr.index("_and_")
                objects = r.klass.send(attr.gsub(r.name.to_s, finder), *(yml[attr]))
              else
                objects = r.klass.send(attr.gsub(r.name.to_s, finder), yml[attr])
              end
              obj.send(r.name.to_s+"=", objects) if objects.present?
            end
          end
        end
      end