10144: Rename :by_name as "by_attr" for preload_objects_for_dataclass
authorradhika <radhika@curoverse.com>
Tue, 11 Oct 2016 14:46:45 +0000 (10:46 -0400)
committerradhika <radhika@curoverse.com>
Tue, 11 Oct 2016 14:46:45 +0000 (10:46 -0400)
apps/workbench/app/controllers/application_controller.rb
apps/workbench/app/views/work_units/_component_detail.html.erb
apps/workbench/app/views/work_units/_show_component.html.erb

index d0ecfe9af161de37d0972849c9d7d4bec756722b..d8dc852ca278085cf547abcfa2251aacb14b85e5 100644 (file)
@@ -1180,15 +1180,15 @@ class ApplicationController < ActionController::Base
 
   # helper method to get object of a given dataclass and uuid
   helper_method :object_for_dataclass
-  def object_for_dataclass dataclass, uuid, by_name=nil
+  def object_for_dataclass dataclass, uuid, by_attr=nil
     raise ArgumentError, 'No input argument dataclass' unless (dataclass && uuid)
-    preload_objects_for_dataclass(dataclass, [uuid], by_name)
+    preload_objects_for_dataclass(dataclass, [uuid], by_attr)
     @objects_for[uuid]
   end
 
   # helper method to preload objects for given dataclass and uuids
   helper_method :preload_objects_for_dataclass
-  def preload_objects_for_dataclass dataclass, uuids, by_name=nil
+  def preload_objects_for_dataclass dataclass, uuids, by_attr=nil
     @objects_for ||= {}
 
     raise ArgumentError, 'Argument is not a data class' unless dataclass.is_a? Class
@@ -1205,7 +1205,9 @@ class ApplicationController < ActionController::Base
     uuids.each do |x|
       @objects_for[x] = nil
     end
-    if by_name
+    if by_attr and ![:uuid, :name].include?(by_attr)
+      raise ArgumentError, "Preloading only using lookups by uuid or name are supported: #{by_attr}"
+    elsif by_attr and by_attr == :name
       dataclass.where(name: uuids).each do |obj|
         @objects_for[obj.name] = obj
       end
index 45ae9786921cb89a2f95e6b3a6d9c504a27d6fe2..f66ff07a88cd08612fb3feb3c53cf2cec6f1cbc0 100644 (file)
@@ -43,7 +43,7 @@
             <table>
               <% # link to repo tree/file only if the repo is readable and the commit is a sha1
                  repo = (/^[0-9a-f]{40}$/ =~ current_obj.script_version and
-                         object_for_dataclass(Repository, current_obj.repository, :by_name))
+                         object_for_dataclass(Repository, current_obj.repository, :name))
                  repo = nil unless repo.andand.http_fetch_url
                  %>
               <% [:script, :repository, :script_version, :supplied_script_version, :nondeterministic,
index 9bf751f70c64bb98ff26e822afeca0aa3290e369..08405b305aa38ac4e5cc432f22c811a464d670cf 100644 (file)
@@ -68,7 +68,7 @@
   end
 
   repos = wu.children.collect {|c| c.repository}.uniq.compact
-  preload_objects_for_dataclass(Repository, repos, :by_name) if repos.any?
+  preload_objects_for_dataclass(Repository, repos, :name) if repos.any?
 %>
 
 <% if wu.has_unreadable_children %>