<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -2,6 +2,8 @@
 
 === Edge
 
+* Reverse view paths order in extension loader. [Sean Cribbs, Brent 
+Kroeker]
 * Remove obviated Ruby 1.8.7 compatibility patch. [Sean Cribbs]
 * Adjust StandardTags#relative_url_for for case when relative_url_root
 is nil. [Sean Cribbs]</diff>
      <filename>CHANGELOG</filename>
    </modified>
    <modified>
      <diff>@@ -6,6 +6,7 @@ core:
 
 === Edge
 
+* Brent Kroeker
 * Sean Cribbs
 
 === 0.7.1 Engraving</diff>
      <filename>CONTRIBUTORS</filename>
    </modified>
    <modified>
      <diff>@@ -61,7 +61,7 @@ module Radiant
     end
 
     def view_paths
-      extensions.map { |extension| &quot;#{extension.root}/app/views&quot; }.select { |d| File.directory?(d) }
+      extensions.map { |extension| &quot;#{extension.root}/app/views&quot; }.select { |d| File.directory?(d) }.reverse
     end
 
     # Load the extensions</diff>
      <filename>lib/radiant/extension_loader.rb</filename>
    </modified>
    <modified>
      <diff>@@ -12,7 +12,7 @@ describe Radiant::ExtensionLoader do
     @initializer.stub!(:admin).and_return(@admin)
     @instance = Radiant::ExtensionLoader.send(:new)
     @instance.initializer = @initializer
-    
+
     @extensions = %w{01_basic 02_overriding load_order_blue load_order_green load_order_red}
     @extension_paths = @extensions.map do |ext|
       File.expand_path(&quot;#{RADIANT_ROOT}/test/fixtures/extensions/#{ext}&quot;)
@@ -27,14 +27,14 @@ describe Radiant::ExtensionLoader do
   it &quot;should have the initializer's configuration&quot; do
     @initializer.should_receive(:configuration).and_return(@configuration)
     @instance.configuration.should == @configuration
-  end  
-  
+  end
+
   it &quot;should only load extensions specified in the configuration&quot; do
     @configuration.should_receive(:extensions).at_least(:once).and_return([:basic])
     @instance.stub!(:all_extension_roots).and_return(@extension_paths)
-    @instance.send(:select_extension_roots).should == [File.expand_path(&quot;#{RADIANT_ROOT}/test/fixtures/extensions/01_basic&quot;)]  
+    @instance.send(:select_extension_roots).should == [File.expand_path(&quot;#{RADIANT_ROOT}/test/fixtures/extensions/01_basic&quot;)]
   end
-  
+
   it &quot;should select extensions in an explicit order from the configuration&quot; do
     extensions = [:load_order_red, :load_order_blue, :load_order_green]
     extension_roots = extensions.map {|ext| File.expand_path(&quot;#{RADIANT_ROOT}/test/fixtures/extensions/#{ext}&quot;) }
@@ -42,7 +42,7 @@ describe Radiant::ExtensionLoader do
     @configuration.should_receive(:extensions).at_least(:once).and_return(extensions)
     @instance.send(:select_extension_roots).should == extension_roots
   end
-  
+
   it &quot;should insert all unspecified extensions into the paths at position of :all in configuration&quot; do
     extensions = [:load_order_red, :all, :load_order_green]
     extension_roots = @extension_paths[0..-2].unshift(@extension_paths[-1])
@@ -50,14 +50,14 @@ describe Radiant::ExtensionLoader do
     @configuration.should_receive(:extensions).at_least(:once).and_return(extensions)
     @instance.send(:select_extension_roots).should == extension_roots
   end
-  
+
   it &quot;should raise an error when an extension named in the configuration cannot be found&quot; do
     extensions = [:foobar]
     @instance.stub!(:all_extension_roots).and_return(@extension_paths)
     @configuration.should_receive(:extensions).at_least(:once).and_return(extensions)
     lambda { @instance.send(:select_extension_roots) }.should raise_error(LoadError)
   end
-  
+
   it &quot;should determine load paths from an extension path&quot; do
     @instance.send(:load_paths_for, &quot;#{RADIANT_ROOT}/vendor/extensions/archive&quot;).should == %W{
         #{RADIANT_ROOT}/vendor/extensions/archive/lib
@@ -65,21 +65,21 @@ describe Radiant::ExtensionLoader do
         #{RADIANT_ROOT}/vendor/extensions/archive/test/helpers
         #{RADIANT_ROOT}/vendor/extensions/archive}
   end
-  
+
   it &quot;should have load paths&quot; do
     @instance.stub!(:load_extension_roots).and_return(@extension_paths)
     @instance.should respond_to(:extension_load_paths)
     @instance.extension_load_paths.should be_instance_of(Array)
     @instance.extension_load_paths.all? {|f| File.directory?(f) }.should be_true
   end
-  
+
   it &quot;should have plugin paths&quot; do
     @instance.stub!(:load_extension_roots).and_return(@extension_paths)
     @instance.should respond_to(:plugin_paths)
     @instance.plugin_paths.should be_instance_of(Array)
     @instance.plugin_paths.all? {|f| File.directory?(f) }.should be_true
   end
-  
+
   it &quot;should add extension paths to the configuration&quot; do
     load_paths = []
     @instance.should_receive(:extension_load_paths).and_return(@extension_paths)
@@ -87,7 +87,7 @@ describe Radiant::ExtensionLoader do
     @instance.add_extension_paths
     load_paths.should == @extension_paths
   end
-  
+
   it &quot;should add plugin paths to the configuration&quot; do
     plugin_paths = []
     @instance.should_receive(:plugin_paths).and_return([@extension_paths.first + &quot;/vendor/plugins&quot;])
@@ -95,7 +95,7 @@ describe Radiant::ExtensionLoader do
     @instance.add_plugin_paths
     plugin_paths.should == [@extension_paths.first + &quot;/vendor/plugins&quot;]
   end
-  
+
   it &quot;should add plugin paths in the same order as the extension load order&quot; do
     plugin_paths = []
     ext_plugin_paths = @extension_paths[0..1].map {|e| e + &quot;/vendor/plugins&quot; }
@@ -104,13 +104,13 @@ describe Radiant::ExtensionLoader do
     @instance.add_plugin_paths
     plugin_paths.should == ext_plugin_paths
   end
-  
+
   it &quot;should have controller paths&quot; do
     @instance.should respond_to(:controller_paths)
     @instance.controller_paths.should be_instance_of(Array)
     @instance.controller_paths.all? {|f| File.directory?(f) }.should be_true
   end
-  
+
   it &quot;should add controller paths to the configuration&quot; do
     controller_paths = []
     @instance.stub!(:extensions).and_return([BasicExtension])
@@ -118,11 +118,20 @@ describe Radiant::ExtensionLoader do
     @instance.add_controller_paths
     controller_paths.should include(BasicExtension.root + &quot;/app/controllers&quot;)
   end
-  
+
   it &quot;should have view paths&quot; do
     @instance.should respond_to(:view_paths)
     @instance.view_paths.should be_instance_of(Array)
-    @instance.view_paths.all? {|f| File.directory?(f) }.should be_true    
+    @instance.view_paths.all? {|f| File.directory?(f) }.should be_true
+  end
+
+  it &quot;should return the view paths in inverse order to the loaded&quot; do
+    extensions = [BasicExtension, OverridingExtension]
+    @instance.extensions = extensions
+    @instance.view_paths.should == [
+       &quot;#{RAILS_ROOT}/test/fixtures/extensions/02_overriding/app/views&quot;,
+       &quot;#{RAILS_ROOT}/test/fixtures/extensions/01_basic/app/views&quot;
+      ]
   end
   
   it &quot;should load and initialize extensions when discovering&quot; do
@@ -134,14 +143,14 @@ describe Radiant::ExtensionLoader do
       ext_class.root.should_not be_nil
     end
   end
-  
+
   it &quot;should deactivate extensions&quot; do
     extensions = [BasicExtension, OverridingExtension]
     @instance.extensions = extensions
     @instance.deactivate_extensions
     extensions.any?(&amp;:active?).should be_false
   end
-  
+
   it &quot;should activate extensions&quot; do
     @initializer.should_receive(:initialize_default_admin_tabs)
     @initializer.should_receive(:initialize_framework_views)
@@ -151,7 +160,7 @@ describe Radiant::ExtensionLoader do
     @instance.activate_extensions
     extensions.all?(&amp;:active?).should be_true
   end
-  
+
   it &quot;should (re)load Page subclasses activation&quot; do
     @initializer.should_receive(:initialize_default_admin_tabs)
     @initializer.should_receive(:initialize_framework_views)
@@ -173,17 +182,17 @@ describe Radiant::ExtensionLoader::DependenciesObserver do
   it &quot;should be a MethodObserver&quot; do
     @observer.should be_kind_of(MethodObserver)
   end
-  
+
   it &quot;should attach to the clear method&quot; do
     @observer.should respond_to(:before_clear)
     @observer.should respond_to(:after_clear)
   end
-  
+
   it &quot;should deactivate extensions before clear&quot; do
     Radiant::ExtensionLoader.should_receive(:deactivate_extensions)
     @observer.before_clear
   end
-  
+
   it &quot;should load and activate extensions after clear&quot; do
     Radiant::ExtensionLoader.should_receive(:load_extensions)
     Radiant::ExtensionLoader.should_receive(:activate_extensions)</diff>
      <filename>spec/lib/radiant/extension_loader_spec.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>cab11d9d6a57f25893db57823bc0acba0bf03b53</id>
    </parent>
  </parents>
  <author>
    <name>Sean Cribbs</name>
    <email>seancribbs@gmail.com</email>
  </author>
  <url>http://github.com/freelancing-god/radiant/commit/f909ad100c6d6d17882db112df442c59607bf5b4</url>
  <id>f909ad100c6d6d17882db112df442c59607bf5b4</id>
  <committed-date>2009-03-03T16:21:04-08:00</committed-date>
  <authored-date>2009-03-03T16:19:46-08:00</authored-date>
  <message>Reverse view paths order in extension loader. [[#49] state:resolved]</message>
  <tree>b1dcaa6e006b3b64d23ea1610474a28340b0bab6</tree>
  <committer>
    <name>Sean Cribbs</name>
    <email>seancribbs@gmail.com</email>
  </committer>
</commit>
