From 4398fe05d69af222346f2daaae43e4304ff17df4 Mon Sep 17 00:00:00 2001 From: Rodrigo Souto Date: Mon, 10 Sep 2012 16:43:23 -0300 Subject: [PATCH] Generalizing partial_for_class to for tasks too --- app/helpers/application_helper.rb | 19 ++++--------------- app/views/tasks/_task.rhtml | 4 ++-- 2 files changed, 6 insertions(+), 17 deletions(-) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 7c07b0e..2b3e6ec 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -263,9 +263,9 @@ module ApplicationHelper VIEW_EXTENSIONS = %w[.rhtml .html.erb] - def partial_for_class_in_view_path(klass, view_path) + def partial_for_class_in_view_path(klass, view_path, suffix = nil) return nil if klass.nil? - name = klass.name.underscore + name = [klass.name.underscore, suffix].compact.map(&:to_s).join('_') search_name = String.new(name) if search_name.include?("/") @@ -283,28 +283,17 @@ module ApplicationHelper partial_for_class_in_view_path(klass.superclass, view_path) end - def partial_for_class(klass) + def partial_for_class(klass, suffix=nil) raise ArgumentError, 'No partial for object. Is there a partial for any class in the inheritance hierarchy?' if klass.nil? name = klass.name.underscore @controller.view_paths.each do |view_path| - partial = partial_for_class_in_view_path(klass, view_path) + partial = partial_for_class_in_view_path(klass, view_path, suffix) return partial if partial end raise ArgumentError, 'No partial for object. Is there a partial for any class in the inheritance hierarchy?' end - def partial_for_task_class(klass, action) - raise ArgumentError, 'No partial for object. Is there a partial for any class in the inheritance hierarchy?' if klass.nil? - - name = "#{klass.name.underscore}_#{action.to_s}" - VIEW_EXTENSIONS.each do |ext| - return name if File.exists?(File.join(RAILS_ROOT, 'app', 'views', params[:controller], '_'+name+ext)) - end - - partial_for_task_class(klass.superclass, action) - end - def view_for_profile_actions(klass) raise ArgumentError, 'No profile actions view for this class.' if klass.nil? diff --git a/app/views/tasks/_task.rhtml b/app/views/tasks/_task.rhtml index 0fed01d..1ee6fac 100644 --- a/app/views/tasks/_task.rhtml +++ b/app/views/tasks/_task.rhtml @@ -50,13 +50,13 @@ <% fields_for "tasks[#{task.id}][task]", task do |f| %> <% if task.accept_details %> <% end %> <% if task.reject_details %> <% end %> <% end %> -- libgit2 0.21.2