diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 8beba67..415dd4c 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -272,4 +272,14 @@ module ApplicationHelper return _('No product') unless product link_to product.name, :controller => 'catalog', :action => 'show', :id => product, :profile => product.enterprise.identifier end + + def partial_for_class(klass) + name = klass.name.underscore + if File.exists?(File.join(RAILS_ROOT, 'app', 'views', params[:controller], "_#{name}.rhtml")) + name + else + partial_for_class(klass.superclass) + end + end + end diff --git a/app/helpers/search_helper.rb b/app/helpers/search_helper.rb index 95ff74e..35ee5ba 100644 --- a/app/helpers/search_helper.rb +++ b/app/helpers/search_helper.rb @@ -1,14 +1,5 @@ module SearchHelper - def partial_for_hit(klass) - name = klass.name.underscore - if File.exists?(File.join(RAILS_ROOT, 'app', 'views', 'search', "_#{name}.rhtml")) - name - else - partial_for_hit(klass.superclass) - end - end - def relevance_for(hit) n = (hit.ferret_score if hit.respond_to?(:ferret_score)) n ||= 1.0 diff --git a/app/views/search/index.rhtml b/app/views/search/index.rhtml index d990cc8..3c5879b 100644 --- a/app/views/search/index.rhtml +++ b/app/views/search/index.rhtml @@ -1,7 +1,7 @@

<%= _('Search results for "%s"') % @query %>

<% @results.each do |hit| %> - <%= render :partial => partial_for_hit(hit.class), :locals => { :hit => hit } %> + <%= render :partial => partial_for_class(hit.class), :locals => { :hit => hit } %>
<%= _('Relevance: %d%%') % relevance_for(hit) %>
diff --git a/app/views/search/tag.rhtml b/app/views/search/tag.rhtml index c62c41d..717de72 100644 --- a/app/views/search/tag.rhtml +++ b/app/views/search/tag.rhtml @@ -8,7 +8,7 @@
<% @tagged.each do |hit| %> - <%= render :partial => partial_for_hit(hit.class), :locals => { :hit => hit } %> + <%= render :partial => partial_for_class(hit.class), :locals => { :hit => hit } %>
<% end %>
diff --git a/test/unit/application_helper_test.rb b/test/unit/application_helper_test.rb index df74ff0..1405340 100644 --- a/test/unit/application_helper_test.rb +++ b/test/unit/application_helper_test.rb @@ -4,8 +4,16 @@ class ApplicationHelperTest < Test::Unit::TestCase include ApplicationHelper - should 'generate control panel buttons' do + should 'calculate correctly partial for object' do + self.stubs(:params).returns({:controller => 'test'}) + File.expects(:exists?).with("#{RAILS_ROOT}/app/views/test/_float.rhtml").returns(false) + File.expects(:exists?).with("#{RAILS_ROOT}/app/views/test/_numeric.rhtml").returns(true).times(2) + File.expects(:exists?).with("#{RAILS_ROOT}/app/views/test/_runtime_error.rhtml").returns(true).at_least_once + + assert_equal 'numeric', partial_for_class(Float) + assert_equal 'numeric', partial_for_class(Numeric) + assert_equal 'runtime_error', partial_for_class(RuntimeError) end end -- libgit2 0.21.2