Modified: trunk/app/models/workflow.rb (1874 => 1875)
--- trunk/app/models/workflow.rb 2008-10-20 10:44:16 UTC (rev 1874)
+++ trunk/app/models/workflow.rb 2008-10-20 15:05:25 UTC (rev 1875)
@@ -70,7 +70,7 @@
# acts_as_solr(:fields => [ :title, :body, :tag_list, :contributor_name, { :rating => :integer } ],
- acts_as_solr(:fields => [ :title, :body, :tag_list, :contributor_name, :type_display_name ],
+ acts_as_solr(:fields => [ :title, :body, :tag_list, :contributor_name, :type_display_name, :get_all_search_terms ],
:include => [ :comments ]) if SOLR_ENABLE
acts_as_runnable
@@ -143,6 +143,11 @@
return (self.processor_class.nil? ? nil : self.processor_class.new(workflow_version.content_blob.data).get_workflow_model_object)
end
+ def get_search_terms(version)
+ return nil unless (workflow_version = self.find_version(version))
+ return (self.processor_class.nil? ? nil : self.processor_class.new(workflow_version.content_blob.data).get_search_terms)
+ end
+
# Begin acts_as_runnable overridden methods
def get_input_ports(version)
@@ -165,4 +170,16 @@
"#{BASE_URI}/workflows/#{id}/download/#{filename}"
end
+ def get_all_search_terms
+
+ words = StringIO.new
+
+ versions.each do |version|
+ words << get_search_terms(version.version)
+ end
+
+ words.rewind
+ words.read
+ end
+
end
Modified: trunk/lib/workflow_processors/interface.rb (1874 => 1875)
--- trunk/lib/workflow_processors/interface.rb 2008-10-20 10:44:16 UTC (rev 1874)
+++ trunk/lib/workflow_processors/interface.rb 2008-10-20 15:05:25 UTC (rev 1875)
@@ -86,7 +86,11 @@
end
+ def get_search_terms
+ ""
+ end
+
# End Instance Methods
end
-end
\ No newline at end of file
+end
Modified: trunk/lib/workflow_processors/taverna_scufl.rb (1874 => 1875)
--- trunk/lib/workflow_processors/taverna_scufl.rb 2008-10-20 10:44:16 UTC (rev 1874)
+++ trunk/lib/workflow_processors/taverna_scufl.rb 2008-10-20 15:05:25 UTC (rev 1875)
@@ -126,6 +126,37 @@
return (@scufl_model.nil? ? nil : @scufl_model.sources)
end
+ def get_search_terms
+
+ def get_scufl_metadata(model)
+
+ words = StringIO.new
+
+ model.sources.each do |source|
+ words << " #{source.name}" if source.name
+ words << " #{source.description}" if source.description
+ end
+
+ model.sinks.each do |sink|
+ words << " #{sink.name}" if sink.name
+ words << " #{sink.description}" if sink.description
+ end
+
+ model.processors.each do |processor|
+ words << " #{processor.name}" if processor.name
+ words << " #{processor.description}" if processor.description
+ words << get_scufl_metadata(processor.model) if processor.model
+ end
+
+ words.rewind
+ words.read
+ end
+
+ return "" if @scufl_model.nil?
+
+ return get_scufl_metadata(@scufl_model)
+ end
+
# End Instance Methods
end
-end
\ No newline at end of file
+end