Commit 4398fe05d69af222346f2daaae43e4304ff17df4

Authored by Rodrigo Souto
1 parent 692325d6

Generalizing partial_for_class to for tasks too

app/helpers/application_helper.rb
@@ -263,9 +263,9 @@ module ApplicationHelper @@ -263,9 +263,9 @@ module ApplicationHelper
263 263
264 VIEW_EXTENSIONS = %w[.rhtml .html.erb] 264 VIEW_EXTENSIONS = %w[.rhtml .html.erb]
265 265
266 - def partial_for_class_in_view_path(klass, view_path) 266 + def partial_for_class_in_view_path(klass, view_path, suffix = nil)
267 return nil if klass.nil? 267 return nil if klass.nil?
268 - name = klass.name.underscore 268 + name = [klass.name.underscore, suffix].compact.map(&:to_s).join('_')
269 269
270 search_name = String.new(name) 270 search_name = String.new(name)
271 if search_name.include?("/") 271 if search_name.include?("/")
@@ -283,28 +283,17 @@ module ApplicationHelper @@ -283,28 +283,17 @@ module ApplicationHelper
283 partial_for_class_in_view_path(klass.superclass, view_path) 283 partial_for_class_in_view_path(klass.superclass, view_path)
284 end 284 end
285 285
286 - def partial_for_class(klass) 286 + def partial_for_class(klass, suffix=nil)
287 raise ArgumentError, 'No partial for object. Is there a partial for any class in the inheritance hierarchy?' if klass.nil? 287 raise ArgumentError, 'No partial for object. Is there a partial for any class in the inheritance hierarchy?' if klass.nil?
288 name = klass.name.underscore 288 name = klass.name.underscore
289 @controller.view_paths.each do |view_path| 289 @controller.view_paths.each do |view_path|
290 - partial = partial_for_class_in_view_path(klass, view_path) 290 + partial = partial_for_class_in_view_path(klass, view_path, suffix)
291 return partial if partial 291 return partial if partial
292 end 292 end
293 293
294 raise ArgumentError, 'No partial for object. Is there a partial for any class in the inheritance hierarchy?' 294 raise ArgumentError, 'No partial for object. Is there a partial for any class in the inheritance hierarchy?'
295 end 295 end
296 296
297 - def partial_for_task_class(klass, action)  
298 - raise ArgumentError, 'No partial for object. Is there a partial for any class in the inheritance hierarchy?' if klass.nil?  
299 -  
300 - name = "#{klass.name.underscore}_#{action.to_s}"  
301 - VIEW_EXTENSIONS.each do |ext|  
302 - return name if File.exists?(File.join(RAILS_ROOT, 'app', 'views', params[:controller], '_'+name+ext))  
303 - end  
304 -  
305 - partial_for_task_class(klass.superclass, action)  
306 - end  
307 -  
308 def view_for_profile_actions(klass) 297 def view_for_profile_actions(klass)
309 raise ArgumentError, 'No profile actions view for this class.' if klass.nil? 298 raise ArgumentError, 'No profile actions view for this class.' if klass.nil?
310 299
app/views/tasks/_task.rhtml
@@ -50,13 +50,13 @@ @@ -50,13 +50,13 @@
50 <% fields_for "tasks[#{task.id}][task]", task do |f| %> 50 <% fields_for "tasks[#{task.id}][task]", task do |f| %>
51 <% if task.accept_details %> 51 <% if task.accept_details %>
52 <div id="on-accept-information-<%=task.id%>" style="display: none"> 52 <div id="on-accept-information-<%=task.id%>" style="display: none">
53 - <%= render :partial => partial_for_task_class(task.class, :accept_details), :locals => {:task => task, :f => f} %> 53 + <%= render :partial => partial_for_class(task.class, :accept_details), :locals => {:task => task, :f => f} %>
54 </div> 54 </div>
55 <% end %> 55 <% end %>
56 56
57 <% if task.reject_details %> 57 <% if task.reject_details %>
58 <div id="on-reject-information-<%=task.id%>" style="display: none"> 58 <div id="on-reject-information-<%=task.id%>" style="display: none">
59 - <%= render :partial => partial_for_task_class(task.class, :reject_details), :locals => {:task => task, :f => f} %> 59 + <%= render :partial => partial_for_class(task.class, :reject_details), :locals => {:task => task, :f => f} %>
60 </div> 60 </div>
61 <% end %> 61 <% end %>
62 <% end %> 62 <% end %>