Class: Dor::WorkflowObject
- Inherits:
-
ActiveFedora::Base
- Object
- ActiveFedora::Base
- Dor::WorkflowObject
- Includes:
- Governable, Identifiable
- Defined in:
- lib/dor/models/workflow_object.rb
Constant Summary collapse
- @@xml_cache =
{}
- @@repo_cache =
{}
Class Method Summary collapse
-
.find_and_cache_workflow_xml_and_repo(name) ⇒ Object
Searches DOR for the workflow definition object.
- .find_by_name(name, opts = {}) ⇒ Object
-
.initial_repo(name) ⇒ String
Returns the repository attribute from the workflow definition It will cache the result for subsequent requests.
-
.initial_workflow(name) ⇒ String
Searches for the workflow definition object in DOR, then returns an object’s initial workflow as defined in the worfklowDefinition datastream It will cache the result for subsequent requests.
Instance Method Summary collapse
- #definition ⇒ Object
- #generate_initial_workflow ⇒ Object (also: #generate_intial_workflow)
- #graph(*args) ⇒ Object
Methods included from Governable
#add_collection, #can_manage_content?, #can_manage_desc_metadata?, #can_manage_embargo?, #can_manage_item?, #can_manage_rights?, #can_manage_system_metadata?, #can_view_content?, #can_view_metadata?, #default_workflow_lane, #groups_which_manage_content, #groups_which_manage_desc_metadata, #groups_which_manage_embargo, #groups_which_manage_item, #groups_which_manage_rights, #groups_which_manage_system_metadata, #groups_which_view_content, #groups_which_view_metadata, #initiate_apo_workflow, #intersect, #reapplyAdminPolicyObjectDefaults, #remove_collection, #reset_to_apo_default, #rights, #set_read_rights
Methods included from Rightsable
#build_rightsMetadata_datastream, #world_doc
Methods included from Identifiable
#adapt_to_cmodel, #add_other_Id, #add_tag, #content_type_tag, #druid_regex, #get_related_obj_display_title, #identity_metadata_source, #initialize, #normalize_tag, #normalize_tag_arr, #pid_regex, #remove_druid_prefix, #remove_other_Id, #remove_tag, #source_id, #source_id=, #split_tag_to_arr, #tags, #to_solr, #update_other_Id, #update_tag, #validate_and_normalize_tag, #validate_tag_format
Methods included from Eventable
Methods included from SolrDocHelper
Class Method Details
.find_and_cache_workflow_xml_and_repo(name) ⇒ Object
Searches DOR for the workflow definition object. It then caches the workflow repository and xml
55 56 57 58 59 60 61 |
# File 'lib/dor/models/workflow_object.rb', line 55 def self.find_and_cache_workflow_xml_and_repo(name) wobj = find_by_name(name) raise "Failed to find workflow via find_by_name('#{name}')" if wobj.nil? @@repo_cache[name] = wobj.definition.repo @@xml_cache[name] = wobj.generate_initial_workflow wobj end |
.find_by_name(name, opts = {}) ⇒ Object
13 14 15 |
# File 'lib/dor/models/workflow_object.rb', line 13 def self.find_by_name(name, opts = {}) Dor.find_all(%(#{Solrizer.solr_name 'objectType', :symbol}:"#{object_type}" #{Solrizer.solr_name 'workflow_name', :symbol}:"#{name}"), opts).first end |
.initial_repo(name) ⇒ String
Returns the repository attribute from the workflow definition It will cache the result for subsequent requests
32 33 34 35 36 |
# File 'lib/dor/models/workflow_object.rb', line 32 def self.initial_repo(name) return @@repo_cache[name] if @@repo_cache.include?(name) find_and_cache_workflow_xml_and_repo name @@repo_cache[name] end |
.initial_workflow(name) ⇒ String
Searches for the workflow definition object in DOR, then returns an object’s initial workflow as defined in the worfklowDefinition datastream It will cache the result for subsequent requests
22 23 24 25 26 |
# File 'lib/dor/models/workflow_object.rb', line 22 def self.initial_workflow(name) return @@xml_cache[name] if @@xml_cache.include?(name) find_and_cache_workflow_xml_and_repo name @@xml_cache[name] end |
Instance Method Details
#definition ⇒ Object
38 39 40 |
# File 'lib/dor/models/workflow_object.rb', line 38 def definition datastreams['workflowDefinition'] end |
#generate_initial_workflow ⇒ Object Also known as: generate_intial_workflow
46 47 48 |
# File 'lib/dor/models/workflow_object.rb', line 46 def generate_initial_workflow datastreams['workflowDefinition'].initial_workflow end |
#graph(*args) ⇒ Object
42 43 44 |
# File 'lib/dor/models/workflow_object.rb', line 42 def graph(*args) definition.graph *args end |