<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1,70 +1,70 @@
 module ActionView #:nodoc:
   class PartialTemplate &lt; Template #:nodoc:
-    
     attr_reader :variable_name, :object
-    
+
     def initialize(view, partial_path, object = nil, locals = {})
-      @path, @variable_name = extract_partial_name_and_path(view, partial_path)
+      @view_controller = view.controller if view.respond_to?(:controller)
+      set_path_and_variable_name!(partial_path)
       super(view, @path, true, locals)
       add_object_to_local_assigns!(object)
 
       # This is needed here in order to compile template with knowledge of 'counter'
-      initialize_counter
-      
+      initialize_counter!
+
       # Prepare early. This is a performance optimization for partial collections
       prepare!
     end
-    
+
     def render
       ActionController::Base.benchmark(&quot;Rendered #{@path}&quot;, Logger::DEBUG, false) do
         @handler.render(self)
       end
     end
-    
+
     def render_member(object)
       @locals[:object] = @locals[@variable_name] = object
-      
+
       template = render_template
       @locals[@counter_name] += 1
       @locals.delete(@variable_name)
       @locals.delete(:object)
-      
+
       template
     end
-    
+
     def counter=(num)
       @locals[@counter_name] = num
     end
 
     private
+      def add_object_to_local_assigns!(object)
+        @locals[:object] ||=
+          @locals[@variable_name] ||=
+            if object.is_a?(ActionView::Base::ObjectWrapper)
+              object.value
+            else
+              object
+            end || @view_controller.instance_variable_get(&quot;@#{variable_name}&quot;)
+      end
 
-    def add_object_to_local_assigns!(object)
-      @locals[:object] ||=
-        @locals[@variable_name] ||=
-          if object.is_a?(ActionView::Base::ObjectWrapper)
-            object.value
-          else
-            object
-          end || @view.controller.instance_variable_get(&quot;@#{variable_name}&quot;)
-    end
-    
-    def extract_partial_name_and_path(view, partial_path)
-      path, partial_name = partial_pieces(view, partial_path)
-      [File.join(path, &quot;_#{partial_name}&quot;), partial_name.split('/').last.split('.').first.to_sym] 
-    end
-    
-    def partial_pieces(view, partial_path)
-      if partial_path.include?('/')
-        return File.dirname(partial_path), File.basename(partial_path)
-      else
-        return view.controller.class.controller_path, partial_path
+      def set_path_and_variable_name!(partial_path)
+        if partial_path.include?('/')
+          @variable_name = File.basename(partial_path)
+          @path = &quot;#{File.dirname(partial_path)}/_#{@variable_name}&quot;
+        elsif @view_controller
+          @variable_name = partial_path
+          @path = &quot;#{@view_controller.class.controller_path}/_#{@variable_name}&quot;
+        else
+          @variable_name = partial_path
+          @path = &quot;_#{@variable_name}&quot;
+        end
+
+        @variable_name = @variable_name.sub(/\..*$/, '').to_sym
+      end
+
+      def initialize_counter!
+        @counter_name ||= &quot;#{@variable_name}_counter&quot;.to_sym
+        @locals[@counter_name] = 0
       end
-    end
-    
-    def initialize_counter
-      @counter_name ||= &quot;#{@variable_name}_counter&quot;.to_sym
-      @locals[@counter_name] = 0
-    end
-    
   end
 end</diff>
      <filename>actionpack/lib/action_view/partial_template.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>8190bce8bc7249b7b9f3680195336eb3ca9508ee</id>
    </parent>
  </parents>
  <author>
    <name>Jeremy Kemper</name>
    <login>jeremy</login>
    <email>jeremy@bitsweat.net</email>
  </author>
  <url>http://github.com/rails/rails/commit/d7b3c3395fd7debc05923dba1cbea69d30899827</url>
  <id>d7b3c3395fd7debc05923dba1cbea69d30899827</id>
  <committed-date>2008-06-17T16:01:48-07:00</committed-date>
  <authored-date>2008-06-16T23:59:22-07:00</authored-date>
  <message>Performance: PartialTemplate#initialize</message>
  <tree>61b185dea2e28c797ed5f298aa78651e0d4ae3cf</tree>
  <committer>
    <name>Jeremy Kemper</name>
    <login>jeremy</login>
    <email>jeremy@bitsweat.net</email>
  </committer>
</commit>
