class WfsRails::WorkflowParser

Parsing Workflow creation request

Attributes

druid[R]
repository[R]
xml_request[R]

Public Class Methods

new(request_body, druid, repository) click to toggle source

@param [String] request_body @param [String] druid @param [String] repository

# File lib/wfs_rails/workflow_parser.rb, line 11
def initialize(request_body, druid, repository)
  @xml_request = Nokogiri::XML(request_body)
  @druid = druid
  @repository = repository
end

Public Instance Methods

create_workflows() click to toggle source

@return [Array]

# File lib/wfs_rails/workflow_parser.rb, line 19
def create_workflows
  processes.map do |process|
    Workflow.create(datastream: workflow_id,
                    druid: druid,
                    process: process.name,
                    status: process.status,
                    lane_id: process.lane_id,
                    repository: repository,
                    lifecycle: process.lifecycle
                   )
  end
end

Private Instance Methods

processes() click to toggle source
# File lib/wfs_rails/workflow_parser.rb, line 38
def processes
  workflow.xpath('//process').map do |process|
    ProcessParser.new(process)
  end
end
workflow() click to toggle source
# File lib/wfs_rails/workflow_parser.rb, line 34
def workflow
  xml_request.xpath('//workflow')
end
workflow_id() click to toggle source
# File lib/wfs_rails/workflow_parser.rb, line 44
def workflow_id
  workflow.attr('id')
end